- chore: Support RISCV64 by @LyonRust in dora-rs#505
- Json schemas for VSCode YAML Support by @haixuanTao in dora-rs#497
- Pretty Print Rust object when called from Python print by @haixuanTao in dora-rs#503
- Fix
Cargo.lock
by @phil-opp in dora-rs#506 - Use dependabot for automatic lockfile updates by @phil-opp in dora-rs#507
- Run cargo update by @phil-opp in dora-rs#508
- Allow top-level fields in node declaration by @phil-opp in dora-rs#478
- Configure Renovate by @renovate in dora-rs#509
- Make non-UTF8 stdout/stderr from nodes non-fatal by @phil-opp in dora-rs#510
- Make dora cli connect to remote coordinator by @Gege-Wang in dora-rs#513
- Provide help messages for CLI by @phil-opp in dora-rs#519
- Renovate: group all dependency updates in single PR by @phil-opp in dora-rs#524
- chore(deps): update dependencies by @renovate in dora-rs#529
- Improve coordinator port config by @phil-opp in dora-rs#520
- Fix some typos and add automatic typos check to CI by @EricLBuehler in dora-rs#539
- Update Pyo3 bounds by @Michael-J-Ward in dora-rs#472
- chore(deps): update dependencies by @renovate in dora-rs#543
- Small logging improvements by @phil-opp in dora-rs#537
- Refuse relative path for remote in coordinator by @XxChang in dora-rs#538
- chore(deps): update rust crate clap to v4.5.7 by @renovate in dora-rs#546
- Add
--quiet
flag to daemon and coordinator by @phil-opp in dora-rs#548 - Implement file-based logging in daemon and coordinator by @phil-opp in dora-rs#549
- Spawn daemon and coordinator in quiet mode on
dora up
by @phil-opp in dora-rs#550 - Run dynamic node by @haixuanTao in dora-rs#517
- Update dora new by @XxChang in dora-rs#553
- fix event_as_input bug by @XxChang in dora-rs#556
- Transform custom PyEvent into standard python dictionary for easier d… by @haixuanTao in dora-rs#557
- Update dependencies by @renovate in dora-rs#558
- Update dependencies by @renovate in dora-rs#560
- Update dependencies by @renovate in dora-rs#563
- Print only first node error and report more metadata in dataflow results by @phil-opp in dora-rs#552
- Make
dora start
attach by default, add--detach
to opt-out by @phil-opp in dora-rs#561 - List failed and finished dataflows in
dora list
by @phil-opp in dora-rs#554 - Ignore-quicker-pending-drop-token by @haixuanTao in dora-rs#568
- Increasing grace duration to 2 seconds so that drop token get well returned in dora-rs#576
- @LyonRust made their first contribution in dora-rs#505
- @renovate made their first contribution in dora-rs#509
- @Gege-Wang made their first contribution in dora-rs#513
- @EricLBuehler made their first contribution in dora-rs#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 dora-rs#470 - Update
ros2-client
to latest version by @phil-opp in dora-rs#457 - Configurable bind addrs by @Michael-J-Ward in dora-rs#471
- Simple warning fixes by @Michael-J-Ward in dora-rs#477
- Adding
dora-rerun
as a visualization tool by @haixuanTao in dora-rs#479 - Fix Clippy and RERUN_MEMORY_LIMIT env variable default by @haixuanTao in dora-rs#490
- Fix CI build errors by @phil-opp in dora-rs#491
- Use
resolver = 2
for in workspace in Rust template by @phil-opp in dora-rs#492 - Add grace duration and kill process by @haixuanTao in dora-rs#487
- Simplify parsing of
AMENT_PREFIX_PATH
by @haixuanTao in dora-rs#489 - Convert rust example to node by @Michael-J-Ward in dora-rs#494
- Adding python IDE typing by @haixuanTao in dora-rs#493
- Fix: Wait until dora daemon is connected to coordinator on
dora up
by @phil-opp in dora-rs#496
- @Michael-J-Ward made their first contribution in dora-rs#471
Full Changelog: https://github.com/dora-rs/dora/compare/v0.3.3...v0.3.4
- Metrics refactoring by @haixuanTao in dora-rs#423
- Add ROS2 bridge support for C++ nodes by @phil-opp in dora-rs#425
- Provide function to create empty
CombinedEvents
stream by @phil-opp in dora-rs#432 - Expose ROS2 constants in generated bindings (Rust and C++) by @phil-opp in dora-rs#428
- Add option to send
stdout
as node/operator output by @haixuanTao in dora-rs#388 - Fix warning about
#pragma once
in main file by @phil-opp in dora-rs#433 - Send runs artefacts into a dedicated
out
folder by @haixuanTao in dora-rs#429 - Create README.md for cxx-ros2-example by @bobd988 in dora-rs#431
- Use Async Parquet Writer for
dora-record
by @haixuanTao in dora-rs#434 - Update mio to fix security vulnerability by @phil-opp in dora-rs#440
- Add initial support for calling ROS2 services from Rust nodes by @phil-opp in dora-rs#439
- Enable ROS2 service calls from C++ nodes by @phil-opp in dora-rs#441
- Use
Debug
formatting for eyre errors when returning to C++ by @phil-opp in dora-rs#450 - Fix out-of-tree builds in cmake example by @phil-opp in dora-rs#453
- Fix broken link in README by @mshr-h in dora-rs#462
- fix cargo run --example cmake-dataflow compile bugs by @XxChang in dora-rs#460
- Llm example by @haixuanTao in dora-rs#451
- Fix meter conflict by @haixuanTao in dora-rs#461
- Update README.md by @bobd988 in dora-rs#458
- Refactor
README
by @haixuanTao in dora-rs#463 - Specify conda env for Python Operators by @haixuanTao in dora-rs#468
- Bump h2 from 0.3.24 to 0.3.26 by @dependabot in dora-rs#456
- Update
bat
dependency to v0.24 by @phil-opp in dora-rs#424
- @bobd988 made their first contribution in dora-rs#431
- @mshr-h made their first contribution in dora-rs#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 dora-rs#413 - Reduce dora-rs to a single binary by @haixuanTao in dora-rs#410
- Rework python ROS2 (de)serialization using parsed ROS2 messages directly by @phil-opp in dora-rs#415
- Fix ros2 array bug by @haixuanTao in dora-rs#412
- Test ros2 type info by @haixuanTao in dora-rs#418
- Use forward slash as it is default way of defining ros2 topic by @haixuanTao in dora-rs#419
- Bump h2 from 0.3.21 to 0.3.24 by @dependabot in dora-rs#414
- Support legacy python by @haixuanTao in dora-rs#382
- Add an error catch in python
on_event
when using hot-reloading by @haixuanTao in dora-rs#372 - add cmake example by @XxChang in dora-rs#381
- Bump opentelemetry metrics to 0.21 by @haixuanTao in dora-rs#383
- Trace send_output as it can be a big source of overhead for large messages by @haixuanTao in dora-rs#384
- Adding a timeout method to not block indefinitely next event by @haixuanTao in dora-rs#386
- Adding
Vec<u8>
conversion by @haixuanTao in dora-rs#387 - Dora cli renaming by @haixuanTao in dora-rs#399
- Update
ros2-client
andrustdds
dependencies to latest fork version by @phil-opp in dora-rs#397
- Fix window path error by @haixuanTao in dora-rs#398
- Fix read error in C++ node input by @haixuanTao in dora-rs#406
- Bump unsafe-libyaml from 0.2.9 to 0.2.10 by @dependabot in dora-rs#400
- @XxChang made their first contribution in dora-rs#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 dora-rs#353
- Dora record by @haixuanTao in dora-rs#365
- beautify graph visualisation by @haixuanTao in dora-rs#370
- Remove
Ros2Value
encapsulation ofArrayData
by @haixuanTao in dora-rs#359 - Refactor python typing by @haixuanTao in dora-rs#369
- Update README discord link by @Felixhuangsiling in dora-rs#361
- Update
rustix
v0.38 dependency by @phil-opp in dora-rs#366 - Bump rustix from 0.37.24 to 0.37.25 by @dependabot in dora-rs#364
- Bump quinn-proto from 0.9.3 to 0.9.5 by @dependabot in dora-rs#357
- Bump webpki from 0.22.1 to 0.22.2 by @dependabot in dora-rs#358
- Update README discord link by @Felixhuangsiling in dora-rs#361
- @Felixhuangsiling made their first contribution in dora-rs#361
- Update dependencies to fix some security advisories by @phil-opp in dora-rs#354
- Fixes
cargo install dora-daemon
- Fixes
- Use cargo instead of git in Rust
Cargo.toml
template by @haixuanTao in dora-rs#326 - Use read_line instead of next_line in stderr by @haixuanTao in dora-rs#325
- Add a
rust-ros2-dataflow
example using the dora-ros2-bridge by @phil-opp in dora-rs#324 - Removing patchelf by @haixuanTao in dora-rs#333
- Improving python example readability by @haixuanTao in dora-rs#334
- Use
serde_bytes
to serializeVec<u8>
by @haixuanTao in dora-rs#336 - Adding support for
Arrow List(*)
for Python by @haixuanTao in dora-rs#337 - Bump rustls-webpki from 0.100.1 to 0.100.2 by @dependabot in dora-rs#340
- Add support for event stream merging for Python node API by @phil-opp in dora-rs#339
- Merge
dora-ros2-bridge
by @phil-opp in dora-rs#341 - Update dependencies by @phil-opp in dora-rs#345
- Add support for arbitrary Arrow types in Python API by @phil-opp in dora-rs#343
- Use typed inputs in Python ROS2 example by @phil-opp in dora-rs#346
- Use struct type instead of array for ros2 messages by @haixuanTao in dora-rs#349
- Add Discord 💬 by @haixuanTao in dora-rs#348
- Small refactoring by @haixuanTao in dora-rs#342
- Return dataflow result to CLI on
dora stop
by @phil-opp in dora-rs#300 - Make dataflow descriptor available to Python nodes and operators by @phil-opp in dora-rs#301
- Create a
CONTRIBUTING.md
guide by @phil-opp in dora-rs#307 - Distribute prebuilt arm macos dora-rs by @haixuanTao in dora-rs#308
- Fix the typos and add dora code branch by @meua in dora-rs#290
- For consistency with other examples, modify python -> python3 by @meua in dora-rs#299
- Add timestamps generated by hybrid logical clocks to all sent events by @phil-opp in dora-rs#302
- Don't recompile the
dora-operator-api-c
crate on every build/run by @phil-opp in dora-rs#304 - Remove deprecated
proc_macros
feature fromsafer-ffi
dependency by @phil-opp in dora-rs#305 - Update to Rust v1.70 by @phil-opp in dora-rs#303
- Fix issue with not finding a custom nodes path by @haixuanTao in dora-rs#315
- Implement
Stream
forEventStream
by @phil-opp in dora-rs#309 - Replace unmaintained
atty
crate withstd::io::IsTerminal
by @phil-opp in dora-rs#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 dora-rs#245
- Share events to Python without copying via
arrow
crate by @phil-opp in dora-rs#228 - Upgrading the operator example to use
dora-arrow
by @haixuanTao in dora-rs#251 - [Python] Show node name in process and put Traceback before the actual Error for more natural error by @haixuanTao in dora-rs#255
- CLI: Improve error messages when coordinator is not running by @phil-opp in dora-rs#254
- Integrate
dora-runtime
intodora-daemon
by @phil-opp in dora-rs#257 - Filter default log level at
warn
fortokio::tracing
by @haixuanTao in dora-rs#269 - Make log level filtering be
WARN
or below by @haixuanTao in dora-rs#274 - Add support for distributed deployments with multiple daemons by @phil-opp in dora-rs#256
- Provide a way to access logs through the CLI by @haixuanTao in dora-rs#259
- Handle node errors during initialization phase by @phil-opp in dora-rs#275
- Replace watchdog by asynchronous heartbeat messages by @phil-opp in dora-rs#278
- Remove pyo3 in runtime and daemon as it generates
libpython
depende… by @haixuanTao in dora-rs#281 - Release v0.2.3 with aarch64 support by @haixuanTao in dora-rs#279
- Fix yolov5 dependency issue by @haixuanTao in dora-rs#291
- To solve this bug dora-rs#283, unify t… by @meua in dora-rs#285
- Fix: Don't try to create two global tracing subscribers when using bundled runtime by @phil-opp in dora-rs#277
- CI: Increase timeout for 'build CLI and binaries' step by @phil-opp in dora-rs#282
- Update
pyo3
tov0.18
by @phil-opp in dora-rs#246 - Bump h2 from 0.3.13 to 0.3.17 by @dependabot in dora-rs#249
- Add automatic issue labeler to organize opened issues by @haixuanTao in dora-rs#265
- Allow the issue labeler to write issues by @phil-opp in dora-rs#272
- Add a support matrix with planned feature to clarify dora status by @haixuanTao in dora-rs#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 dora-rs#231
- Hot reloading Python Operator by @haixuanTao in dora-rs#239
- Synchronize node and operator start by @phil-opp in dora-rs#236
- Add opentelemetry capability at runtime instead of compile time by @haixuanTao in dora-rs#234
- Wait on events and messages simultaneously to prevent queue buildup by @phil-opp in dora-rs#235
- Fix looping in daemon listener loop by @phil-opp in dora-rs#244
- Validate shell command as source and url source by @haixuanTao in dora-rs#243
- Push error into the
init_done
channel for debugging context by @haixuanTao in dora-rs#238 - Option communication config by @haixuanTao in dora-rs#241
- Validate yaml when reading by @haixuanTao in dora-rs#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: dora-rs#172 - Force removal of Pyo3 Object to avoid memory leak: dora-rs#168
- Bump tokio from 1.21.2 to 1.23.1: dora-rs#171
- Create a changelog file: dora-rs#174
- Fix infinite loop in the coordinator: dora-rs#155
- Simplify the release process: dora-rs#157
- Use generic linux distribution: dora-rs#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.