#bluetooth #ble #bluez #dbus


Generated async D-Bus bindings for talking to BlueZ on Linux

4 releases (2 breaking)

0.3.0 Jan 18, 2023
0.2.1 Jan 8, 2021
0.2.0 Oct 30, 2020
0.1.0 Oct 18, 2020

#227 in Unix APIs

Download history 3823/week @ 2023-06-09 4055/week @ 2023-06-16 3274/week @ 2023-06-23 3613/week @ 2023-06-30 3917/week @ 2023-07-07 3197/week @ 2023-07-14 3503/week @ 2023-07-21 3363/week @ 2023-07-28 3411/week @ 2023-08-04 3134/week @ 2023-08-11 3628/week @ 2023-08-18 3812/week @ 2023-08-25 3748/week @ 2023-09-01 4675/week @ 2023-09-08 3783/week @ 2023-09-15 3422/week @ 2023-09-22

16,298 downloads per month
Used in 41 crates (via bluez-async)


1.5K SLoC

Generated bindings for BlueZ

crates.io page docs.rs page

Generated async D-Bus bindings for talking to BlueZ on Linux.

Bindings are generated from introspection data, using dbus-codegen. This means that it is relatively easy to maintain, but it only covers interfaces that I have the devices for.

Adding Interfaces

If there is an interface that you need which is not generated, it should be reasonably straightforward to generate them and send a pull request. See introspect.sh for details. It's also perfectly reasonable to generate the interfaces you need and vendor them into your project.

Future Direction

Only async bindings are generated. Blocking bindings could also be generated, but I'm unlikely to use them, so they would need to be contributed by someone else.

It would be nice to generate some strongly typed bindings around add_match() for subscribing to PropertiesChanged signals as as stream for a particular property.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


~128K SLoC