Skip to content

feat: add Nix flake build infrastructure and upgrade all Rust demos to zenoh 1.9.0 - #42

Open
YuanYuYuan wants to merge 10 commits into
eclipse-zenoh:mainfrom
ZettaScaleLabs:dev/nix-flake
Open

feat: add Nix flake build infrastructure and upgrade all Rust demos to zenoh 1.9.0#42
YuanYuYuan wants to merge 10 commits into
eclipse-zenoh:mainfrom
ZettaScaleLabs:dev/nix-flake

Conversation

@YuanYuYuan

Copy link
Copy Markdown

Summary

  • Add flake.nix with crane-based build infrastructure covering 11 packages and 4 devShells
  • Upgrade all viable Rust demos from old zenoh versions (0.10.x–1.4.x) to zenoh 1.9.0, including full API rewrites where needed
  • Pin Python demos to eclipse-zenoh==1.9.0 in requirements.txt
  • Mark gamepad-dragonbot as deprecated (depends on zenoh-flow which is no longer maintained)

Key Changes

  • flake.nix — root Nix flake with crane, packages: zcam, zlidar, zenoh-rust-replay, zenoh-dds-shapes, zenoh-shamir-put, zenoh-shamir-queryable, zenoh-tetris-{server,client,hotseat}, zenoh-rust-teleop, zturtle; devShells: default, zlidar, with-opencv, python-cv
  • zenoh-dds-interop/shapes_demo — 0.11 → 1.9.0, dropped zenoh-util, updated config/queryable API
  • zenoh-shamir — 0.10.0-rc → 1.9.0, full tokio async rewrite, new queryable/get API
  • zenoh-tetris — 0.10.0-rc → 1.9.0, sync .wait() API, subscriber bridged via flume callback
  • ROS2/zenoh-rust-replay — 1.0.3 → 1.9.0, async-std → tokio
  • ROS2/zenoh-rust-teleop — 0.10.0-rc → 1.9.0, async-std → tokio, recv_async() API
  • turtlebot3/zturtle-rust — 0.10.0-rc → 1.9.0, opencv 0.86 → 0.94, clap v4
  • turtlebot3/zlidar-rust — 1.4.0 → 1.9.0
  • Python demos (7 total) — eclipse-zenoh==1.9.0 pinned in all requirements.txt
  • gamepad-dragonbot/README.md — deprecation notice added

Breaking Changes

None — all changes are within each demo's own directory.

YuanYuYuan added 10 commits June 2, 2026 11:31
Introduces Nix flake for reproducible builds of zenoh-demos Rust demos.
Initial package: zcam (computer-vision/zcam/zcam-rust, already on zenoh 1.9.0).

devShells:
- default: base Rust toolchain (cargo, clippy, rustfmt, rust-analyzer, mold)
- with-opencv: adds OpenCV + clang for zcam/zturtle-rust builds
- zlidar: adds udev/serialport deps for zlidar-rust
- python-cv: Python + opencv4 + numpy for CV Python demos

Build flags: CARGO_BUILD_JOBS=4, clang+mold linker.
Phase 2 — version bumps:
- turtlebot3/zlidar-rust: 1.4.0 → 1.9.0
- ROS2/zenoh-rust-replay: 1.0.3 → 1.9.0, async-std → tokio

Phase 3 — full API rewrites (0.10.x/0.11 → 1.9.0):
- zenoh-dds-interop/shapes_demo: drop zenoh-util, update config API
- zenoh-shamir: clap v3 → v4 derive, sync → tokio async, new queryable API
- zenoh-tetris: SyncResolve → .wait(), remove subscriber.receiver
- ROS2/zenoh-rust-teleop: async-std → tokio, clap v3 → v4, new publisher API
- turtlebot3/zturtle-rust: SyncResolve → .wait(), opencv 0.86 → 0.94, clap v4

Phase 4 — Python: pin eclipse-zenoh==1.9.0 in all requirements.txt

Phase 5 — archive gamepad-dragonbot (zenoh-flow v0.3.0 is unmaintained)

flake.nix: add packages for all upgraded demos
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant