lowlet
Low-latency inter-process communication library for Rust.
Features
- Shared memory regions with automatic cleanup
- Lock-free SPSC queue and MPMC ring buffer
- Inline assembly memory fences and atomics (x86_64)
- TTAS spinlock with pause instruction
- Process synchronization barrier
- Batch send/receive operations
- Timeout-based operations
- Channel statistics and metrics
New in 0.1.2
- RwLock: Multiple readers, single writer lock
- Semaphore: Counting semaphore with acquire/release
- SeqLock: Optimistic read locking for read-heavy workloads
- Broadcast Channel: One-to-many message delivery
- Priority Queue: Lock-free min-heap implementation
- Object Pool: Pre-allocated slots for reduced allocation overhead
- Zero-copy API:
send_in_place()andrecv_in_place()methods - Latency Histogram: HDR histogram with p50/p90/p99/p999 percentiles
- Channel Health: Real-time utilization and saturation monitoring
- Graceful Shutdown:
close()andis_closed()methods - Additional Methods:
is_full(),drain(),peek()
Installation
[]
= "0.1.2"
Quick Start
use channel;
Broadcast Example
use broadcast;
Documentation
Performance
- ~61 cycles per send/recv operation
- ~20ns latency at 3GHz
- Zero-copy message passing
- Lock-free algorithms
License
MIT OR Apache-2.0