Ibiyemi Abiodun

« main page

bluez

Write Bluetooth-enabled programs in Rust GitHub repository

February 2019 to August 2022

rustbluetooth

bluez-rs is a Rust library that allows users to access Bluetooth APIs under Linux.

I originally created it because I wanted to make a custom bluetooth stereo system for my mom’s 2004 Volvo XC 90, which did not support Bluetooth.

The first tool I reached for to make this happen was the Raspberry Pi. However, on the Raspberry Pi, it wasn’t easy to implement Bluetooth audio streaming in an integrated fashion. There were out-of-the-box solutions, but I wanted a single binary that would wire the user interface of this hypothetical stereo directly to the Bluetooth audio stream. I got to work investigating how Bluetooth works on Linux, and I accidentally ended up writing a Bluetooth Linux API. This is the bluez crate, which implements the BlueZ Linux API for controlling Bluetooth.