Skip to main content

Crate ringfire

Crate ringfire 

Source
Expand description

§ringfire

Ultra-low-latency, zero-copy lock-free Inter-Process Communication (IPC) ring buffer and shared memory bus for Linux.

Designed as the high-performance cross-process counterpart to rapidfire, operating over memory-mapped /dev/shm files with 128-byte cache-line aligned headers, atomic release/acquire synchronization, LatestWins lossy overflow handling, configurable wait strategies (BusySpin, YieldBackoff, Futex sleep while idle), and an O(1) seqlock-backed Blackboard state table.

Re-exports§

pub use arena::ArenaHeader;
pub use arena::BlobRef;
pub use arena::PayloadArena;
pub use blackboard::BlackboardConsumer;
pub use blackboard::BlackboardProducer;
pub use blob::BlobConsumer;
pub use blob::BlobPacket;
pub use blob::BlobProducer;
pub use blob::BlobProducerBuilder;
pub use blob::BlobRecvStatus;
pub use checkpoint::OffsetCheckpoint;
pub use error::Result;
pub use error::RingfireError;
pub use multiplexer::RingMultiplexer;
pub use multiplexer::AsyncRingMultiplexer;
pub use header::BlackboardHeader;
pub use header::BlackboardSlot;
pub use header::ReaderSlot;
pub use header::RingHeader;
pub use header::Slot;
pub use header::BLACKBOARD_MAGIC;
pub use header::BLACKBOARD_VERSION;
pub use header::FLAG_MODE_MPMC;
pub use header::FLAG_MODE_SPMC;
pub use header::FLAG_POLICY_LATEST_WINS;
pub use header::FLAG_POLICY_LOSSLESS_BACKPRESSURE;
pub use header::FLAG_SPARSE;
pub use header::FLAG_WITH_ARENA;
pub use header::FLAG_WITH_REGISTRY;
pub use header::RINGFIRE_MAGIC;
pub use header::RINGFIRE_VERSION;
pub use header::SLOT_WRITING;
pub use mpmc::MpmcProducer;
pub use mpmc::MpmcQueueConsumer;
pub use registry::ReaderInfo;
pub use registry::ReaderRegistration;
pub use registry::ReaderRegistry;
pub use registry::DEFAULT_MAX_READERS;
pub use replication::Geometry;
pub use replication::Mirror;
pub use replication::MirrorBuilder;
pub use replication::MirrorHandle;
pub use replication::MirrorStart;
pub use replication::MulticastConfig;
pub use replication::ReplicaServer;
pub use signature::compute_layout_signature;
pub use signature::fnv1a64;
pub use signature::LayoutSignature;
pub use spmc::CleanupMode;
pub use spmc::ConsumerStartMode;
pub use spmc::FlowControl;
pub use spmc::RecvStatus;
pub use spmc::RingConsumer;
pub use spmc::RingConsumerBuilder;
pub use spmc::RingProducer;
pub use spmc::RingProducerBuilder;
pub use tsc::CycleStamp;
pub use wait::BusySpin;
pub use wait::FutexWait;
pub use wait::WaitStrategy;
pub use wait::YieldBackoff;
pub use async_ring::AsyncRingConsumer;

Modules§

arena
PayloadArena & BlobRef
async_ring
blackboard
blob
BlobProducer & BlobConsumer
checkpoint
High-performance shared memory offset persistence for ring consumers.
error
ffi
header
mpmc
Multi-producer ring buffer and competing-consumer work queue.
multiplexer
RingMultiplexer & AsyncRingMultiplexer
registry
ReaderRegistry & Reader Tracking
replication
Ring replication over the network
signature
Layout signature verification for cross-process shared memory structures.
spmc
tsc
CycleStamp
wait