42 releases (13 breaking)
0.13.0 | Mar 10, 2023 |
---|---|
0.11.0 | Feb 25, 2023 |
0.8.0 | Dec 31, 2022 |
0.3.8 | Nov 30, 2022 |
#7 in Accessibility
18,042 downloads per month
Used in 14 crates
(4 directly)
310KB
5K
SLoC
AT-SPI for Rust
Higher level, asynchronous, pure Rust AT-SPI2 protocol implementation using zbus.
Part of the Odilia screen reader project.
Design
- Fully documented, with
#[deny(missing_docs)]
- Or at least, it will be by 1.0
- Fully safe, with
#[deny(unsafe_code)]
- Fantastic code style with
#[deny(clippy:all, clippy::pedantic, clippy::cargo)]
This crate makes use of the
zbus crate for
dbus communication.
We use the asynchronous zbus API, so to use atspi, you will need to run an async executer like
tokio or
async-std.
The async-io
and tokio
features are exposed and will be passed through to zbus.
Contributing
We love people who add functionality, find bugs, or improve code quality!
You can clone the repository and make modifications just by git clone
-ing the repository like so:
git clone https://github.com/odilia-app/atspi
cd atspi
cargo build
If you have permissions to publish to crate to crates.io, then please make sure to tag it like so, pushing it to get, and then publishing to crates.io:
git tag -a vMAJ.MIN.PATCH -m "New feature in tag"
git push origin --tags
Code Generation
Some files are auto-generated, and these will be noted with documentation.
If you want to change those files, you will need to make changes in the atspi-codegen
binaries, since any changes in the files will be overwritten when the XML is updates and the .rs files are re-generated.
Currently, only one file is 100% auto-generated: identify.rs
; and it was generated with the atspi-codegen/target/debug/identify
file.
License
The atspi
library is licensed as Apache 2.0 or MIT.
Dependencies
~7–14MB
~283K SLoC