Crate openraft

source ·
Expand description

Openraft

§API status

Openraft API is currently unstable. Incompatibilities may arise in upgrades prior to 1.0.0. Refer to our Change-Log for details. Upgrade Guides explains how to upgrade.

Each commit message begins with a keyword indicating the type of change:

  • DataChange: Changes to on-disk data types, possibly requiring manual upgrade.
  • Change: Introduces incompatible API changes.
  • Feature: Adds compatible, non-breaking new features.
  • Fix: Addresses bug fixes.

§Openraft Document

If you’re starting to build an application with Openraft, check out

To maintain an Openraft cluster, e.g., add or remove nodes, refer to

When upgrading an Openraft application, consult:

To learn about the data structures used in Openraft and the commit protocol, see

Contributors who want to understand the internals of Openraft can find relevant information in

Finally, the archived and discarded documents:

Modules§

  • This mod is a upgrade helper that provides functionalities for a newer openraft application to read data written by an older application.
  • async runtime interface.
  • The default log entry type that implements RaftEntry.
  • Error types exposed by this crate.
  • Collection of implementations of usually used traits defined by Openraft
  • A trait for time instants.
  • This mod defines the identity of a raft log and provides supporting utilities to work with log id related types.
  • Raft metrics for observability.
  • The Raft network interface.
  • Public Raft interface and data types.
  • The Raft storage interface and data types.
  • Testing utilities for OpenRaft.
  • Openraft Document

Re-exports§

Traits§

Re-exports§

Enums§

  • Defines various actions to change the membership, including adding or removing learners or voters.

Structs§

  • The runtime configuration for a Raft node.

Enums§

Re-exports§

Structs§

  • The currently active membership config.
  • The membership configuration of the cluster.
  • This struct represents information about a membership config that has already been stored in the raft logs.

Re-exports§

Structs§

  • An implementation of trait Node that contains minimal node information.
  • EmptyNode is an implementation of trait Node that contains nothing.

Traits§

  • A Raft Node, this trait holds all relevant node information.
  • A Raft node’s ID.

Re-exports§

  • pub use crate::raft::Raft;

Structs§

  • The state of membership configs a raft node needs to know.
  • A struct used to represent the raft state which a Raft node needs.

Type Aliases§

Structs§

Re-exports§

Structs§

  • An error that occurs when the RaftStore impl runs defensive check of input or output. E.g. re-applying an log entry is a violation that may be a potential bug.

Enums§

  • What it is doing when an error occurs.
  • A storage error could be either a defensive check error or an error occurred when doing the actual io operation.

Structs§

Traits§

Enums§

  • Violations a store would return when running defensive check.

Traits§

  • Similar to AsRef<T>, it does a cheap reference to reference conversion, but with the ability to return None if it is unable to perform the conversion to &T.

Type Aliases§

  • The unique identifier of a leader that is already granted by a quorum in phase-1(voting).

Structs§

  • LeaderId is identifier of a leader.
  • Vote represent the privilege of a node.

Traits§

Macros§

Re-exports§

Structs§

  • AnyError is a serializable wrapper Error.

Attribute Macros§

  • This proc macro attribute optionally adds Send bounds to a trait.