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
49
50
// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 ZeroDDS Contributors
//! Stable C-ABI, basis for non-Rust bindings
//!
//! Crate `zerodds-sys`.
//!
//! Safety classification: **SAFE (Kern) / BINDING (FFI-Modul)**.
//! Siehe `docs/architecture/02_architecture.md §3`, §4.4.3, §4.4.4 und
//! `docs/architecture/04_safety_by_architecture.md §2`.
//!
//! Der `lib.rs`-Kern ist Safe/no_std und `#![forbid(unsafe_code)]`. Die
//! tatsaechliche C-ABI-Oberflaeche (`extern "C"` Exports, `#[no_mangle]`
//! Symbole) wird in einem separaten `mod ffi;` angelegt, das per
//! `#![allow(unsafe_code)]` die Ausnahme lokal traegt. Safe-Audits des
//! Kerns umfassen nicht das FFI-Modul.
extern crate alloc;
// ZeroDDS-Sys-Crate ist die historische C-ABI-Surface. Mit der
// Veroeffentlichung von `zerodds-c-api` (Layer 6, RC1) ist die
// vollstaendige spec-konforme C-FFI-Schnittstelle dort gebuendelt
// (~115 Funktionen, ~4100 LOC, Spec-konform DDS 1.4 §2.2.2 +
// DDS-PSM-Cxx 1.0 §7.5).
//
// Diese Crate bleibt als Workspace-Member bestehen, exportiert aber
// keine Symbole — Konsumenten verlinken stattdessen gegen
// `zerodds-c-api` (cdylib `libzerodds.dylib` / `.so` / `.dll`).
//
// Siehe `crates/zerodds-c-api/include/zerodds.h` und
// `docs/specs/zerodds-c-api-1.0.md` fuer die vollstaendige API.
/// Marker-Konstante: weist auf die voll spec-konforme C-FFI in
/// `zerodds-c-api` hin.
pub const REFERENCE_C_API_CRATE: &str = "zerodds-c-api";