Skip to main content

zerodds_recorder_decode/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 ZeroDDS Contributors
3//! Decode DDS samples to typed outputs for `zerodds-spy` / `zerodds-record`.
4//!
5//! Crate `zerodds-recorder-decode`. Safety classification: **COMFORT**
6//! (tooling — no runtime hot path).
7//!
8//! Three pieces sit on top of the reflective codec
9//! ([`zerodds_types::dynamic::codec`]):
10//!
11//! - [`type_source`] — load an out-of-band IDL file and resolve a named type to
12//!   a [`zerodds_types::dynamic::type_::DynamicType`] (the `--type-file` path);
13//! - `json_sink` — `DynamicData` → JSON (NDJSON);
14//! - `sqlite_sink` — per-topic relational SQLite with a record marker.
15//!
16//! Both sinks also retain the raw CDR bytes per sample so `zerodds-replay` can
17//! re-publish byte-exact from any format.
18
19#![warn(missing_docs)]
20#![allow(clippy::module_name_repetitions)]
21
22pub mod json_sink;
23pub mod replay_source;
24pub mod sqlite_sink;
25pub mod type_source;