G
YouTube TikTok Games

Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

NetworkBrowser P2PStructured P2PPrivacy layerE2E 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.

  1. Rings authenticates every overlay message by DID signature and provides E2E ElGamal stream encryption after a peer handshake.
  2. libp2p offers an optional Kademlia DHT. I2P uses a Kademlia-based netDb for discovery; messages travel through tunnels.
  3. Encrypted peer connections: libp2p includes circuit-relayed connections; browser WebTorrent uses WebRTC/DTLS.
  4. aMule protocol obfuscation is transport-level only. This row covers Kad; eD2k uses indexing servers.
  5. Nostr supports encrypted direct messages, such as NIP-44 payloads, alongside public signed events.
  6. Between Nym clients or I2P destinations; traffic to external services uses application-layer TLS/HTTPS.
  7. Tor provides end-to-end encryption for onion services and pairs with HTTPS for external websites.

Primary sources

Sources for the comparison

Sources checked September 22, 2026.

Choose a runtime

RuntimeStart with
Native nodeInstall, then Host a Native Node and Operate a Node from the CLI
Browser (Wasm) nodeBuild for Wasm and Browser Node and Extension
Another languageEmbed via C FFI
An AI coding agentllms.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

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.