Open Source
Last updated:
Rerinku is made of several components. The device side and the tooling are open source; the streaming platform server is not.
That boundary is deliberate: code that goes into your firmware and runs on your devices is code you must be able to read, modify and audit. The platform server is a service we operate, and its source is not published.
Open source components
rerinku-client — embedded publishing SDK
This is the one library a camera vendor integrates to work with the Rerinku platform. Built on libdatachannel, it publishes already-encoded frames over WHIP/WebRTC. Capture and encoding are out of scope — those belong to the device platform (V4L2, hardware encoders).
- Repository: github.com/akarineren/relink
- Language: C++, with a stable C ABI (
<rerinku/rerinku_c.h>) - Licence: Apache License 2.0
- Features: WHIP signalling, H.264/H.265/Opus RTP packetisation, automatic bitstream normalisation, parameter-set backfill, multi-channel (multiple cameras / main and sub streams / microphone)
You can build only the rerinku_core target, dropping MQTT and the device agent, for constrained devices.
rerinku-cli — local camera discovery
A command-line tool that scans your network for ONVIF and GB28181 devices plus local USB cameras, takes snapshots, probes capabilities and verifies streaming. Its output is stable machine-readable JSON with no credentials in it, which suits automation pipelines and AI agents.
- Repository: github.com/akarineren/relink-cli
- Language: Go
- Licence: Apache License 2.0
- Features: discovery, three-state capability probing, snapshots, stream verification, PTZ control, ONVIF events, recording search and playback
git clone https://github.com/akarineren/relink-cli
cd rerinku-cli && make build
./build/rerinku-cli discover
Closed components
The streaming platform server — media engine, continuous recording and playback, cloud sharing, and the console — is not published.
Contributing
- Open an issue for bugs or compatibility problems. For camera issues, include the model, firmware version and the output of
rerinku-cli info <n> -json. - Before sending a PR to rerinku-cli, read
docs/ARCHITECTURE.mdin the repository and respect the CLI/SDK boundary (the CLI must not depend directly oninternal/protocol code). - When adding camera compatibility, include a capture or capability snapshot under
testdata/so it can be regression-tested.
Third-party dependencies
Rerinku stands on the shoulders of libdatachannel, Pion WebRTC, FFmpeg, modernc.org/sqlite, Solid.js, Astro and many others. Thanks to all their maintainers.