Crate rubble

Source
Expand description

An experimental BLE stack.

Tries to adhere to the Bluetooth Core Specification v4.2 (at least for now).

§Using the stack

Rubble is runtime and hardware-agnostic: It does not need an RTOS (although you can certainly use one if you want) and provides hardware interfaces that need to be implemented once for every supported MCU family.

The only part that interacts directly with platform-specific interfaces is link, Rubble’s BLE Link-Layer implementation. You have to provide it with a few hardware-specific services:

  • A microsecond-precision Timer.
  • A Transmitter that can send data and advertising channel packets.
  • A processor for link::Cmd, which tells the support code when to call Rubble’s functions again.

Modules§

att
Implementation of the Attribute Protocol (ATT).
beacon
BLE beacon support, without dealing with Link-Layer stuff.
bytes
Utilities for decoding from and encoding into bytes.
config
Stack configuration trait.
ecdh
Elliptic Curve Diffie-Hellman (ECDH) on P-256.
gatt
Implementation of the Generic Attribute Profile (GATT).
l2cap
The Logical Link Control and Adaptation Protocol (L2CAP).
link
Link-Layer.
phy
Physical layer interactions.
security
The LE Security Manager protocol.
time
Time APIs for obtaining the current time and calculating with points in time and durations.
uuid
BLE UUIDs (16, 32 or 128 bits).

Enums§

Error
Errors returned by the BLE stack.

Constants§

BLUETOOTH_VERSION
Version of the Bluetooth specification implemented by Rubble.