zerodds-foundation
Foundation-Layer-Primitive für den ZeroDDS-Stack. Pure-Rust, no_std-tauglich, forbid(unsafe_code). Safety classification: SAFE.
Was ist drin
- Stack-Buffer —
PoolBuffer<CAP>mit fester Kapazität für Hot-Path-Allokationen ohne Heap-Touch; explizitePoolBufferError::Overflowstatt Panic. - Wire-Integrity-Hashes —
crc32c(RFC 4960 App. B),crc64_xz(ECMA-182 / XZ utils),md5(RFC 1321). Pure-Rust ohne externe Crypto-Crate-Abhängigkeit. Genutzt in DDSI-RTPS HEADER_EXTENSION-Checksum, XTypes EquivalenceHash, KeyHash und Group-Digest. - Observability — strukturierte
Event/Component/LevelplusSink-Trait für beliebige Konsumenten.NullSink,StderrJsonSink,VecSinkals Reference-Implementations. - Tracing —
Span/SpanContext/TraceId/SpanIdplusHistogramfür grobgranulares Tracing; OTLP-Export imzerodds-observability-otlp-Crate. - RCU —
RcuCell<T>als Copy-on-Write-Container für wenig-Schreib/viel-Lese-Patterns ohneunsafe(Mutex-protected Reference-Cell,Arc<T>-Snapshots).
Schichten-Position
Layer 0 (Foundation). Hat keine Dependencies auf andere ZeroDDS-Crates. Wird von Layer 1 (Primitives: cdr, qos, types) und allen höheren Schichten verwendet.
Quickstart
use ;
// CRC-32C über ein RTPS-Datagramm.
let payload = b"\x52\x54\x50\x53\x02\x05\x01\x0F";
let checksum = crc32c;
// Hot-Path-Buffer mit fester Kapazität.
let mut buf: = new;
buf.extend_from_slice.unwrap;
// Overflow ist explizit, kein Panic.
let mut tiny: = new;
assert_eq!;
Feature-Flags
| Feature | Default | Zweck |
|---|---|---|
std |
✅ | Aktiviert RcuCell, StderrJsonSink, VecSink. Implies alloc. |
alloc |
✅ (via std) |
Aktiviert observability + tracing + MD5 mit beliebiger Eingabelänge. |
safety |
❌ | Reserviert für zukünftige Safety-Build-Constraints. |
Ohne Features (default-features = false): nur PoolBuffer, crc32c, crc64_xz, md5 (no_std-MD5-Pfad ist auf 56 Byte Eingabe limitiert).
Stabilität
Alle pub-Items sind ab 1.0.0 stabil; Breaking-Changes erfordern Major-Version-Bump.
Tests
Lizenz
Apache-2.0. Siehe LICENSE.
Siehe auch
docs/architecture/02_architecture.md— Schichten-Architektur des Workspacesdocs/architecture/04_safety_by_architecture.md— Safety-Klassifikation