Warning
This repository is under active development, and it has not been audited. Do not use it for any production use case. Do use it to experiment with the protocol 💖
Anonymous broadcast channels for applications, with a Rust runtime, node binaries and UniFFI bindings.
Requires Rust and a native C/C++ toolchain.
cargo build --locked --workspace --jobs 8
cargo test --locked --workspace --jobs 8 -- --test-threads=1cargo run --locked -p anymone-observer -- demoOpen http://localhost:7000 for the dashboard.
To connect a separate chat client, start the demo with a fresh output directory:
cargo run --locked -p anymone-observer -- demo --output target/demo --clients 0Wait for Demo ready, then run in another terminal on the same host:
cargo run --locked -p anymone-chat -- --config target/demo/client.toml --port 8080Open http://localhost:8080.
Start from anymone.toml.example. Generate one identity per
node with anymone-node keygen --out node.identity; keep its .exchange file
alongside it. Fill in addresses, bootstrap peers and the shared governance
committee, then run anymone-node run --config node.toml --role committee
or --role relay.
Set [committee].protocol to panetiere (default), scheduled-panetiere,
adcnet, scheduled-adcnet, or noop (unencrypted). Protocol selection is
explicit. Optional core features: tdx-attest, mobile-attest, wire-debug.
The application API is in anymone-core: open(tag) creates a client pipe,
bind(tag) receives service requests, and subscribe(tag) joins a broadcast
channel. See each binary's --help for options.