Standalone C++ library implementing the Sendspin synchronized audio streaming protocol. Builds on both ESP-IDF (ESP32) and host platforms (macOS/Linux). Designed to be consumed by ESPHome but has no ESPHome dependencies.
- Modular Sendspin role composition: artwork, controller, metadata, player, and visualizer
- WebSocket client and server support
- Decodes FLAC, Opus, and PCM
- Cross-platform: ESP-IDF (ESP32) and host (macOS/Linux)
- Integration Guide -- How to integrate sendspin-cpp into your application, including required callbacks, role composition, and platform setup
- Internals -- Internal architecture, threading model, and inter-class communication
cmake -B build
cmake --build buildDependencies (fetched automatically via CMake FetchContent): ArduinoJson, micro-flac, micro-opus, IXWebSocket.
Available on the ESP-IDF Component Registry. Add to your project's idf_component.yml:
dependencies:
sendspin/sendspin-cpp: ">=0.1.2"Requires ESP-IDF v5.1 or later.
examples/basic_client/-- Standalone host example with PortAudio audio outputexamples/tui_client/-- Terminal UI host example with PortAudio audio output
Apache 2.0
