OmniPaxos is a replicated log library implemented in Rust. OmniPaxos aims to hide the complexities of consensus to provide users with a replicated log that is as simple to use as a local log.

Similar to Raft, OmniPaxos can be used to build strongly consistent services such as replicated state machines. Additionally, the leader election of OmniPaxos offers better resilience to partial connectivity and more flexible and efficient reconfiguration compared to Raft.

The library consist of two workspaces: omnipaxos and omnipaxos_storage. The omnipaxos workspace implements the algorithms of OmniPaxos as plain Rust structs. Therefore, it can be integrated into any network layer provided by you (we describe how to send and handle messages here). You can also provide your own implementation for storing the log and state of OmniPaxos. Otherwise we provide both in-memory and persistent storage implementations that work out of the box in omnipaxos_storage.

In addition to the tutorial style presentation in this book, examples of usages of OmniPaxos can be found in the examples and in the tests.