zerodds-transport-shm
Layer 2 — Wire (POSIX SHM). Cross-process shared-memory transport.
- Source: crates/transport-shm
- API docs: docs.rs/zerodds-transport-shm
Cross-process shared-memory transport via POSIX shm_open + mmap. Lock-free SPSC ring buffer per (owner, consumer) pair. Crash recovery via a predictable os_id + shm_unlink.
Spec anchors
- POSIX
shm_open/mmap— same-host IPC for multi-process DDS applications.
Quick start
Writer allocates a shared segment, reader (another process) joins it — a lock-free SPSC ring buffer per pair:
use zerodds_transport_shm::posix::{PosixShmTransport, ShmConfig};
// Writer allocates the segment …
let owner = PosixShmTransport::open_owner(local_id, peer_id, ShmConfig::default())?;
// … reader joins the same (local_id, peer_id) segment
let reader = PosixShmTransport::open_consumer(local_id, peer_id, ShmConfig::default())?;
Modules
posix—PosixShmTransport(open_owner / open_consumer) +ShmConfigover POSIXshm_open+mmap, with predictableos_id+shm_unlinkcrash recovery.
Coverage & tests
Coverage ledger: zerodds-shm-transport-1.0 (segment layout + SPSC ring buffer + crash recovery). 18 tests (17 lib + 1 cross-process); run cargo test -p zerodds-transport-shm.
Stability
1.0.0-rc.3. 18 tests green (17 lib + 1 cross-process integration).
zerodds-transport-shm
Layer 2 — Wire (POSIX SHM). Cross-Process Shared-Memory-Transport.
- Quelle: crates/transport-shm
- API-Docs: docs.rs/zerodds-transport-shm
Cross-Process Shared-Memory-Transport via POSIX shm_open + mmap. Lock-free SpSc-Ringbuffer pro (owner, consumer)-Paar. Crash-Recovery via predictable os_id + shm_unlink.
Spec-Anker
- POSIX
shm_open/mmap— Same-Host-IPC für Multi-Process-DDS-Anwendungen.
Quick Start
Writer alloziert ein Shared-Segment, Reader (anderer Prozess) joint — ein Lock-free-SpSc-Ringbuffer pro Paar:
use zerodds_transport_shm::posix::{PosixShmTransport, ShmConfig};
// Writer allocates the segment …
let owner = PosixShmTransport::open_owner(local_id, peer_id, ShmConfig::default())?;
// … reader joins the same (local_id, peer_id) segment
let reader = PosixShmTransport::open_consumer(local_id, peer_id, ShmConfig::default())?;
Module
posix—PosixShmTransport(open_owner / open_consumer) +ShmConfigüber POSIXshm_open+mmap, mit predictableos_id+shm_unlink-Crash-Recovery.
Coverage & Tests
Coverage-Ledger: zerodds-shm-transport-1.0 (Segment-Layout + SpSc-Ringbuffer + Crash-Recovery). 18 Tests (17 lib + 1 Cross-Process); cargo test -p zerodds-transport-shm.
Stabilität
1.0.0-rc.3. 18 Tests grün (17 lib + 1 Cross-Process-Integration).