18 unstable releases (3 breaking)

Uses new Rust 2021

0.3.9 Dec 2, 2022
0.3.8 Nov 30, 2022
0.2.3 Nov 2, 2022
0.2.2 Oct 31, 2022
0.0.1 Oct 3, 2022

#1 in Accessibility

Download history 19/week @ 2022-09-30 4/week @ 2022-10-07 43/week @ 2022-10-14 31/week @ 2022-10-21 150/week @ 2022-10-28 92/week @ 2022-11-04 73/week @ 2022-11-11 29/week @ 2022-11-18 173/week @ 2022-11-25 89/week @ 2022-12-02

364 downloads per month

Apache-2.0 OR MIT

5.5K SLoC

AT-SPI for Rust

crates.io badge docs.rs badge

Higher level, asynchronous pure Rust AT-SPI2 protocol implementation using zbus.

Part of the Odilia screen reader project.


  • 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.


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


The atspi library is licensed as Apache 2.0 or MIT.


~247K SLoC