mmap-sync 2.0.1

A Rust package allowing sharing of data between processes in a wait-free and zero-copy fashion from mapped memory.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#![cfg_attr(docsrs, feature(doc_cfg))]
//! `mmap-sync` is a high-performance, concurrent data access library for Rust. It is designed to handle data access between a single writer process and multiple reader processes efficiently using memory-mapped files, wait-free synchronization, and zero-copy deserialization.
//!
//! ## Features
//!
//! - **Memory-mapped files**: This allows different processes to access the same memory space, bypassing the need for costly serialization and deserialization. As a result, `mmap-sync` provides fast, low-overhead data sharing between processes.
//!
//! - **Wait-free synchronization**: Inspired by [Linux kernel's Read-Copy-Update (RCU) pattern](https://www.kernel.org/doc/html/next/RCU/whatisRCU.html) and the [Left-Right concurrency control technique](https://github.com/pramalhe/ConcurrencyFreaks/blob/master/papers/left-right-2014.pdf). Write access to the data is managed by a single writer, with multiple readers able to access the data concurrently.
//!
//! - **Zero-copy deserialization**: Leveraging the [rkyv](https://rkyv.org/) library, `mmap-sync` achieves efficient data storage and retrieval. The templated type `T` for `Synchronizer` can be any Rust struct implementing specified `rkyv` traits.
//!
//! To get started with `mmap-sync`, please see the [examples](https://github.com/cloudflare/mmap-sync/tree/main/examples) provided.
mod data;
pub mod guard;
pub mod instance;
pub mod locks;
mod state;
pub mod synchronizer;