Aller au contenu principal

Changelog

All notable changes to HDDS are documented here.

[Unreleased]

Added

  • hdds_gen TypeScript backend - Generate TypeScript interfaces with CDR2 encode/decode
  • @default annotation - Support for @default(value) in IDL parser
  • Builders for IDL structs - Type-safe builder pattern generation
  • Topic wildcards - MQTT-style matching (+ single-level, # multi-level)
  • LowBw RX pipeline - Complete process_frame() with CRC, delta decoding, compression
  • Cdr2Encode/Cdr2Decode for String - CDR2 traits for String type
  • hdds-ws documentation - Complete README with JavaScript/TypeScript examples
  • Shared memory transport (experimental)
  • Content-filtered topics

Changed

  • Improved discovery performance by 40%

Quality

  • Full sanitizer validation - All 4 sanitizers pass clean:
    • Valgrind: 0 bytes definitely lost
    • ASan: 2171/2173 tests (2 timing-sensitive excluded)
    • TSan: 0 data races (std lib false positives only)
    • MSan: 0 uninitialized reads (std lib false positive only)
  • Continuous fuzzing - 6 fuzz targets, 0 crashes:
    • fuzz_rtps_spdp, fuzz_rtps_sedp, fuzz_rtps_control, fuzz_xml_permissions
    • fuzz_idl_parser (added V7), fuzz_cdr2 (added V7)
  • Extreme audit - 0 CRITICAL, 0 HIGH, 193 MEDIUM, 29 LOW

Fixed

  • sequence<string> codegen - Fixed generation for bounded strings
  • Float array encoding - Use to_le_bytes() loop instead of copy_from_slice
  • Memory leak in long-running subscribers (99.1% reduction)
  • Multicast route detection on macOS

V6 - SDK Consolidation (2026-02)

Added

  • Listeners FFI exported - DataReaderListener and DataWriterListener now available in C, C++, and Python SDKs
  • hdds-telemetry-otlp crate - OpenTelemetry OTLP export for traces and metrics (Jaeger, Grafana Tempo, Datadog)
  • TypeScript SDK (sdk/typescript/) - WebSocket-based client with @hdds/client package
  • hdds-ws WebSocket bridge - Complete 4-bug fix pass (JSON serialization, reconnection, topic filtering, heartbeat)

Changed

  • C SDK enum prefixing - All 33 enum variants now use HDDS_ prefix (breaking: OK -> HDDS_OK, RELIABLE -> HDDS_RELIABLE, etc.)
  • SDK C FFI expanded to 265+ functions - Transport Config, Security Config, Dynamic Types, Content Filters, Conditions, RPC
  • Router status command rewritten with actionable diagnostic output
  • Removed hdds-async crate (was 7-line placeholder, misleading)

Fixed

  • Python SDK - 4 function name mismatches in waitset.py, 1 type mismatch in _native.py (c_uint32 -> c_uint16)
  • C++ SDK - Commented out 3 unimplemented DSCP declarations that had no C FFI backing
  • rmw_hdds - 120 cascading fixes from enum renaming

V5 - SDK Samples (2026-01)

Added

  • 20 new QoS samples - lifespan, latency_budget, time_based_filter, transport_priority, resource_limits (x4 languages)
  • 12/12 QoS policies now have SDK samples (was 7/12)
  • 28 concept demo disclaimers - Security, advanced, and performance samples marked with honest capability status

Changed

  • 5 QoS Rust sample builder API fixes for consistency

[1.0.0] - 2024-12-01

First Stable Release

HDDS 1.0.0 marks the first production-ready release with full DDS 1.4 and RTPS 2.5 compliance.

Features

  • Core DDS API

    • DomainParticipant, Publisher, Subscriber
    • Topic, DataWriter, DataReader
    • Full QoS policy support (22 policies)
  • Multi-Language Support

    • Rust (native)
    • C bindings (FFI)
    • C++ bindings (RAII wrapper)
    • Python bindings (PyO3)
  • RTPS 2.5 Compliance

    • SPDP/SEDP discovery
    • Reliable and best-effort transport
    • Large data fragmentation
    • Participant redundancy
  • Interoperability

    • Tested with FastDDS, RTI Connext, CycloneDDS
    • Wire-compatible with RTPS 2.3+ implementations
  • Tools

    • hdds_gen code generator
    • hdds_viewer network analyzer
    • hdds_studio visual IDL editor

Known Limitations

  • DDS Security is feature-complete but not yet FIPS certified
  • Shared memory transport is experimental
  • Windows ARM64 not yet supported

[0.9.0] - 2024-10-15

Release Candidate

  • Feature freeze for 1.0
  • Security audit completed
  • Performance benchmarks published

[0.8.0] - 2024-08-01

Beta Release

  • C++ bindings added
  • QoS XML profile support
  • hdds_studio initial release

Migration Guides

Migrating from 0.x to 1.0

Breaking changes in 1.0:

// 0.x API
let writer = participant.create_datawriter(&topic)?;

// 1.0 API - renamed for clarity
let writer = participant.create_writer(&topic)?;