Crate lol_core

source ·
Expand description

Raft is a distributed consensus algorithm widely used recently to build distributed applications like etcd. However, while it is even understandable than notorious Paxos algorithm it is still difficult to implement correct and efficient implementation.

This library is a Raft implementation based on Tonic, a gRPC library based on Tokio. By exploiting gRPC features like streaming, the inter-node log replication and snapshot copying is very efficient.

Modules

Available message types for interaction with the cluster.
gatewaygateway
Gateway to interact with the cluster.
simplesimple
Simplified RaftApp.
The abstraction of the log storage and some implementations.

Structs

Configuration.
Builder for Config.
The URI component of a request.

Enums

Error type for ConfigBuilder
Decision to make a new snapshot.

Traits

The abstraction of user-defined application.

Functions

Make a RaftService.

Type Definitions

Log entry index.
A Raft implementation of tower::Service.
The core-level stream type. It is just a stream of byte chunks. The length of each chunk may be different.