Releases: eclipse-zenoh/zenoh
Releases · eclipse-zenoh/zenoh
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
v0.5.0-beta.5
Changelog:
- New features:
- zenoh API: add
Zenoh::router_pid()
and supports paths/selectors starting with/@/router/local
(local being replaced by the router PID if any)
- zenoh API: add
- Bug fixes: