atm0s-media-server

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.

Current Runtime

The binary is atm0s-media-server from bin/.

Current subcommands:

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.

Quick Start From Source

Prerequisites:

Download the GeoIP database used by gateway routing:

./download-geodata.sh

Run 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 100

Default local ports in standalone mode:

Useful API docs are served by running nodes:

Build And Check

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 --workspace

Frontend console commands live in packages/media_console_front/react-app:

pnpm install
pnpm lint
pnpm build

Documentation

Start with these current top-level docs:

The mdBook source is docs/** and the generated output is book/**. Do not edit book/** manually.

Known Caveats

Contributing

See CONTRIBUTING.md and docs/CONTRIBUTING.md.

License

This project is licensed under the MIT License. See LICENSE.