Repolode
n0-computer

n0-computer/iroh

一个 Rust 库,让应用通过公钥直接建立连接,内置 QUIC、打洞与中继回退。

Star
12,770
Fork
777
未关闭 Issue
181
最近提交
昨天

这是什么?

Iroh 让应用通过公钥而不是 IP 地址连接到另一个端点。库会自动寻找并维持尽可能直接的连接路径:先尝试打洞,在 NAT 后的设备之间建立直连;打洞失败时,回退到公共中继服务器。

连接基于 QUIC 实现,底层使用 noq。它提供认证加密、带优先级的并发流、数据报传输,并避免队头阻塞。开发者可以用路由器按 ALPN 分发入站连接来实现自定义协议,也可以直接使用基于 iroh 构建的现成协议。

仓库是一个 Rust workspace。iroh 包含核心网络代码,iroh-relay 提供中继客户端和服务端,iroh-base 包含 EndpointId、RelayUrl 等公共类型,iroh-dns-server 负责地址查询。其他语言可以使用独立的 iroh-ffi 绑定。

核心功能

  • 01通过公钥而非 IP 地址连接端点。
  • 02尝试打洞建立点对点直连。
  • 03直连失败时回退到公共中继服务器。
  • 04基于 QUIC 提供加密连接、多路复用流和数据报传输。
  • 05提供路由器,按 ALPN 注册自定义协议。

适用场景

  • 开发设备位于 NAT 后或 IP 频繁变化的点对点应用。
  • 结合 iroh-blobs 在节点之间传输内容寻址的数据块。
  • 结合 iroh-gossip 在节点之间构建发布订阅网络。

标签

常见问题

iroh 是什么?
一个 Rust 库,让应用通过公钥直接建立连接,内置 QUIC、打洞与中继回退。 Iroh 让应用通过公钥而不是 IP 地址连接到另一个端点。库会自动寻找并维持尽可能直接的连接路径:先尝试打洞,在 NAT 后的设备之间建立直连;打洞失败时,回退到公共中继服务器。
iroh 可以免费使用吗?用的什么许可证?
iroh 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
iroh 还在维护吗?
活跃维护中。iroh 最近一次提交是在 2026年10月17日。
iroh 适合用来做什么?
开发设备位于 NAT 后或 IP 频繁变化的点对点应用。 结合 iroh-blobs 在节点之间传输内容寻址的数据块。 结合 iroh-gossip 在节点之间构建发布订阅网络。
在哪里获取 iroh?
源代码和安装说明在 GitHub 上:https://github.com/n0-computer/iroh

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目