[][src]Crate rubble

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.

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_manager

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.