← На главную

Rockbox от tsiry теперь в одном бинарнике с Rust, Zig и поддержкой AirPlay

09.05.2026 13:03 · hackernews

Команда tsiry представила новый вариант открытого аудиоплеера Rockbox, объединив его движок с языками Rust и Zig. Это обновление решает главную проблему оригинала — сложность сборки и расширения. Новый сервис rockboxd упаковывает всё в один бинарный файл, предоставляя полный доступ к игровому движку, DSP-эффектам, базе тегов и поддержке 20+ кодеков. Приложение работает через gRPC, GraphQL, HTTP и протокол MPD, сразу обеспечивая поддержку многокомнатного вывода. Пользователям не нужно устанавливать что-то дополнительно или править файлы конфигурации: достаточно запустить Docker-контейнер, открыть веб-интерфейс и играть.

В центре внимания — гибкая настройка вывода звука. Система использует CPAL для работы по умолчанию или может отправлять сырой PCM 44100 Гц на Snapcast для синхронизации звука в разных комнатах. Режим auto-discovery позволяет автоматически находить устройства через mDNS без изменения настроек. Также реализована поддержка AirPlay, где один источник синхронизирует воспроизведение на множестве приемников Apple, HomePod или shairport-sync с точностью до кадра. Протокол Slim обеспечивает работу со Squeezelite, позволяя управлять несколькими комнатами из одного источника, а также интеграция с Chromecast через два канала: для команд и для передачи потока WAV с прогресс-баром.

Проект также включает полную поддержку UPnP/DLNA. Сервер может работать как источник для BubbleUPnP или Kodi, передавая метаданные и обложки, либо как приемник для пулинга мультимедиа из других устройств. Настройки хранятся в settings.toml, где можно настроить кроссфейды, эквалайзер, динамический диапазон и другие параметры. Сборка возможна сразу для Linux, macOS и ARM-архитектур, включая Apple Silicon, а также через Flatpak. Архитектура проекта позволяет отдельно компилировать C-код прошивки, библиотеки на Rust и затем связывать их с помощью Zig, создавая готовый бинарник. Документация охватывает API, клиентов и архитектуру, помогая разработчикам легко внедрять возможности плеера в свои системы.

Читать оригинал →