github ZettaScaleLabs/hiroz v0.2.0

4 hours ago

0.2.0 — 2026-08-22

Changelog

Features
  • (dynamic) Add derive macro for message schema (#139) (445b6c0)
  • (go) Implement Go bindings Phase 2 — services, actions, interop tests (#147) (866bbbd)
  • (graph) Add EndpointKind::ActionServer and typed wait_for_action_server (#194) (df02222)
  • (graph) Add graph-based availability wait helpers (#137) (a5932b4)
  • (hiroz) Embed the bundled message definitions (#314) (07aba92)
  • (hiroz) Let the examples advertise their message types (#320) (179198e)
  • (hiroz) Debug-time barrier against callbacks under a lock (#255) (27128d0)
  • (hiroz) Graph-settle wait + service-schema discovery (hu stack 3/9) (#234) (4c428ca)
  • (hiroz-union) Wasm plugin host, rename hiroz-console to hiroz-union (hu stack 5/9) (#236) (8cc8681)
  • (hu) Ship the plugins a release needs to be usable (#312) (803705c)
  • (hu-meter) Restore pub and delay subcommands (#263) (48f77ec)
  • (hu-meter) Introspection plugin + 48-test suite (hu stack 7/9) (#238) (951781b)
  • (hu-monitor) Live graph/log monitoring plugin + 10-test suite (hu stack 8/9) (#239) (ffcc459)
  • (hu-plugin-template) Standalone WASM plugin authoring workspace (hu stack 6/9) (#245) (a3ac77e)
  • (msgs) Rcl_interfaces logger-level messages (hu stack 2/9) (#233) (1a3ee63)
  • (msgs) Vendor 11 standard ROS 2 packages for Jazzy coverage (#215) (5fd3208)
  • (node) Expose keyexpr_format() and next_entity_id() for bridge use (#205) (2a44231)
  • (node) Add context-level default namespace inheritance for nodes (#138) (ad73cb3)
  • (protocol) Expose DynKeyExprFormatter for runtime format extension (#207) (b664957)
  • (pubsub-use-advanced) Use AdvancedPublisher/AdvancedSubscriber to interoperate with rmw_zenoh_cpp transient_local topics (#183) (9bb6305)
  • (ros-z) Add method to ZContextBuilder to set listen endpoints (#158) (9e68445)
  • Add ROS 2 Lyrical Luth (LTS) distro support (#190) (3dbe87c)
  • Add release workflow and Python/binary/Go distribution (#156) (207ccf5)
Bug Fixes
  • (action) Insert goal into manager before sending accept reply (#202) (9060cde)
  • (ci) Rustfmt hook silently ran stable, ignoring rustfmt.toml (#286) (86f4778)
  • (ci) Lint hiroz-tests under interop features (#230) (e7317b1)
  • (ci) Unblock external PRs — Codecov token + pyo3 stale cache (59b43a5)
  • (ci) Exclude file:// URLs from lychee link check (#181) (e13f3a3)
  • (ci) Skip maturin build on Python venv cache hit (#173) (a3fd6c4)
  • (codegen) Stable ordering for generated python stubs (#268) (fcee905)
  • (codegen) Use BTreeMap for deterministic Python stub ordering (#218) (bbc1252)
  • (codegen) Implement correct CDR serialisation for messages with variable-length fields (#177) (650459b)
  • (codegen) Auto-load bundled assets in generate_user_messages for correct RIHS01 hashes (#169) (cf6e133)
  • (docs) Resolve broken intra-doc link to create_publisher (#196) (c2ab58a)
  • (docs) Fix two broken links reported by lychee CI (#180) (dc695ed)
  • (error) Structured Timeout error variant for core, FFI, and Python bindings (#221) (6d80aa8)
  • (event,graph) Run event callbacks outside the locks they live under (#260) (ae4f0f8)
  • (flake) Guard pre-commit install against wrong git root (#210) (3884f5f)
  • (graph) Make graph format explicit (#146) (9d5be5c)
  • (graph) Normalize DDS type names from liveliness tokens (#174) (c6bebc9)
  • (hiroz) Give each FFI service call its own reply channel (#242) (4adbefb)
  • (hu) Resolve the message schema before subscribe returns (#311) (ac112c0)
  • (hu) Stop charging host I/O waits to the guest's epoch budget (#319) (9b10746)
  • (hu) Use axum 0.8 wildcard route syntax in hu web (#318) (5337c38)
  • (hu) Name the hu target in the default log filter (#317) (a4bd44c)
  • (ignore) Only ignore core directories top level (#160) (6ff1745)
  • (lifecycle) Run transition callbacks outside the state-machine lock (#253) (b0efcbe)
  • (parameter) Stop deadlocking on re-entry from an on_set callback (#257) (af00f1e)
  • (shm) Enable transport SHM when SHM provider is configured (#209) (89e1eab)
  • Structured timeout detection in hiroz-py subscriber recv (#224) (#225) (4f4b625)
Performance
  • (graph) Replace 50ms sleep-poll in wait_for_service with condvar (#193) (5b7393b)
Refactor
  • (dynamic) Align dynamic subscriptions with builder APIs (#163) (4a594b8)
  • (protocol) Separate endpoint kind from entity kind (#161) (ebfd1c4)
  • (schema) Make topic schema discovery snapshot-based (#164) (ff28ced)
  • (service) Make clients call-based (#162) (f3177df)
  • Rename ros-z → hiroz (High-performance Interoperable Robotics on Zenoh) (#186) (c78e8e2)
Testing
  • (codegen-go) Add runtime CDR roundtrip integration test (#185) (2c5cbbb)
  • (hiroz-go) Make reply-correlation test deterministic (gate, not stall) (#258) (906acbb)
  • (hiroz-go) Deterministic reply-correlation flaky test (#244) (4640fa6)
  • (hiroz-tests) Signal-based producer guard + graph-poll waits (hu stack 4/9) (#235) (8c7920e)
  • (hu) Pin the WIT world to its contract (#315) (29d2688)
  • (hu) Verify the release against its own documentation (#313) (53bdcf5)
  • (interop) Stop passing when the C++ node fails (#306) (7138961)
  • (interop) Report why a spawned ros2 process failed (#304) (6b9a966)
  • (ros) Fail the interop job when it runs no tests (#271) (71d1cf5)
Documentation
  • (error) Qualify three intra-doc links so cargo doc passes on main (#248) (de8adf5)
  • (hu) Correct four false hu behaviour claims and one dead link (#281) (d2a58f9)
  • Link the Go interop tests page from the nav (#228) (caab824)
  • Remove floating SVG animations (#219) (3f289c9)
  • Replace architecture iframe with SVG for README and mobile (#189) (ce30982)
  • Migrate from mdBook to Material for MkDocs (#159) (937fe1d)

New Contributors

Don't miss a new hiroz release

NewReleases is sending notifications on new releases.