eclipse-zenoh/zenoh

GitHub: eclipse-zenoh/zenoh

高性能分布式 Pub/Sub 协议,统一消息传输、存储和查询,专为低延迟边缘计算场景设计。

Stars: 2530 | Forks: 261

[![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/89c7355199231916.svg)](https://github.com/eclipse-zenoh/zenoh/actions?query=workflow%3ACI+branch%3Amain++) [![Documentation Status](https://readthedocs.org/projects/zenoh-rust/badge/?version=latest)](https://zenoh-rust.readthedocs.io/en/latest/?badge=latest) [![codecov](https://codecov.io/github/eclipse-zenoh/zenoh/branch/main/graph/badge.svg?token=F8T4C8WPZD)](https://codecov.io/github/eclipse-zenoh/zenoh) [![Discussion](https://img.shields.io/badge/discussion-on%20github-blue)](https://github.com/eclipse-zenoh/roadmap/discussions) [![Discord](https://img.shields.io/badge/chat-on%20discord-blue)](https://discord.gg/2GJ958VuHs) [![License](https://img.shields.io/badge/License-EPL%202.0-blue)](https://choosealicense.com/licenses/epl-2.0/) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0/) # Eclipse Zenoh Eclipse Zenoh: Zero Overhead Pub/Sub, Store/Query and Compute。 Zenoh (读音为 _/zeno/_) 统一了运动数据、静态数据和计算。它精心融合了传统的 pub/sub、地理分布式存储、查询和计算,同时保持了远超主流技术栈的时间和空间效率。 请查看网站 [zenoh.io](http://zenoh.io) 获取更多信息及 [安装说明](https://zenoh.io/docs/getting-started/installation/)。 另请参阅 [roadmap](https://github.com/eclipse-zenoh/roadmap) 以获取更详细的技术信息。 # 仓库结构 本仓库包含以下元素: * [zenoh](zenoh) Rust crate 该 crate 是 Zenoh 协议的主要且参考的实现。其他语言的 Zenoh 库 是此 Rust 实现的绑定,除了纯 C 实现的 [zenoh-pico](https://github.com/eclipse-zenoh/zenoh-pico) (参见下文的“语言支持”部分)。 * [zenoh-ext](zenoh-ext) Rust crate 该 crate 包含 Zenoh 的扩展组件: * `AdvancedPublisher` / `AdvancedSubscriber` - 用于发送/接收具有高级交付保证数据的 API。 * 数据序列化支持。此序列化轻量级且适用于所有 `zenoh` 绑定,从而简化了互操作性。 * [zenohd](zenohd) router 二进制文件 Zenoh router 是一个独立 daemon,用于支持 Zenoh 网络基础设施。 * [plugins](plugins) 与 `zenohd` 中插件支持相关的 crate。 * [commons](commons) `zenoh` 使用的内部 crate。这些 crate 不打算直接导入,其公共 API 可随时更改。 仅 `zenoh` 和 `zenoh-ext` 提供稳定的 API。 * [examples](examples) Zenoh 使用示例。这些示例具有双重目的:它们不仅演示了如何用 Rust 编写 Zenoh 应用程序,还充当了一组用于试验和测试 Zenoh 功能的工具。 # 文档 * [Docs.rs for Zenoh](https://docs.rs/zenoh/latest/zenoh/) * [Docs.rs for Zenoh-ext](https://docs.rs/zenoh-ext/latest/zenoh_ext/) # 构建与运行 安装 [Cargo and Rust](https://doc.rust-lang.org/cargo/getting-started/installation.html)。 如果您已经安装了 Rust 工具链,请确保使用以下命令将其更新到最新版本: ``` rustup update ``` Zenoh 可以使用 Rust stable (>= 1.75.0) 成功编译,但其某些依赖项可能需要 更新的 Rust 版本。`zenoh` crate 本身不会使用 "=" 锁定其依赖项,以避免冲突。 相反,我们提供了 [zenoh-pinned-deps-1-75](commons/zenoh-pinned-deps-1-75) crate, 其中 `zenoh` 的依赖项被锁定为兼容 Rust 1.75 的版本。 要构建 Zenoh,只需在遵循上述说明后输入以下命令: ``` cargo build --release --all-targets ``` `zenoh` 中有多个 feature;请在 [docs.rs](https://docs.rs/zenoh/latest/zenoh/) 上查看完整列表和说明。例如,如果要 使用共享内存,则必须显式启用它: ``` zenoh = {version = "1.5.1", features = ["shared-memory"]} ``` ## 示例 [示例](examples) 可以使用 Cargo 执行,也可以直接从 `target/release/examples` 运行。使用 Cargo 运行时,请使用 `--` 将命令行参数传递给示例: ### 发布/订阅 ``` cargo run --example z_sub ``` ``` cargo run --example z_pub ``` ### 查询/回复 ``` cargo run --example z_queryable ``` ``` cargo run --example z_get ``` ## Zenohd Router 和 Plugins [zenohd](zenohd) router 可以使用命令 `cargo run` 运行,也可以从 `target/release/zenohd` 运行。使用 Cargo 运行时,请使用 `--` 将命令行参数传递给 `zenohd`: ``` cargo run -- --config DEFAULT_CONFIG.json5 ``` router 的目的是支持 Zenoh 网络基础设施,并使用 [plugins](plugins) 提供附加服务。 更多详情及可用插件目录请参见 [zenohd](zenohd) readme。 # 语言支持 * **Rust** - 本仓库 * **C** - 有两个具有相同 API 的实现: * [zenoh-c](https://github.com/eclipse-zenoh/zenoh-c) - Rust 库绑定 * [zenoh-pico](https://github.com/eclipse-zenoh/zenoh-pico) - 纯 C 实现 * **C++** - [zenoh-cpp](https://github.com/eclipse-zenoh/zenoh-cpp) - C 库上的 C++ 封装器 * **Python** - [zenoh-python](https://github.com/eclipse-zenoh/zenoh-python) * **Kotlin** - [zenoh-kotlin](https://github.com/eclipse-zenoh/zenoh-kotlin) * **Java** - [zenoh-java](https://github.com/eclipse-zenoh/zenoh-java) * **TypeScript** - [zenoh-ts](https://github.com/eclipse-zenoh/zenoh-ts) - 用于 [zenohd](zenohd) 中插件的 WebSocket 客户端 # 故障排除 如果遇到问题,请先查看 [此页面](https://zenoh.io/docs/getting-started/troubleshooting/),看看问题和原因是否已知。 否则,您可以在 [Zenoh Discord 服务器](https://discord.gg/vSDSpqnbkm) 上提问,或 [创建一个 issue](https://github.com/eclipse-zenoh/zenoh/issues)。
标签:DDS替代, Eclipse Zenoh, IPC, JS文件枚举, Pub/Sub, RPC, Rust, 中间件, 低延迟, 分布式系统, 发布订阅, 可视化界面, 响应大小分析, 实时通信, 开源, 数据传输, 数据平面, 数据查询, 流处理, 消息队列, 物联网, 网络流量审计, 调试插件, 边缘计算, 逆向工具, 通知系统