Platforms
Every row is checked when the archive is built, not promised: the release refuses one that asks for
a newer glibc, or that was built for a later macOS, than its row says.
Anything outside the table — musl distributions, glibc older than 2.34, 32-bit, Windows on ARM — has
no archive and has to build from source.
Install
Download the archive for your platform from the releases page, extract it, and point CMake at it:nlohmann_json, and
the native library. Nothing has to be set to run from your build tree.
A model name is
owner/name. A bare name resolves under reactor/, so "helios" works by luck
of ownership and answers 403 for anyone else’s model — write the owner out.What is in the archive
On Windows the two halves are separate files:
lib/reactor_ffi.dll.lib is what the linker reads and
bin/reactor_ffi.dll is what the loader reads.
The native library exports 29 symbols, all of them reactor_*. libwebrtc, BoringSSL, abseil and
everything else it carries stay inside it, so nothing collides with what your application already
links.
Shipping your application
libreactor_sdk.a is static and disappears into your binary. libreactor_ffi is shared, so it
stays a separate file and has to travel with what you ship.
The rpath CMake gives your binary in the build tree is an absolute path on the machine that built
it. For an installed application, say it relatively and put the library where it points:
$<TARGET_FILE:reactor::ffi> is the .so, the .dylib or the .dll — the file that runs, on
every platform. Windows needs no rpath; the DLL beside the executable is how the loader finds it.
Runtime dependencies
libreactor_ffi loads libc, libm, libgcc_s and the dynamic loader on Linux, and that is the
whole list — TLS is rustls, so there is no OpenSSL, and libwebrtc is linked statically inside it.
The one exception is audio devices, which are an opt-in target.
Building from source
Only needed for a platform with no archive, or to work against a local change to the core..so needs from the system glibc, so the SDK itself is built with the platform compiler. Two
compilers, two commands.
To build against a library somewhere else — a release archive’s lib/, or another checkout:
Next
Reactor
Connecting, commands, uploads, recordings, events.
Track
Pushing frames, receiving them, pausing, bitrate.
Types
Status, ReactorError and its codes, Clip, Subscription.Audio devices
Speaker and Microphone, in a target nothing links by accident.