Releases: eclipse-zenoh/zenoh
Releases · eclipse-zenoh/zenoh
0.11.0-rc.1
What's Changed
New features 🎉
- Tokio port by @YuanYuYuan in #830
- Add Access Control for network interfaces by @snehilzs in #683
- Downsampling interceptors by @sashacmc in #728
- Allow applications to load plugins by @Mallets in #953
- Adminspace for clients and peers by @OlivierHecart in #960
- Use
tracing
instead oflog
for logging by @gabrik in #895 - Support Vsock links by @sashacmc in #811
- Verbatim chunks for Key Expressions by @p-avital in #655
- Plugin API rework, plugin status support by @milyin in #583
complete
option inPublicationCache
by @milyin in #688- Quality of Service settings for Samples (Priority, Congestion Control, Express) by @DenisBiryukov91 in #730
- Connection timeouts and retries by @sashacmc in #770
- Add
CallbackPair
handler implementingDrop
andIntoCallbackReceiverPair
by @JEnoch in #653 - Ability to bind on an interface by @sashacmc in #755
- Support binding on TCP/UDP interfaces in Android by @DariusIMP in #832
wait_before_drop
configuration option time in case ofCongestionControl::Drop
by @JEnoch in #848- Show known origin of Subscribers and Queryables in adminspace by @OlivierHecart in #959
- Support
.yml
configuration files by @fuzzypixelz in #784 - Ability to print-debug builders by @evshary in #658
Bug fixes 🐞
- Fix session mode overwritting in configuration file by @JEnoch in #702
- Fix reviving of dropped liveliness tokens by @OlivierHecart in #802
- Fix formatter reuse and
**
sometimes being considered as included into*
by @p-avital in #638 - Only consider
UP
andRUNNING
network interfaces by @OlivierHecart in #637 - Fix CLI argument parsing in examples by @Jarsop in #635
- Fix broken Debian package by @fuzzypixelz in #640
- Fix partial storages replication by @JEnoch in #644
- Fix potential panic in
z_sub_thr
example @jerry73204 in #642 - Correctly enable
unstable
feature in zenoh-plugin-example by @YuanYuYuan in #657 - Handle whitespace and blank lines in credentials by @vivekpandey02 in #776
- Remove unused dependencies by @fuzzypixelz in #761
- Relax dependency requirements by @fuzzypixelz in #758
- Build plugins with default zenoh features by @milyin in #745
- Restore sequence number in case of frame drops caused by congestion control by @yellowhatter in #815
- Align examples and remove reading from stdin by @oteffahi in #768
- Reverse backwards default paths list by @fuzzypixelz in #825
- Fix scouting on unixpipe transport by @yellowhatter in #845
- Fix memory leaks by @DenisBiryukov91 in #846
- Change generic name
IntoSelector
toTryIntoSelector
inSession::get
by @DenisBiryukov91 in #879 - Include bytes received as part of
put
payload in the global received bytes counter by @gabrik in #914 - Don't reply with an error when a key is not found during replication by @J-Loudet in #912
- Fix CLI argument parsing in zenoh-ext examples by @DenisBiryukov91 in #934
- Fix crash in replication logic when removing logs from interval by @pftbest in #933
- Don't write outside
OUT_DIR
in build scripts by @J-Loudet in #939 - Fix digest calculation errors in replication by @J-Loudet, @chachi and Nathan Ward #938
Other changes
- Interceptor caches by @OlivierHecart in #744
- Router refactoring by @OlivierHecart in #587
- Update
ZenohId
representation by @Mallets in #860 - Bump unsafe-libyaml from 0.2.9 to 0.2.10 by @dependabot in #632
- Bump mio from 0.8.8 to 0.8.11 by @dependabot in #789
- Improve Release workflow by @fuzzypixelz in #756
- Improve project management by @fuzzypixelz in #674
- Add support for verbatims in ketrees by @p-avital in #706
- Make cargo-nextest more resilient by @YuanYuYuan in #715
- Specify windows char escape in README by @Mallets in #735
- Move
Publisher::write
method into trait by @DenisBiryukov91 in #736 - Remind users to start
z_pong
first in the ping-pong example by @YuanYuYuan in #852 - Clarify
keep_alive
configuration parameter by @Mallets in #856 - Enable query timeouts by @sashacmc in #853
- Explicitly specify default features in examples by @YuanYuYuan in #854
- Use GitHub's markdown alerts for warnings in README by @ayhon in #883
- Cancel query timeout task once the query is finalized by @DenisBiryukov91 in #881
- Add Ubuntu 24.04 tests by @oteffahi in #951
New Contributors
- @Jarsop made their first contribution in #635
- @vivekpandey02 made their first contribution in #776
- @oteffahi made their first contribution in #768
- @ayhon made their first contribution in #883
- @J-Loudet made their first contribution in #912
- @pftbest made their first contribution in #933
- @snehilzs made their first contribution in #683
- @chachi made their first contribution in #938
Full Changelog: 0.10.1-rc...0.11.0-rc.1
v0.10.1-rc
What's Changed
New features 🎉
- New MatchingStatus feature by @OlivierHecart in #565
- Add support for errors in replies by @p-avital in #579
- Stabilized hop-to-hop compression by @Mallets in #585
- Add protocol extensions for user attachment by @Mallets in #590
Bug fixes 🐞
- Zenoh only considers
UP
andRUNNING
network interfaces for multicast scouting (#573) by @OlivierHecart in #574 - Fix inconsistent timestamps in
Any
destination publications by @juanjole in #580 - Fix router panic when configured with linkstate peer routing mode (#562) by @OlivierHecart in #595
- Fix bug causing duplicates in querying subscriber by @OlivierHecart in #597
Other changes
- Query payloads can be sent through REST using
POST
HTTP requests by @OlivierHecart in #561 - Fix
declare_publication_cache
forArc<Session>
by @OlivierHecart in #564 - Adding support for inline certificates/keys as base64 encoded in configuration by @gabrik in #577
FetchingSubscriber::fetch
don't need mutable reference by @milyin in #599- Sifting plugin config private fields on debug logs by @DariusIMP in #592
- Change Queryables/Subscribers/tokens declaration order (#588) by @OlivierHecart in #589
- Compiler warning when results are not used by @fuzzypixelz in #582
- Avoid the need of importing
ArcSessionExt
when usingArc<Session>
by @p-avital in #584 - Look for plugins in homebrew lib path for Apple Silicon systems by @fuzzypixelz in #606
- Remove unnecessary spawned threads in async global executor by @Mallets in #605
- Change type of
__path__
and__required__
inConfig
by @fuzzypixelz in #609 - Refactor example arguments parsing by @p-avital in #616
- Use TX executor for multicast TX by @yellowhatter in #626
New Contributors
- @PhilipTamb made their first contribution in #569
- @fuzzypixelz made their first contribution in #582
- @marvin-hansen made their first contribution in #602
- @sashacmc made their first contribution in #631
Full Changelog: 0.10.0-rc...0.10.1-rc
v0.10.0-rc
Changelog
New features 🎉
- Improved protocol by @Mallets, @OlivierHecart in #183, #546
- Multicast support by @Mallets, @OlivierHecart in #522, #526, #549, #551, #554
- Low-latency transport by @yellowhatter in #509, #553
- Provide metrics in openmetrics format (for Prometheus) when
stats
feature enabled by @OlivierHecart in #556
Bug fixes 🐞
Other changes
- Fix
TimeRange::contains
and add checked operation forTimeExpr
by @JEnoch in #514 - Override enpoints from command line args instead of extending them by @yellowhatter in #512
- Added multiple root CA support by @imstevenpmwork in #518
- Support more Value types. by @evshary in #521
- Allow plugins to fail at startup, and zenohd to react to that failure by @p-avital in #517
- Return JSON format while encoding is
KnownEncoding::AppXWwwFormUrlencoded
by @evshary in #525 - Time interval filtering in
PublicationCache
query by @juanjole in #524
- Option to skip domain name verification of servers by @Fritiofhedstrom in #527
- Metadata from config in Adminspace by @milyin in #529
- Skip domain name verification of servers in quic transport (#532) by @JLerxky in #533
- Automatic generation of json schema for plugin config by @milyin in #537
__config__
option for including external configs by @milyin in #536- Print warning if pipeline pull backoff overflows by @Mallets in #540
New Contributors
- @imstevenpmwork made their first contribution in #518
- @evshary made their first contribution in #521
- @juanjole made their first contribution in #524
- @Fritiofhedstrom made their first contribution in #527
- @JLerxky made their first contribution in #533
Full Changelog: 0.7.2-rc...0.10.0-rc
v0.7.2-rc
Changelog:
New features 🎉
- New Liveliness feature by @OlivierHecart in #441, #470
- Multiple routers in peer-to-peer subsystem (#409) by @OlivierHecart in #416
- Allow whitelisting of supported protocols in config (#443) by @Mallets in #444
- Introducing Key Expression Trees by @p-avital in #428
- Introducing Key Formatters and keformat! macro by @p-avital in #437
New unstable features 🔬
🔬 Unstable
This following features are unstable: they work as advertised, but their API may change in a future release.
- Transport compression feature by @DariusIMP in #466
Bug fixes 🐞
- Fix router panic in adminspace (#410) by @OlivierHecart in #411
- Fix bug routing ALL_COMPLETE queries (#413) by @OlivierHecart in #414
- Fix SHM negotiation check by @Mallets in #421
- Terminate scouting tasks on session close (#425) by @OlivierHecart in #426
- Fix scouting bug on windows by @OlivierHecart in #432
- Fix default endpoint listener not working after #444 (#451) by @Mallets in #452
- Fix hanging Callback Queryable by @OlivierHecart in #473
- Fix session concurrency issue from Olivier by @yellowhatter in #487
- Fix bugs in key expressions canonization
- Backwards-compatible fix of WhatAmI matcher by @cguimaraes in #447
- Fix bug reading pem files (#448) by @Tejpbit in #450
Other changes
- New buffers and codec by @Mallets in #383
- Improve routing tables locking by @OlivierHecart in #456
- Improve queries roundtrip time by @OlivierHecart in #480
- Storages replication: refactor and fix instability by @sreeja in #412
- Refactor storage manager plugin by @sreeja in #378
- Configurable garbage collection of storage manager metadata by @sreeja in #484
- Handle incorrect private keys and support pkcs8 keys by @hakanlundvall in #418
- Add support for EC keys by @DariusIMP in #446
- Known Subscribers and Queryables are listed in router AdminSpace by @OlivierHecart in #481
- Added eventual leader to zenoh-ext group (#461) by @kydos in #463
- Add support for
no_std
inzenoh-collections
,zenoh-buffers
,zenoh-protocol
andzenoh-codec
by @davidedellagiustina in #419, #424 - Workspace dependencies by @davidedellagiustina in #420
- Stabilize query with_value by @Mallets in #469
- Remove shared-memory from default features by @Mallets in #475, #476
- Rename zplugin-* to zenoh-plugin-* by @Mallets in #483
- Bump to Rust edition 2021 by @Mallets in #479
- Bump Rust MSRV to 1.65.0 by @Mallets in #485
- Bump tokio from 1.23.0 to 1.23.1 by @dependabot in #417
- Update async-rustls to 0.4.0 by @Mallets in #488
- Fix rust toolchain to 1.69 by @Mallets in #489
New Contributors
- @dependabot made their first contribution in #417
- @hakanlundvall made their first contribution in #418
- @davidedellagiustina made their first contribution in #419
- @bachp made their first contribution in #427
- @Tejpbit made their first contribution in #450
- @yellowhatter made their first contribution in #454
- @codebot made their first contribution in #492
Full Changelog: 0.7.0-rc...0.7.2-rc
v0.7.0-rc
Changelog:
⚠️ Protocol breaking changes (i.e. no interop with previous versions):- New protocol version: 0.7
- New features:
- TLS mutual authentication #379
- New unstable features:
🔬 Unstable
This following features are unstable: they work as advertised, but their API may change in a future release. - Bug fixes:
- Other changes:
- Queryables and storages are declared as
complete: false
by default. #388 - The
shared-memory
feature is now disabled by default. #407 - Multihop gossip discovery can be disabled (now disabled by default). #375 #390
- Routers unconnected peers failover brokering. #372 #373
- Fix declaration propagation problems that were causing unnecessary data transmissions 500a81a.
- Queryables and storages are declared as
v0.6.0-beta.1
Changelog:
⚠️ Protocol breaking changes (i.e. no interop with previous versions):- New protocol version: 0.6
⚠️ API breaking changes:- zenoh-net API was removed, all its features being now accessible in zenoh API.
- zenoh API now uses the builder pattern, to allow extensions without breaking backward compatibility.
- See the migration guide.
- New features:
- Configuration via a JSON5 (or YAML) file.
- New
unstable
feature tagging the API parts that are subject to future changes - Add support for multiple peers sub-networks routing modes:
linkstate
: supports any topology including mesh networks.peer_to_peer
: provides greater scalability and better performances.
- Some configuration values can be modified at runtime:
connect/endpoints
- Add support for user errors and infrastructure errors in query replies (#242).
- Add support for callback notifications and stream notifications for Queryable, Queries as well as Subscribers.
- The API allows creation of entities (
Subscriber
,Queryable
, ...) with static lifetime to facilitate multitask programming (#162). - New
AUTO
query consolidation that automatically selects the best consolidation to apply in the current context (#207). - The
local_routing
option is replaced by new (unstable)allow_origin
options that can be enabled/disabled for eachSubscriber
andQueryable
individually (#317). - Improved scouting configuration.
- Bug fixes:
- All tasks started by zenoh are now properly terminated at session closure.
- Fixed bug routing data from peers to clients (#215).
- Fixed bug in multicast scouting.
- Fixed deadlock in queries routing.
- Other changes:
- The "storages" plugin is renamed as "storage_manager" plugin. It's no longer loaded by default at
zenohd
startup. And its configuration changed (see https://zenoh.io/docs/manual/plugin-storage-manager/). - The default reception and transmissions buffer sizes have been lowered to avoid high memory consumption with large number of peers and improve scalability (#209).
- The "storages" plugin is renamed as "storage_manager" plugin. It's no longer loaded by default at
Availablility:
- Pre-built binaries: assets below or on https://download.eclipse.org/zenoh/zenoh/0.6.0-beta.1
- Docker image: eclipse/zenoh:0.6.0-beta.1
- Debian packages: https://download.eclipse.org/zenoh/debian-repo/
- Rust API: https://crates.io/crates/zenoh/0.6.0-beta.1
v0.5.0-beta.9
Changelog:
⚠️ Protocol breaking changes (i.e. no interop with previous versions):- Queryable declaration change: add kind
- DataInfo and Attachment new format for supporting transparent SHM
- New Join messages and new Priority decorator
⚠️ API breaking changes:- New features:
- Harmonized API for accessing SHM and Network data payload
- Traffic prioritisation (#124)
- Add support for IpV4 multicast discovery on multi-homed hosts (#77)
- Multicast communication based on UDP (#128)
- Support of QUIC protocol as zenoh transport (#86)
- Add
routers_autoconnect_multicast
androuters_autoconnect_gossip
config properties - Query targeting (#75)
- PublicationCache (#103)
- QueryingSubscriber (#102)
- GroupManagement (#109)
- Bug fixes:
- various bug fixes
- Other changes:
- Support Rust stable toolchain
- Performance and stability improvements
- Release workflow on Github with cross-builds for various platforms
- Bump uhlc-rs to 0.4.0 that changed the maximum UHLC delta from 100ms to 500ms (configurable via the
UHLC_MAX_DELTA_MS
environment variable)
Availablility:
- Pre-built binaries: assets below or on https://download.eclipse.org/zenoh/zenoh/0.5.0-beta.9
- Docker image: eclipse/zenoh:0.5.0-beta.9
- Rust API: https://crates.io/crates/zenoh/0.5.0-beta.9
v0.5.0-beta.8
Changelog:
- New features:
- Mesh routing: routers and peers can be deployed in a mesh topology (9084fb8). Multiple routers can be deployed at the edge between a mesh of routers and a mesh of peers for load balancing and fault tolerance purposes (c103689).
- Automatic reconnection: clients routers and peers try to reconnect to their configured peers after disconnection (2b539fd).
- TLS-based transport
- Shared memory messages are sent over the network if the target subscriber is not on the same host
- make
RBuf
andWBuf
to implement respectively the traitsstd::io::Read
andstd::io::Write
- Bug fixes:
- Encoding mime-type for HTML was misspelled.
- Other noteworthy changes:
- Performances improvements.
- Examples now have a
--config
option for a config file - Update
async-std
to 1.9.0
Available on:
v0.5.0-beta.7
Changelog:
⚠️ Protocol breaking changes:- improvements in session establishment (#58)
⚠️ API breaking changes:- in Selector: use '[ ]' as fragment delimiter instead of '#' (#53)
- New features:
- Bug fixes:
- zenoh-net entities were not correctly undeclared
- Other changes:
- performance improvements
- renamed
zenoh-http
plugin tozenoh-rest
plugin (#57)
Available on:
v0.5.0-beta.6
Yanked release. Reason: crates.io rejected the publication of zenoh-protocol crate (fixed in ba23c28), leading to a partial publication of crates with version 0.5.0-beta.6