4 releases

0.4.1 May 21, 2024
0.4.0 Apr 5, 2024
0.3.1 Mar 13, 2024
0.3.0 Feb 26, 2024

#1404 in Network programming

Download history 118/week @ 2024-02-21 40/week @ 2024-02-28 5/week @ 2024-03-06 139/week @ 2024-03-13 5/week @ 2024-03-20 20/week @ 2024-03-27 170/week @ 2024-04-03 10/week @ 2024-04-10 48/week @ 2024-05-15 112/week @ 2024-05-22 2/week @ 2024-05-29 6/week @ 2024-06-05

168 downloads per month
Used in earendil-gui

MPL-2.0 license



Earendil is a decentralized, censorship-resistant packet-routing overlay network designed for performance and censorship resistance. It enables secure and private communication between nodes, even against powerful state-level adversaries.

Currently, the project is extremely early-stage and not ready to use. Stay tuned for updates!

Key Features

  • Robust censorship resistance
  • Confederal, non-egalitarian topology
  • Decentralized, sybil-resistant incentives based on micropayments
  • User-tunable anonymity/performance tradeoff

User documentation

Detailed info can be found in the Earendil documentation.


Layout of the crate

This repository is laid out as a Cargo workspace.

The primary, "root" crate is earendil, the primary daemon intended to be run on any machine that wishes to access Earendil (similar to the tor daemon for Tor).

Other crates live in libraries/:

  • earendil_packet implements structs for the Earendil packet format at different layers of the protocol, such as the onion-encrypted mixnet format and the format that carries the end-to-end application messages.
  • earendil_topology implements functionality for Earendil's relay graph, including helper functions for gossip

Overall, we follow an architecture where the crates in libraries/ avoid doing any I/O, and instead implement data types. Actual communication is done by the earendil daemon.

Quick example

See the docs


~2M SLoC