# Bluetooth Shared Libraries

## What is this?

This is a repository for shared libraries and tools that can be useful for
multiple Bluetooth stacks.

These tools and libraries are meant to be:
 * Stack-agnostic and platform-agnostic
 * Implement a useful subset of a published Bluetooth specification.

It has been started as a repository for developing Rust crates but can be
easily expanded to include libraries and tools written in other languages.

## What is this not?

It is not a full Bluetooth stack.  Google has two officially open-source Bluetooth stacks:
 * [Fluoride](https://cs.android.com/android/platform/superproject/main/+/main:packages/modules/Bluetooth/) - Widely used in AOSP
 * [Sapphire](https://cs.opensource.google/fuchsia/fuchsia/+/main:src/connectivity/bluetooth/) - Used in Fuchsia

## Structure

 - rust - Rust Crates
 - docs - General documentation (documentation for each library/tool is included in their directories)
