atm0s-media-server is a Rust workspace for a decentralized low-latency media server. The current runtime is a single binary with multiple server modes that can run together in standalone mode or as separate console, gateway, connector, and media nodes.
The project is in a refactoring-era state around sans-io-runtime. Trust the source tree over older nested docs where they disagree.
The binary is atm0s-media-server from bin/.
Current subcommands:
standalone: starts in-process console, gateway, connector, and media nodes for local development.console: serves the console UI/API and SDN cluster views.gateway: serves token APIs, WebRTC/WHIP/WHEP/RTPengine media APIs, node APIs, metrics APIs, and sample assets.media: runs media workers and WebRTC/RTPengine transports.connector: stores connector events in SQL storage and handles record/hook related connector work.cert: writes self-signed certificate/key files for QUIC-related development utilities.
Implemented source-backed integrations include WebRTC SDK protobuf APIs, WHIP, WHEP, RTPengine-style APIs, recording upload/convert components, connector hooks, console APIs, and multi-tenancy sync storage. RTMP and SIP are not current in-repo server modes or transport crates.
Prerequisites:
- Rust
1.84.0withrustfmtandclippyfromrust-toolchain.toml. - Linux packages used by CI:
libsoxr-dev,libopus-dev, andlibssl-dev. protocfor all-features builds.wgetif usingdownload-geodata.sh.- Node 20 and pnpm if building the console frontend directly.
Download the GeoIP database used by gateway routing:
./download-geodata.shRun a local standalone stack from the bin/ directory. Running from bin/ also matches the debug sample asset path used by the HTTP server:
cd bin
cargo run -- \
--sdn-zone-node-id 1 \
--workers 1 \
standalone \
--geo-db ../maxminddb-data/GeoLite2-City.mmdb \
--max-cpu 100 \
--max-memory 100 \
--max-disk 100Default local ports in standalone mode:
- Console UI/API:
http://localhost:8080 - Gateway media/token APIs:
http://localhost:3000
Useful API docs are served by running nodes:
- Gateway token docs:
http://localhost:3000/token/ui - Gateway WHIP docs:
http://localhost:3000/whip/ui - Gateway WHEP docs:
http://localhost:3000/whep/ui - Gateway WebRTC docs:
http://localhost:3000/webrtc/ui - Gateway RTPengine docs:
http://localhost:3000/rtpengine/ui - Node APIs:
http://localhost:3000/api/node/ui - Metrics APIs:
http://localhost:3000/api/metrics/ui
From the repository root:
cargo build --release --package atm0s-media-server
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features --workspaceFrontend console commands live in packages/media_console_front/react-app:
pnpm install
pnpm lint
pnpm buildStart with these current top-level docs:
- User Guide
- Developer Guide
- Architecture
- Features
- Runtime/API Spec
- Troubleshooting
- Contributing
- Current Issues
The mdBook source is docs/** and the generated output is book/**. Do not edit book/** manually.
--http-tlsis parsed by the CLI, but it is not passed into the inspected HTTP server startup paths.--rtpengine-cmd-addris parsed by gateway args, but no runtime use was found in the inspected gateway flow.- External release download URLs and external SDK/sample repositories were not verified in this documentation pass.
- Some older nested docs still describe removed or stale concepts. The top-level docs above are the current entry points.
See CONTRIBUTING.md and docs/CONTRIBUTING.md.
This project is licensed under the MIT License. See LICENSE.