Distributed message-passing algorithms, written so the code reads as the algorithm.
Three crates, all of them sans-IO: no protocol here opens a socket, reads a clock or reaches for randomness. They are listed in the order they depend on each other, which is also the order they are worth reading in.
The Protocol trait, the effect vocabulary, Cx, time, storage and the
composition primitives. Everything else depends on this and it depends on nothing.
The deterministic simulator. It is the fair-loss network, and it is the project's standard of evidence — seeded, with a virtual clock, fault injection, and a trace that properties are asserted over. A failing run is reproducible from its seed.
The abstractions themselves — links, failure detectors, broadcasts, consensus — each transcribed from Cachin, Guerraoui & Rodrigues with the pseudocode quoted in the module and every departure from the page stated beside it.