hdds_recording/lib.rs
1// SPDX-License-Identifier: Apache-2.0 OR MIT
2// Copyright (c) 2025-2026 naskel.com
3
4//! HDDS Recording Service
5//!
6//! Record and replay DDS messages with support for:
7//! - Native `.hdds` format (efficient, self-contained)
8//! - MCAP export (industry standard, Foxglove compatible)
9//!
10//! # Quick Start
11//!
12//! ```bash
13//! # Record all topics on domain 0
14//! hdds-record --domain 0 --output capture.hdds
15//!
16//! # Replay at 2x speed
17//! hdds-replay --input capture.hdds --speed 2.0
18//!
19//! # Convert to MCAP (if feature enabled)
20//! hdds-record --domain 0 --output capture.mcap --format mcap
21//! ```
22//!
23//! # Format Comparison
24//!
25//! | Feature | .hdds | .mcap |
26//! |---------|-------|-------|
27//! | Self-contained | [OK] | [OK] |
28//! | Indexed seeking | [OK] | [OK] |
29//! | Type metadata | [OK] | [OK] |
30//! | Foxglove compatible | [X] | [OK] |
31//! | ROS2 compatible | [X] | [OK] |
32//! | Minimal deps | [OK] | [X] |
33
34pub mod filter;
35pub mod format;
36pub mod player;
37pub mod recorder;
38pub mod rotation;
39
40pub use filter::{TopicFilter, TypeFilter};
41pub use format::{HddsFormat, Message, RecordingMetadata};
42pub use player::{PlaybackSpeed, Player, PlayerConfig};
43pub use recorder::{Recorder, RecorderConfig};
44pub use rotation::{RotationPolicy, RotationTrigger};
45
46// MCAP support (requires "mcap" feature)
47#[cfg(feature = "mcap")]
48pub use format::{convert_hdds_to_mcap, McapError, McapExporter};