iroh
SHA-256用公钥拨号替代 IP 地址的模块化 Rust 网络栈,自动打洞和中继,内置 blob、gossip、docs 协议组合。
像拨电话一样联网,IP 地址会变,公钥不会。
核心功能
- 使用公钥身份标识,无需关心 IP 地址变化
- 自动 NAT 打洞实现直连,失败时回退到公共中继
- 基于 QUIC 协议,内置加密、多流和 datagram 支持
- 提供三个开箱即用的协议:blobs(内容寻址传输)、gossip(发布订阅)、docs(键值存储)
- 持续性能测试,保障连接速度
避坑指南
- •当前版本主要面向 Rust 开发者,其他语言须通过 FFI 绑定(iroh-ffi,尚在开发中)。公共中继服务器可能引入额外延迟,生产环境建议自建中继或评估隐私需求。打洞成功率依赖网络环境,某些严格 NAT 下可能始终使用中继。
适用场景
- 点对点文件同步与内容分发
- 去中心化社交网络或消息系统
- 物联网设备间直接安全通信
详细介绍
Iroh 是一个用 Rust 编写的模块化网络栈,核心理念是用公钥拨号替代脆弱的 IP 地址。它基于 QUIC 协议,自动完成 NAT 打洞和中继回退,提供加密、多流和低延迟传输。与 libp2p 等传统框架相比,iroh 更轻量、更易上手:你只需像拨电话一样输入对方的公钥,剩下的路由优化都由库处理。项目内置了三套可组合的高级协议——Blobs(基于 BLAKE3 的内容寻址传输)、Gossip(可扩展的发布-订阅覆盖网络)和 Docs(最终一致性的键值存储),开箱即用。目前 GitHub 星标 9.4K,采用双协议许可,适合构建去中心化应用、物联网直连、文件同步等场景。注意:目前主要支持 Rust 语言,FFI 绑定尚在开发中;依赖公共中继服务器时需注意延迟。
标签
快速上手
安装软件
双击下载的安装程序,按提示完成安装
确保安装了 Rust 工具链(rustup),然后运行 cargo add iroh 添加依赖
在代码中使用 Endpoint::bind() 创建端点,调用 connect(公钥, ALPN) 建立连接
通过 QUIC 流发送数据,接收端实现 ProtocolHandler 处理消息,编译运行即可
- 确保安装了 Rust 工具链(rustup),然后运行 cargo add iroh 添加依赖
- 在代码中使用 Endpoint::bind() 创建端点,调用 connect(公钥, ALPN) 建立连接
- 通过 QUIC 流发送数据,接收端实现 ProtocolHandler 处理消息,编译运行即可
已提供 SHA-256 校验码,下载后可自行核对文件完整性
该校验码提取自 GitHub 官方 Release 页面
SHA256 校验码
9a3113360f882b510b55e18dfaed57899d8c350d0108ea8827daf42ce3353a3c该校验码提取自 GitHub Release 页面,下载后请自行核对文件完整性
本平台所有 SHA-256 校验码均提取自项目在 GitHub 官方 Release 页面发布的文件,未做任何修改。你可以通过 GitHub Releases 页面自行验证。
开源透明
查看 GitHub 源码卸载说明
删除 Cargo.toml 中的 iroh 依赖行,然后运行 cargo update 清理缓存。若从源码克隆,直接删除项目目录。
无额外依赖
下载后即可直接使用,无需安装其他运行环境