Zenoh’s Comics – November 2024
Zenoh 1.0.0 is out! We’re happy to celebrate it with an anniversary Zenoh comic and several new features.
The Zenoh 1.0.0 release introduces several major updates and improvements across its APIs, including Python, Kotlin, Java, TypeScript, and Shared Memory, alongside enhanced features in plugins, batching, link selection, and access control. Visit our GitHub repository or read about the latest improvements.
Here’s a concise breakdown:
Python API Enhancements
- Context Managers: Simplified resource management for sessions, subscribers, publishers, and queryables ensures proper cleanup.
- Background Mode: Declared objects can now operate independently, with their lifetime tied to the session.
- Migration Notes: Previously necessary scope management is no longer required; objects not explicitly undeclared remain active until the session closes.
Kotlin API Stable Release
- Features:
- First stable release for JVM and Android support.
- API redesigned for Kotlin idioms, supporting JSON, JSON5, and YAML configurations.
- Scouting and session context management included.
- Extensive rework of key expressions, reply mechanisms, and API alignment.
- Migration Notes: Full details on Zenoh.io
Java API Updates
- Still in beta but fully compatible with Zenoh 1.0.0.
- Anticipated extensive rework to align with other bindings; migration guide to follow.
TypeScript API (Alpha Stage)
- Focus on browser support for UI and visualization applications.
- Relies on a remote API plugin using WebSocket communication with Zenoh routers.
- Example Highlights:
- Subscriber: Demonstrates callback-based subscription handling.
- Publisher: Includes options for encoding, priority, and congestion control.
Shared Memory Support
- Fully reworked API with support in Rust, C, and C++ bindings.
- Key Features:
- Decentralized architecture and multi-hop support.
- SHM-to-non-SHM conversion and robust buffer reference management.
- Custom user-defined backends and advanced allocation policies.
Plugin and Backend Updates in Zenoh 1.0.0
- Complete transition to Tokio runtime for plugins and storage backends.
- Strict version alignment required for Rust plugins to ensure compatibility.
Interest Protocol
- Scalability improvements reduce unnecessary discovery traffic.
- Writer-side filtering is disabled by default in clients and peers; can be reactivated for specific use cases.
Access Control Improvements
- New support for TLS and user/password authentication.
- Modular ACL configuration enables flexible rule and subject combinations.
- Focus shifted to message-based ACL for clarity.
Performance Enhancements in Zenoh 1.0.0
- Batching and Jitter: Addressed timing issues from the Tokio migration, improving high-frequency publishing.
- Link Selection: Introduced Reliability-Priority matching for multilink environments.
- Storage Alignment Protocol: Overhauled for robustness and flexibility, with non-backward-compatible configuration changes.
These updates mark a significant milestone for Zenoh, offering more robust, scalable, and developer-friendly tools across a wide range of platforms and use cases.
Our whitepapers and Zenoh 1.0.0 webinars are also available online.
Stay up to date with Zenoh’s latest adventures and Zenoh comic with our monthly newsletter! Subscribe now