Skip to content

v1.0.0-rc.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 18:15
· 11 commits to main since this release

ZeroDDS 1.0.0-rc.7

A release candidate. The workspace was taken apart and rebuilt: members went
from 141 entries to three, the old code was deleted (1,321 files), and every
crate re-entered on the new foundation. 134 crates are on crates.io at
1.0.0-rc.7.

The full list is the 1.0.0-rc.7 section of CHANGELOG.md:
7 removals, 33 security entries, 91 changes, 86 additions, 161 fixes.

Breaking

A selection; the CHANGELOG marks 34 entries BREAKING, each with what to change.

  • Twelve crates no longer exist. zerodds-cdr → zerodds-wire;
    zerodds-idl → zerodds-idl-cst / -parse / -lower over zerodds-ast;
    the zerodds-idl-<lang> backends → zerodds-lang-rules. For a build.rs
    the chain is one call: zerodds_build::Config::new().compile(&["types.idl"]).
  • zerodds-idlc keeps its name; the per-language flags became
    generate --lang <name>.
  • The default CDR dialect is the specification's, not Cyclone's.
  • Generated Rust: an IDL map is a Vec<MapEntry<K, V>>.
  • UserWriterConfig, UserReaderConfig and ParticipantBuiltinTopicData
    grew fields; initialise with ..Default::default().
  • zerodds-security: LoggingPlugin has the operations of DDS-Security
    1.2 Table 46.
  • C++ API: the dds:: value, QoS, status and sample classes are the ones
    DDS-PSM-Cxx 1.0 §7.5 and §7.6 define. Java PSM: the org.omg.dds types
    are the specification's interfaces and abstract classes, errors are
    exceptions, TopicType is gone.
  • DDS-RPC: operation opcodes are the hash of the operation name.
  • Python: zerodds.idl and zerodds.cdr are gone.

Security

DDS-Security 1.2: PKI-DH (GUID, SharedSecret, AuthRequestMessageToken, CRL,
algorithm names), permissions bound to the SubjectName and evaluated after
§10.4.1.5.3, governance and permissions refused outside the XSD, SRTPS flags
and HeaderExtension, key material per protection kind, crypto tokens only to
their destination. cryptoki 0.12 and duckdb 1.10506.1 close four advisories.

Interoperability notes

  • A reader holds a writer to the dataMaxSizeSerialized it announced
    (DDSI-RTPS 2.5 Table 8.72). Fast DDS 3.6.1 announces less than it sends for
    a type with an unbounded member; against it, set
    reader.honor_data_max_size_serialized=false
    (ZERODDS_READER_HONOR_DATA_MAX_SIZE_SERIALIZED=false).
  • RTI Connext declares a PL_CDR1 parameter length rounded up to four; a
    generated codec reads it in the rti dialect.
  • The examples in zero-dds-snippets
    build and run against this release, including the cross-vendor legs
    against Cyclone DDS, Fast DDS, OpenDDS, OpenSplice, iceoryx and ROS 2.

Installation

macOS

Recommended: zerodds-bundle-*.pkg (signed + notarized + stapled — Gatekeeper accepts it without a workaround).

Tarball variant (*.tar.xz): Apple notarytool does not accept .tar.xz, so the tarball binary carries no notarization ticket. After unpacking:

xattr -d com.apple.quarantine zerodds-* 2>/dev/null
chmod +x zerodds-*

Linux

  • Arch: paru -S zerodds-bin (precompiled) or paru -S zerodds (build from source)
  • Debian/Ubuntu: download *.deb + sudo dpkg -i
  • Fedora/RHEL: download *.rpm + sudo dnf install
  • Generic: *.tar.xz for whichever component you want

Windows

  • MSI installer: zerodds-1.0.0-rc.7-x64.msi (unsigned when no Windows certificate is configured)
  • Portable: download *.zip + extract

Docker

Multi-arch (amd64/arm64) on ghcr.io and Docker Hub:

docker pull ghcr.io/zero-objects/zerodds-cli:v1.0.0-rc.7
docker pull fishermen21/zerodds-mqtt-bridged:v1.0.0-rc.7

Crates.io

cargo install zerodds-record zerodds-bench zerodds-monitor-cli zerodds-spy zerodds-snitch zerodds-pcap zerodds-mq

What's Changed

New Contributors

Full Changelog: v1.0.0-rc.6...v1.0.0-rc.7