BlueZ — это официальный стек протоколов Bluetooth для операционной системы Linux, реализующий набор ядровых подсистем и пользовательских демонов для управления беспроводной связью по спецификациям Bluetooth. Проект обеспечивает реализацию низкоуровневых протоколов, поддержку различных профилей обмена данными и взаимодействие с сетевыми и пользовательскими компонентами через интерфейсы ядра и D-Bus API. BlueZ служит базовым слоем для обеспечения сопряжения, аутентификации, шифрования и управления подключениями между устройствами Bluetooth, предоставляя при этом механизм расширяемости для новых версий спецификации и аппаратных возможностей.
Архитектурно BlueZ включает модули в пространстве ядра для взаимодействия с контроллерами устройств и пользовательские демон процессы, такие как демон управления адаптером и агент для обработки запросов сопряжения. Для взаимодействия с настольными приложениями и системными службами используется D-Bus, через который реализуются стандартизированные интерфейсы для управления адаптерами, службами GATT, потоковой передачей аудио и профилями удалённого управления. BlueZ активно развивается в рамках сообщества открытого ПО и интегрируется с большинством дистрибутивов Linux, обеспечивая совместимость с широким спектром аппаратных Bluetooth-контроллеров и периферии.
- Реализация базовых Bluetooth-протоколов — управление HCI, L2CAP, RFCOMM и другими слоями стека.
 - D-Bus API — предоставление интерфейсов для обнаружения устройств, управления подключениями, профилями и сервисами.
 - Поддержка профилей — реализации стандартных профилей, таких как A2DP, HFP, HID, GATT и других.
 - GATT-сервер и клиент — поддержка BLE (Bluetooth Low Energy) для сервисов и характеристик GATT.
 - Сопряжение и безопасность — механизмы аутентификации, шифрования и управления ключами.
 - Интеграция с ядром Linux — взаимодействие с подсистемами ядра и драйверами HCI-контроллеров.
 - Пользовательские утилиты и демоны — предоставление управляющих демонов и инструментов для настройки адаптеров и подключений.
 - Расширяемость — возможность внедрения новых профилей, плагинов и адаптации под новые аппаратные возможности.