Skip to content

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.

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.md in the repository and respect the CLI/SDK boundary (the CLI must not depend directly on internal/ 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.