1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! # slotbus
//!
//! Lock-free shared memory IPC with slotted request/response.
//!
//! Slotbus provides sub-microsecond wake latency and sub-millisecond round-trip
//! times for local inter-process communication. Instead of serializing data through
//! sockets or HTTP, processes read and write directly from shared memory pages with
//! OS-level event signaling.
//!
//! ## Architecture
//!
//! - **Control region**: A fixed-size shared memory region (default 1MB) containing
//! a header, 32 request/response slots, and an inline bump-allocated heap.
//! - **Slots**: Each slot is an independent request/response pair with a lock-free
//! state machine: `Free → Ready → Claimed → Done → Free`.
//! - **Signaling**: OS-native named events (Windows) for cross-process wakeup
//! with zero polling.
//! - **Overflow**: Large payloads that don't fit inline automatically spill to
//! temporary shared memory regions.
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use slotbus::{SlotBus, SlotBusConfig};
//!
//! // Hub side — create a bus for a worker
//! let config = SlotBusConfig::builder()
//! .name("my-worker")
//! .build();
//! let bus = SlotBus::create(config).unwrap();
//!
//! // Worker side — connect to the bus (same config, different process)
//! let worker_config = SlotBusConfig::builder()
//! .name("my-worker")
//! .build();
//! let worker = slotbus::SlotWorker::open(worker_config).unwrap();
//! ```
pub use ;
pub use SlotBusError;
pub use ;