#bluez #bluetooth #gatt #bluetooth-le #linux-bluetooth

rustable

Another crate for using Bluetooth Low Energy with Bluez

6 releases

0.3.0 Jul 15, 2021
0.2.2 Feb 21, 2021
0.2.1 Jan 23, 2021
0.2.0 Nov 24, 2020
0.1.1 Aug 5, 2020

#803 in Hardware support

Custom license

150KB
3.5K SLoC

rustable

rustable is yet another library for interfacing Bluez over DBus. Its objective is to be a comprehensive tool for creating Bluetooth Low Energy enabled applications in Rust on Linux. It will supports to interacting with remote devices as a GATT client, and creating local services as a GATT Server. It currently allows the creation of advertisements/broadcasts as a Bluetooth peripherial. //!

Supported Features

GAP Peripheral

  • Advertisements
  • Broadcasts

GATT Server

  • Creating local services
  • Reading local characteristics from remote devices.
  • Writing to local characteristics from remote devices.
  • Write-without-response via sockets from remote devices (AcquireWrite).
  • Notifying/Indicating local characteristics with sockets (AcquireNotify).
  • Reading local descriptors from remote devices. To Do:
  • Writable descriptors.

GATT Client

  • Retreiving attribute metadata (Flags, UUIDs...).
  • Reading from remote characteristics.
  • Writing to remote characteristics.
  • Write-without-response via sockets to remote devices (AcquireWrite).
  • Receiving remote notification/indications with sockets. To Do:
  • Descriptors as a client.

Development status

This library is unstable in alpha. There are planned functions in the API that have yet to be implemented. Unimplemented function are noted. The API is subject to breaking changes.

Documentation

Documentation for the master branch can be found here.

Documentation for the current release can be found here

Dependencies

~9–18MB
~287K SLoC