2026.07.12 #233
tsirysndr
announced in
Announcements
2026.07.12
#233
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
[2026.07.12]
Added
bindings: multi-language FFI bindings for 9 languages — Python, TypeScript, Elixir, Gleam, Ruby, Swift, Kotlin, Clojure, and Go — all layered on a single sharedrockbox-ffiC ABI (cdylib+staticlib); Python via cffi, TS via Bun/Deno/Node koffi, Ruby via fiddle, Go via purego, Elixir + Gleam through a sharederl_nifNIF, Swift/Kotlin/Clojure via their native FFIs; each ships an interactive console (Python IPython, Ruby IRB) and a playback example, and queue-insertion / resume / m3u8 are exposed uniformly across all ninebindings: per-platform prebuilt native libraries bundled into each package with a dedicatedbindings-v*release CI pipeline that uploads artifacts to the GitHub Release; Swift gains a static-linked product plus a macOS/iOSxcframework, Kotlin publishes to Maven Central and Clojure to Clojars (clojure-ffi-v*tag), and Python wheels are taggedpy3-none-<platform>per-archdsp: new standalonerockbox-dspcrate (v0.2.0) — the Rockbox DSP chain (parametric EQ, tone controls, surround, channel mode, compressor, and replaygain) extracted as a reusable Rust library that compileslib/rbcodec/dspviacc; honourssettings.tomlEQ values (already in tenths) with local-settings precedence, and builds standalone from vendored C sourcesmetadata: new standalonerockbox-metadatacrate — Rockbox tag/metadata extraction exposed as a library (phase 1 of the rbcodec extraction), with a flatrbmeta_tagsbridge over the firmware parserscodecs: new standalonerockbox-codecscrate (v0.1.1) — Rockbox decoders as a Rust library (phase 2), using a warble-style shim and-Dsymbol renames; HE-AAC (SBR + PS) decoding includedplayback: Rockbox-style queue insertion API (insert / insert-next / insert-last), resume with playback-position restore, and first-class.m3u8playlist handling — all surfaced through the FFI and bindingsplayback: HTTP(S) remote media playback via aMediaSourceabstraction (byte-range requests + MIME sniffing), lazy range-buffered remote files, live-radio streaming, and ICY metadata parsing (StreamTitle, station name, bitrate)player: the full Rockbox DSP chain + EQ presets (e.g. BassBoost), crossfeed / PBE / AFR and tone cutoffs, and shuffle / repeat modes are now driveable through the high-level player API, with builder and pipe/fluent DX ergonomicsbuild/ci: FreeBSD / NetBSD / OpenBSD support — headless-host firmware build, a directlibasoundsink on FreeBSD/NetBSD and a newlibsndiosink on OpenBSD,statvfs-based filesystem code, FTS5 search on the BSDs, and a dedicatedbsd-releaseCI job that buildsrockboxdin FreeBSD/NetBSD VMs viacross-platform-actionsnix: Nix flake packaging — a hermetic.#rockboxbuild with bundled Typesense and prefetched V8, Rust staticlibs split into a separately-cached derivation, FlakeHub publishing, a Cachix binary cache, and anix-consumesmoke-test workflow;nix runstarts the daemontools:tools/console— a Clojure/babashka REPL (with a./consolelauncher) that centralizes the monorepo's build/dev/ops commandscli: FreeBSD/NetBSDrc.dservice examples plus a service READMEFixed
ci: macOS gpui and embeddable-library builds no longer fail intermittently at link time withUndefined symbols for architecture arm64: _rb_daemon_start— the Cargo/Zig caches inrelease-gpui,macos-build, andrelease-embed-libare now keyed on${{ matrix.arch }}so a same-OS/different-arch runner (or a drifting*-latestlabel that silently switches CPU arch) can never restore an incompatibletarget/orzig/.zig-cache; the embed step also force-removeslibrockbox_embed.abeforecargo buildand assertsrb_daemon_startis present in bothlibrockbox_embed.aand the flattenedlibrockboxd.avianm, so a stale or mislinked archive aborts the job at its source instead of deep inside the rust-lld outputplayback: fixed a shutdown deadlock exposed by the new queue-insertion pathFS#bug fixes, and a large sweep ofrbutil/ tools build-warning cleanupsFull Changelog: 2026.07.02...2026.07.12
This discussion was created from the release 2026.07.12.
All reactions