Start Here
Rings is a peer-to-peer network for the sovereign age. Browser tabs and native daemons join a unified Chord DHT overlay, address each other by DIDs, and communicate over direct WebRTC datachannels with no application server in the data path. Bootstrap and signaling establish the initial peer links, with optional TURN relay support when configured.
The overlay layer provides authenticated DID routing and end-to-end ElGamal stream encryption after a peer handshake, while the privacy layer provides anonymous Sphinx onion circuits that bound what each relay can learn to its immediate predecessor and successor; see the security model.
On top of the overlay, Rings gives applications a namespace-scoped protocol runtime. A protocol is a pure state machine; its interpreter shell performs the side effects, and only within its own namespace. Built-in protocols cover peer service relay and echo; yours are registered under a namespace of their own.
Rings is written in Rust and compiles to native binaries and to WebAssembly, so the same node runs in a terminal, in a browser tab, and inside a host that speaks C. This book is the reference for all three; the Guide on the site is its short form.
Where Rings fits
✅ supported · ❌ not provided. Qualifications are listed below the table.
| Network | Browser P2P | Structured P2P | Privacy layer | E2E encryption |
|---|---|---|---|---|
| Rings | ✅ | ✅ Chord | ✅ Separate layer | ✅¹ |
| libp2p | ✅ | ✅ Kademlia² | ❌ | ✅³ |
| aMule / Kad | ❌ | ✅ Kademlia | ❌ | ❌⁴ |
| Nostr | ❌ | ❌ | ❌ | ✅⁵ |
| Nym mixnet | ❌ | ❌ | ✅ Full mixnet path | ✅⁶ |
| Tor | ❌ | ❌ Relay network | ✅ Onion circuits | ✅⁷ |
| I2P | ❌ | ✅ netDb² | ✅ Tunnel network | ✅⁶ |
| WebTorrent (browser) | ✅ | ❌ | ❌ | ✅³ |
Browser P2P means the browser itself connects as a peer; a browser UI or gateway client does not qualify. Structured P2P includes DHT-based discovery; it does not imply that application traffic is routed through the DHT. Privacy means network metadata protection, separate from payload encryption.
- Rings authenticates every overlay message by DID signature and provides E2E ElGamal stream encryption after a peer handshake.
- libp2p offers an optional Kademlia DHT. I2P uses a Kademlia-based netDb for discovery; messages travel through tunnels.
- Encrypted peer connections: libp2p includes circuit-relayed connections; browser WebTorrent uses WebRTC/DTLS.
- aMule protocol obfuscation is transport-level only. This row covers Kad; eD2k uses indexing servers.
- Nostr supports encrypted direct messages, such as NIP-44 payloads, alongside public signed events.
- Between Nym clients or I2P destinations; traffic to external services uses application-layer TLS/HTTPS.
- Tor provides end-to-end encryption for onion services and pairs with HTTPS for external websites.
Primary sources
Sources for the comparison
- Rings: security model.
- libp2p: WebRTC, Kademlia DHT specification, encrypted circuit-relay connections.
- aMule: eD2k/Kad, browser remote control, protocol obfuscation. Obfuscation targets protocol classification rather than a secure E2E messaging contract.
- Nostr: NIP-01 client/relay protocol, NIP-44 encrypted payloads.
- Nym: mixnet design, browser SDK, client-to-client encryption.
- Tor: relay network, onion-service E2E encryption, HTTPS and exit traffic.
- I2P: Kademlia-based network database, tunnels and destination-to-destination encryption.
- WebRTC standards: ICE, RFC 8445, IP address handling, RFC 8828, data channels, RFC 8831, DCEP, RFC 8832.
- WebTorrent (browser): browser-to-browser WebRTC and tracker discovery, WebRTC data-channel encryption. The row covers browser peers, not the native client’s DHT support.
Sources checked September 22, 2026.
Choose a runtime
| Runtime | Start with |
|---|---|
| Native node | Install, then Host a Native Node and Operate a Node from the CLI |
| Browser (Wasm) node | Build for Wasm and Browser Node and Extension |
| Another language | Embed via C FFI |
| An AI coding agent | llms.txt |
If you are new to Rings, start with a native node: it is the shortest path to a running peer and to the JSON-RPC API every runtime shares.
How it works
- Architecture: the layers, from transport to application.
- How handshake works and Exchange SDP: how two peers open a datachannel.
- DHT - Network Layer: routing and lookup on the Chord ring.
- Account Abstraction: DIDs and the signature schemes behind them.
- config.yaml: every section of a native node’s configuration.
Beyond the book
- Rings whitepaper: the unified protocol specification.
- Security model: cryptographic identity and delegation, deployment models, and the contracts of the communication and privacy layers.
- Roadmap: where the network layer and the privacy layer are heading.
- Source on GitHub: the code, examples, and issues.
- License: AGPL-3.0-only, so a product or hosted service built on Rings publishes its source; a commercial license for use outside those terms is available on request.