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:

Re-exports§

pub extern crate openraft_macros;
pub use crate::async_runtime::AsyncRuntime;
pub use crate::async_runtime::TokioRuntime;
pub use crate::entry::Entry;
pub use crate::entry::EntryPayload;
pub use crate::instant::Instant;
pub use crate::instant::TokioInstant;
pub use crate::log_id::LogId;
pub use crate::log_id::LogIdOptionExt;
pub use crate::log_id::LogIndexOptionExt;
pub use crate::log_id::RaftLogId;
pub use crate::metrics::RaftMetrics;
pub use crate::network::RPCTypes;
pub use crate::network::RaftNetwork;
pub use crate::network::RaftNetworkFactory;
pub use crate::raft::Raft;
pub use crate::storage::LogState;
pub use crate::storage::RaftLogReader;
pub use crate::storage::RaftSnapshotBuilder;
pub use crate::storage::Snapshot;
pub use crate::storage::SnapshotMeta;
pub use crate::storage::StorageHelper;
pub use crate::type_config::RaftTypeConfig;
pub use anyerror;

Modules§

async_runtime
async runtime interface.
compat
This mod is a upgrade helper that provides functionalities for a newer openraft application to read data written by an older application.
docs
Openraft Document
entry
The default log entry type that implements RaftEntry.
error
Error types exposed by this crate.
impls
Collection of implementations of usually used traits defined by Openraft
instant
A trait for time instants.
log_id
This mod defines the identity of a raft log and provides supporting utilities to work with log id related types.
metrics
Raft metrics for observability.
network
The Raft network interface.
raft
Public Raft interface and data types.
storage
The Raft storage interface and data types.
testing
Testing utilities for OpenRaft.
type_config
Define the configuration of types used by the Raft, such as NodeId, log Entry, etc.

Macros§

declare_raft_types
Define types for a Raft type configuration.

Structs§

AnyError
AnyError is a serializable wrapper Error.
BasicNode
An implementation of trait Node that contains minimal node information.
Config
The runtime configuration for a Raft node.
DefensiveError
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.
EffectiveMembership
The currently active membership config.
EmptyNode
EmptyNode is an implementation of trait Node that contains nothing.
LeaderId
LeaderId is identifier of a leader.
Membership
The membership configuration of the cluster.
MembershipState
The state of membership configs a raft node needs to know.
RaftState
A struct used to represent the raft state which a Raft node needs.
SnapshotSegmentId
The identity of a segment of a snapshot.
StorageIOError
Error that occurs when operating the store.
StoredMembership
This struct represents information about a membership config that has already been stored in the raft logs.
Vote
Vote represent the privilege of a node.

Enums§

ChangeMembers
Defines various actions to change the membership, including adding or removing learners or voters.
ConfigError
Error variants related to configuration.
ErrorSubject
ErrorVerb
What it is doing when an error occurs.
ServerState
All possible states of a Raft node.
SnapshotPolicy
Log compaction and snapshot policy.
StorageError
A storage error could be either a defensive check error or an error occurred when doing the actual io operation.
Violation
Violations a store would return when running defensive check.

Traits§

AppData
A trait defining application specific data.
AppDataResponse
A trait defining application specific response data.
MessageSummary
Node
A Raft Node, this trait holds all relevant node information.
NodeId
A Raft node’s ID.
OptionalSend
OptionalSync
ToStorageResult
Convert error to StorageError::IO();
TryAsRef
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§

CommittedLeaderId
The unique identifier of a leader that is already granted by a quorum in phase-1(voting).
SnapshotId
Id of a snapshot stream.

Attribute Macros§

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