Inputs are now schedule fairly meaning that they will be now be received equally and not necessarily in chronological order. This enables to always be able to refresh input with the least latency between input.
- Make node hub CI/CD cross platform by @haixuanTao in #714
- Make node hub CI/CD cross architecture by @haixuanTao in #716
- Make list an available type for metadata by @haixuanTao in #721
- Add stdout logging by @haixuanTao in #720
- Add an error when a node fails when using dora run by @haixuanTao in #719
- Add pyarrow cuda zero copy helper by @haixuanTao in #722
- feat: Add Dora-kit car Control in node-hub by @LyonRust in #715
- Add yuv420 encoding to opencv-video-capture by @haixuanTao in #725
- Change macOS CI runner to
macos-13
by @phil-opp in #729 - Add eyre to pyo3 node by @haixuanTao in #730
- Moving queue size and making node flume queue bigger by @haixuanTao in #724
- Make python default for macos by @haixuanTao in #731
- Modify the node queue Scheduler to make it able to schedule input fairly by @haixuanTao in #728
Full Changelog: https://github.com/dora-rs/dora/compare/v0.3.7...v0.3.8
- Post release
0.3.6
small fix by @haixuanTao in #638 - Changes to template by @XxChang in #639
- Add appending to PATH instruction inside installation script by @Hennzau in #641
- Make the benchmark run in release and at full speed by @Hennzau in #644
- Use the new node syntax for examples dataflow by @Hennzau in #643
- Improve beginner experience by @Hennzau in #645
- improve node-hub pytest by @haixuanTao in #640
- Fix not-null terminated string print within C template by @haixuanTao in #654
- Raise error if dora-coordinator is not connected when calling
dora destroy
by @haixuanTao in #655 - Coordinator stopped on bad control command by @Hennzau in #650
- Add support for Qwenvl2 by @haixuanTao in #646
- Fix distributed node by @haixuanTao in #658
- Small install script update for bash by @haixuanTao in #657
- Add additional image encoding by @haixuanTao in #661
dora-echo
replicate the topic received with the topic send by @haixuanTao in #663- Update dependencies by @renovate in #656
- Bump pyo3 and arrow versions by @haixuanTao in #667
- Fix ros2 bridge incompatibility with CI Ubuntu 24 and with pyo3 22 by @haixuanTao in #670
- Add transformers version pinning for qwenvl2 by @haixuanTao in #665
- Remove cli dataflow path check by @haixuanTao in #662
- Better error handling for unknown output by @haixuanTao in #675
- Fix llama recorder multi image recorder by @haixuanTao in #677
- Dora openai server example by @haixuanTao in #676
- Update dependencies by @renovate in #674
- Create Rust-based openai api proxy server in node hub by @phil-opp in #678
- Update dependencies by @renovate in #679
- Update Rust crate hyper to v0.14.30 by @renovate in #680
- Fix hanged coordinator when failing to connect to the daemon on destroy command by @haixuanTao in #664
- Small example improvement using pyarrow assertion by @haixuanTao in #669
- Fix dora list listing twice a stopping dataflow when using multiple daemon. by @haixuanTao in #668
- Add package flake by @Ben-PH in #685
- Add jpeg format to qwenvl2 by @haixuanTao in #684
- Enable downloading remote dataflow by @haixuanTao in #682
- Enable multiline build for better packaging of dora node. by @haixuanTao in #683
- Bump rerun version to 0.18 by @haixuanTao in #686
- Temporary fix qwenvl2 queue error by @haixuanTao in #688
- Make daemon loop over coordinator connection to make it possible to create a system service awaiting coordinator connection by @haixuanTao in #689
- Add translation example from chinese, french to english by @haixuanTao in #681
- Update dependencies by @renovate in #690
- Fix macos 14 yolo error by @haixuanTao in #696
- Update dependencies by @renovate in #692
- Publish rust project on pip to make it simpler to deploy dora node on different machine without requiring installing cargo by @haixuanTao in #695
- Docs: README by @Radovenchyk in #697
- Update README.md by @pucedoteth in #705
- Bump rust toolchains 1.81 by @haixuanTao in #707
- Make dora cli pip installable by @haixuanTao in #706
- Add urdf visualization in rerun by @haixuanTao in #704
- Fix child process receiving ctrl-c by setting own process group by @haixuanTao in #712
- Move more types from
dora-core
todora-message
to avoid dependency by @phil-opp in #711 - Implement
dora run
command by @phil-opp in #703 - Adding Agilex Piper node, PyOrbbeckSDK node, Agilex UGV node by @haixuanTao in #709
- Make the node hub CI/CD parallel for faster testing as well as having more granular integration control by @haixuanTao in #710
- Add time series to dora rerun by @haixuanTao in #713
- @Ben-PH made their first contribution in #685
- @Radovenchyk made their first contribution in #697
- @pucedoteth made their first contribution in #705
- Update dependencies by @renovate in #579
- Don't wait for non-started dynamic nodes on stop by @phil-opp in #583
- add a comment on read_dora_input_id by @XxChang in #580
- Update dependencies by @renovate in #584
- Update dependencies by @renovate in #585
- Add domain unix socket supports by @XxChang in #594
- Check build for cross-compiled targets on CI by @phil-opp in #597
- Test pip release creation as part of normal CI by @phil-opp in #596
- Add-armv7-musleabihf-prebuilt-release by @haixuanTao in #578
- Update dependencies by @renovate in #602
- Delay dropping of
DoraNode
in Python until all event data is freed by @phil-opp in #601 - Add install script by @haixuanTao in #600
- Nodes hub to store and reuse commonly used node by @haixuanTao in #569
- Ros2-bridge action attempt by @starlitxiling in #567
- Update dependencies by @renovate in #605
- Add a CI/CD for the node-hub by @haixuanTao in #604
- Update dependencies by @renovate in #608
- Remove dynamic node from pending nodes before starting a dataflow by @haixuanTao in #606
- Fix alignment of atomics in shared memory communication channel by @phil-opp in #612
- Update dependencies by @renovate in #622
- Refactor: Move message definitions to
dora-message
crate by @phil-opp in #613 - Update README.md by @heyong4725 in #623
- Update Rust crate serde to v1.0.207 by @renovate in #624
- fix clippy warnings by @Michael-J-Ward in #626
- chore: Support RISCV64 by @LyonRust in #505
- Json schemas for VSCode YAML Support by @haixuanTao in #497
- Pretty Print Rust object when called from Python print by @haixuanTao in #503
- Fix
Cargo.lock
by @phil-opp in #506 - Use dependabot for automatic lockfile updates by @phil-opp in #507
- Run cargo update by @phil-opp in #508
- Allow top-level fields in node declaration by @phil-opp in #478
- Configure Renovate by @renovate in #509
- Make non-UTF8 stdout/stderr from nodes non-fatal by @phil-opp in #510
- Make dora cli connect to remote coordinator by @Gege-Wang in #513
- Provide help messages for CLI by @phil-opp in #519
- Renovate: group all dependency updates in single PR by @phil-opp in #524
- chore(deps): update dependencies by @renovate in #529
- Improve coordinator port config by @phil-opp in #520
- Fix some typos and add automatic typos check to CI by @EricLBuehler in #539
- Update Pyo3 bounds by @Michael-J-Ward in #472
- chore(deps): update dependencies by @renovate in #543
- Small logging improvements by @phil-opp in #537
- Refuse relative path for remote in coordinator by @XxChang in #538
- chore(deps): update rust crate clap to v4.5.7 by @renovate in #546
- Add
--quiet
flag to daemon and coordinator by @phil-opp in #548 - Implement file-based logging in daemon and coordinator by @phil-opp in #549
- Spawn daemon and coordinator in quiet mode on
dora up
by @phil-opp in #550 - Run dynamic node by @haixuanTao in #517
- Update dora new by @XxChang in #553
- fix event_as_input bug by @XxChang in #556
- Transform custom PyEvent into standard python dictionary for easier d… by @haixuanTao in #557
- Update dependencies by @renovate in #558
- Update dependencies by @renovate in #560
- Update dependencies by @renovate in #563
- Print only first node error and report more metadata in dataflow results by @phil-opp in #552
- Make
dora start
attach by default, add--detach
to opt-out by @phil-opp in #561 - List failed and finished dataflows in
dora list
by @phil-opp in #554 - Ignore-quicker-pending-drop-token by @haixuanTao in #568
- Increasing grace duration to 2 seconds so that drop token get well returned in #576
- @LyonRust made their first contribution in #505
- @renovate made their first contribution in #509
- @Gege-Wang made their first contribution in #513
- @EricLBuehler made their first contribution in #539
Full Changelog: https://github.com/dora-rs/dora/compare/v0.3.4...v0.3.5
- Remove
cxx_build
call, which is no longer used by @phil-opp in #470 - Update
ros2-client
to latest version by @phil-opp in #457 - Configurable bind addrs by @Michael-J-Ward in #471
- Simple warning fixes by @Michael-J-Ward in #477
- Adding
dora-rerun
as a visualization tool by @haixuanTao in #479 - Fix Clippy and RERUN_MEMORY_LIMIT env variable default by @haixuanTao in #490
- Fix CI build errors by @phil-opp in #491
- Use
resolver = 2
for in workspace in Rust template by @phil-opp in #492 - Add grace duration and kill process by @haixuanTao in #487
- Simplify parsing of
AMENT_PREFIX_PATH
by @haixuanTao in #489 - Convert rust example to node by @Michael-J-Ward in #494
- Adding python IDE typing by @haixuanTao in #493
- Fix: Wait until dora daemon is connected to coordinator on
dora up
by @phil-opp in #496
- @Michael-J-Ward made their first contribution in #471
Full Changelog: https://github.com/dora-rs/dora/compare/v0.3.3...v0.3.4
- Metrics refactoring by @haixuanTao in #423
- Add ROS2 bridge support for C++ nodes by @phil-opp in #425
- Provide function to create empty
CombinedEvents
stream by @phil-opp in #432 - Expose ROS2 constants in generated bindings (Rust and C++) by @phil-opp in #428
- Add option to send
stdout
as node/operator output by @haixuanTao in #388 - Fix warning about
#pragma once
in main file by @phil-opp in #433 - Send runs artefacts into a dedicated
out
folder by @haixuanTao in #429 - Create README.md for cxx-ros2-example by @bobd988 in #431
- Use Async Parquet Writer for
dora-record
by @haixuanTao in #434 - Update mio to fix security vulnerability by @phil-opp in #440
- Add initial support for calling ROS2 services from Rust nodes by @phil-opp in #439
- Enable ROS2 service calls from C++ nodes by @phil-opp in #441
- Use
Debug
formatting for eyre errors when returning to C++ by @phil-opp in #450 - Fix out-of-tree builds in cmake example by @phil-opp in #453
- Fix broken link in README by @mshr-h in #462
- fix cargo run --example cmake-dataflow compile bugs by @XxChang in #460
- Llm example by @haixuanTao in #451
- Fix meter conflict by @haixuanTao in #461
- Update README.md by @bobd988 in #458
- Refactor
README
by @haixuanTao in #463 - Specify conda env for Python Operators by @haixuanTao in #468
- Bump h2 from 0.3.24 to 0.3.26 by @dependabot in #456
- Update
bat
dependency to v0.24 by @phil-opp in #424
- @bobd988 made their first contribution in #431
- @mshr-h made their first contribution in #462
Full Changelog: https://github.com/dora-rs/dora/compare/v0.3.2...v0.3.3
- Wait until
DestroyResult
is sent before exiting dora-daemon by @phil-opp in #413 - Reduce dora-rs to a single binary by @haixuanTao in #410
- Rework python ROS2 (de)serialization using parsed ROS2 messages directly by @phil-opp in #415
- Fix ros2 array bug by @haixuanTao in #412
- Test ros2 type info by @haixuanTao in #418
- Use forward slash as it is default way of defining ros2 topic by @haixuanTao in #419
- Bump h2 from 0.3.21 to 0.3.24 by @dependabot in #414
- Support legacy python by @haixuanTao in #382
- Add an error catch in python
on_event
when using hot-reloading by @haixuanTao in #372 - add cmake example by @XxChang in #381
- Bump opentelemetry metrics to 0.21 by @haixuanTao in #383
- Trace send_output as it can be a big source of overhead for large messages by @haixuanTao in #384
- Adding a timeout method to not block indefinitely next event by @haixuanTao in #386
- Adding
Vec<u8>
conversion by @haixuanTao in #387 - Dora cli renaming by @haixuanTao in #399
- Update
ros2-client
andrustdds
dependencies to latest fork version by @phil-opp in #397
- Fix window path error by @haixuanTao in #398
- Fix read error in C++ node input by @haixuanTao in #406
- Bump unsafe-libyaml from 0.2.9 to 0.2.10 by @dependabot in #400
- @XxChang made their first contribution in #381
Full Changelog: https://github.com/dora-rs/dora/compare/v0.3.0...v0.3.1
- Rust node API typed using arrow by @phil-opp in #353
- Dora record by @haixuanTao in #365
- beautify graph visualisation by @haixuanTao in #370
- Remove
Ros2Value
encapsulation ofArrayData
by @haixuanTao in #359 - Refactor python typing by @haixuanTao in #369
- Update README discord link by @Felixhuangsiling in #361
- Update
rustix
v0.38 dependency by @phil-opp in #366 - Bump rustix from 0.37.24 to 0.37.25 by @dependabot in #364
- Bump quinn-proto from 0.9.3 to 0.9.5 by @dependabot in #357
- Bump webpki from 0.22.1 to 0.22.2 by @dependabot in #358
- Update README discord link by @Felixhuangsiling in #361
- @Felixhuangsiling made their first contribution in #361
- Update dependencies to fix some security advisories by @phil-opp in #354
- Fixes
cargo install dora-daemon
- Fixes
- Use cargo instead of git in Rust
Cargo.toml
template by @haixuanTao in #326 - Use read_line instead of next_line in stderr by @haixuanTao in #325
- Add a
rust-ros2-dataflow
example using the dora-ros2-bridge by @phil-opp in #324 - Removing patchelf by @haixuanTao in #333
- Improving python example readability by @haixuanTao in #334
- Use
serde_bytes
to serializeVec<u8>
by @haixuanTao in #336 - Adding support for
Arrow List(*)
for Python by @haixuanTao in #337 - Bump rustls-webpki from 0.100.1 to 0.100.2 by @dependabot in #340
- Add support for event stream merging for Python node API by @phil-opp in #339
- Merge
dora-ros2-bridge
by @phil-opp in #341 - Update dependencies by @phil-opp in #345
- Add support for arbitrary Arrow types in Python API by @phil-opp in #343
- Use typed inputs in Python ROS2 example by @phil-opp in #346
- Use struct type instead of array for ros2 messages by @haixuanTao in #349
- Return dataflow result to CLI on
dora stop
by @phil-opp in #300 - Make dataflow descriptor available to Python nodes and operators by @phil-opp in #301
- Create a
CONTRIBUTING.md
guide by @phil-opp in #307 - Distribute prebuilt arm macos dora-rs by @haixuanTao in #308
- Fix the typos and add dora code branch by @meua in #290
- For consistency with other examples, modify python -> python3 by @meua in #299
- Add timestamps generated by hybrid logical clocks to all sent events by @phil-opp in #302
- Don't recompile the
dora-operator-api-c
crate on every build/run by @phil-opp in #304 - Remove deprecated
proc_macros
feature fromsafer-ffi
dependency by @phil-opp in #305 - Update to Rust v1.70 by @phil-opp in #303
- Fix issue with not finding a custom nodes path by @haixuanTao in #315
- Implement
Stream
forEventStream
by @phil-opp in #309 - Replace unmaintained
atty
crate withstd::io::IsTerminal
by @phil-opp in #318
Full Changelog: https://github.com/dora-rs/dora/compare/v0.2.3...v0.2.4
- Check that coordinator, daemon, and node versions match by @phil-opp in #245
- Share events to Python without copying via
arrow
crate by @phil-opp in #228 - Upgrading the operator example to use
dora-arrow
by @haixuanTao in #251 - [Python] Show node name in process and put Traceback before the actual Error for more natural error by @haixuanTao in #255
- CLI: Improve error messages when coordinator is not running by @phil-opp in #254
- Integrate
dora-runtime
intodora-daemon
by @phil-opp in #257 - Filter default log level at
warn
fortokio::tracing
by @haixuanTao in #269 - Make log level filtering be
WARN
or below by @haixuanTao in #274 - Add support for distributed deployments with multiple daemons by @phil-opp in #256
- Provide a way to access logs through the CLI by @haixuanTao in #259
- Handle node errors during initialization phase by @phil-opp in #275
- Replace watchdog by asynchronous heartbeat messages by @phil-opp in #278
- Remove pyo3 in runtime and daemon as it generates
libpython
depende… by @haixuanTao in #281 - Release v0.2.3 with aarch64 support by @haixuanTao in #279
- Fix yolov5 dependency issue by @haixuanTao in #291
- To solve this bug #283, unify t… by @meua in #285
- Fix: Don't try to create two global tracing subscribers when using bundled runtime by @phil-opp in #277
- CI: Increase timeout for 'build CLI and binaries' step by @phil-opp in #282
- Update
pyo3
tov0.18
by @phil-opp in #246 - Bump h2 from 0.3.13 to 0.3.17 by @dependabot in #249
- Add automatic issue labeler to organize opened issues by @haixuanTao in #265
- Allow the issue labeler to write issues by @phil-opp in #272
- Add a support matrix with planned feature to clarify dora status by @haixuanTao in #264
Full Changelog: https://github.com/dora-rs/dora/compare/v0.2.2...v0.2.3
- Make queue length configurable through the dataflow file by @phil-opp in #231
- Hot reloading Python Operator by @haixuanTao in #239
- Synchronize node and operator start by @phil-opp in #236
- Add opentelemetry capability at runtime instead of compile time by @haixuanTao in #234
- Wait on events and messages simultaneously to prevent queue buildup by @phil-opp in #235
- Fix looping in daemon listener loop by @phil-opp in #244
- Validate shell command as source and url source by @haixuanTao in #243
- Push error into the
init_done
channel for debugging context by @haixuanTao in #238 - Option communication config by @haixuanTao in #241
- Validate yaml when reading by @haixuanTao in #237
Full Changelog: https://github.com/dora-rs/dora/compare/v0.2.1...v0.2.2
- Avoid blocking the daemon main loop by using unbounded queue
- Inject YAML declared env variable into the runtime
- Use rustls instead of system SSL implementation
- Refactor python error
- The first letter of rust should be lowercase in the command
- Add documentation to the cli within the helper mode
- Update to safer-ffi v0.1.0-rc1
- remove unused variable: data_bytes
- Clean up: Remove workspace path
- Decouple opentelemetry from tracing
- Remove zenoh dependency from dora node API to speed up build
- Update to Rust v1.68
- Deny unknown fields to avoid typos
- Add an internal cli argument to create template with path dependencies
- Redesign: Create a
dora-daemon
as a communication broker- New
dora-daemon
executable that acts as a communication hub for all local nodes - Large messages are passed through shared memory without any copying
- Replaces the previous
iceoryx
communication layer - Small API change: Nodes and operators now receive events instead of just inputs
- Inputs are one type of event
- Other supported events:
InputClosed
when an input stream is closed andStop
when the user stops the dataflow (e.g. through the CLI)
- New
- Better Error handling when operator fails
- Send small messages directly without shared memory
- Send all queued incoming events at once on
NextEvent
request - Don't send replies for
SendMessage
requests when using TCP - Allocate shared memory in nodes to improve throughput
- Use
DoraStatus
from dora library in template - Simplify: Replace
library_filename
function withformat!
call - Refactor Rust node API implementation
- Remove code duplicate for tracing subscriber and use env variable to manage log level.
- Add daemon to the release archive
- Remove
remove_dir_all
fromCargo.lock
as it is vulnerable to a race condition according to dependabot - Update the documentation to the new daemon format
- Removing legacy
libacl
which was required by Iceoryx - Remove unimplemented CLI arguments for now
- Update zenoh to remove git dependencies
- Fix cli template to new daemon API
- Cleanup warnings
- Dependency updates
- Package
DoraStatus
into dora python package: #172 - Force removal of Pyo3 Object to avoid memory leak: #168
- Bump tokio from 1.21.2 to 1.23.1: #171
- Create a changelog file: #174
- Fix infinite loop in the coordinator: #155
- Simplify the release process: #157
- Use generic linux distribution: #159
This release contains fixes for:
- Python linking using pypi release but also a redesigned python thread model within the runtime to avoid deadlock of the
GIL
. This also fix an issue withpatchelf
. - A deployment separation for
ubuntu
as the20.04
version ofdora
and22.04
version of dora are non-compatible. - A better tagging of api for
dora
Rust API.
This is our first release of dora-rs
!
The current release includes:
dora-cli
which enables creating, starting and stopping dataflow.dora-coordinator
which is our control plane.dora-runtime
which is manage the runtime of operators.custom-nodes
API which enables bridges from different languages.