SDKs & libraries

Official software development kits (SDK), reference implementations and test tools for building Sendspin into your projects. New to the protocol? Start with the implementation guide; the client chapter says which SDK fits which platform.

Want to try Sendspin from the command line? sendspin-cpp-cli is the recommended CLI and reference player.

This page lists the implementations that are at specification 1.0. All of them are open source; the licensing pointer at the bottom explains what that means for your project.

Client SDKs

Language Repository Roles Spec status Used by
C++ sendspin-cpp player, controller, metadata, artwork, visualizer, color 1.0 ESPHome, sendspin-cpp-cli
Python aiosendspin (client) see repository 1.0 Test and reference client
JavaScript sendspin-js player; see repository being updated to 1.0 Music Assistant web UI, the live demo on this site

sendspin-cpp is the library for devices. It runs on ESP32 through the ESP-IDF component registry (sendspin/sendspin-cpp) and on Linux and macOS hosts, decodes FLAC and PCM with Opus as an option, and has the Noise encryption built in. The repository's integration-guide.md, internals.md and playback-sync.md cover what the guide here does not. Apache 2.0.

aiosendspin is the async Python library. Its client side is complete and conformant, but it is best treated as a reference and test client: something to script against your server, or to read when the specification leaves you unsure. On PyPI as aiosendspin. Apache 2.0.

sendspin-js is the TypeScript client for browsers, with SendspinPlayer for a complete player and the lower-level SendspinCore for your own user interface. It handles the browser's user-gesture requirement and coarse clocks. It is being brought up to specification 1.0; check the repository for the current state before you depend on a specific feature. On npm as @sendspin/sendspin-js.

Server implementations

Language Repository Roles Spec status Used by
Python aiosendspin (server) all 1.0 Music Assistant
C++ planned all not started

aiosendspin is the server inside Music Assistant, which makes it the reference server: whatever it does is what clients in the field expect. If you are building a server in Python, build on it. A C++ server for embedded and desktop products is on the roadmap but has not been started; if you need one, say so on the Discord so the work can be planned with you.

Reference players and tools

Further ports in other languages live in the GitHub organization and will be listed here as they reach specification 1.0.

Contributing

Sendspin is open source and welcomes contributions. Visit Sendspin on GitHub and the Music Assistant Discord to get involved. The contributing chapter of the guide explains how the project works.

Publishing your own Sendspin project? The protocol is free to implement; see Licensing and trademarks for the SDK licenses and how the Sendspin name may be used in your project's name.