[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5535":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":37,"readmeContent":38,"aiSummary":39,"trendingCount":16,"starSnapshotCount":16,"syncStatus":40,"lastSyncTime":41,"discoverSource":42},5535,"iroh","n0-computer\u002Firoh","n0-computer","IP addresses break, dial keys instead. Modular networking stack in Rust.","https:\u002F\u002Firoh.computer",null,"Rust",8696,417,61,129,0,1,20,180,9,38.86,"Apache License 2.0",false,"main",true,[27,28,29,30,31,32,33,34,35,36],"does-anyone-read-these","holepunching","memes","multipath","p2p","quic","realtime","rust","tags","tagsoftags","2026-06-12 02:01:11","\u003Ch1 align=\"center\">\u003Ca href=\"https:\u002F\u002Firoh.computer\">\u003Cimg alt=\"iroh\" src=\".\u002F.img\u002Firoh_wordmark.svg\" width=\"100\" \u002F>\u003C\u002Fa>\u003C\u002Fh1>\n\n\u003Ch3 align=\"center\">\nless net work for networks\n\u003C\u002Fh3>\n\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue.svg?style=flat-square)](https:\u002F\u002Fdocs.rs\u002Firoh\u002F)\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Firoh.svg?style=flat-square)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Firoh)\n[![downloads](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fd\u002Firoh.svg?style=flat-square)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Firoh)\n[![Chat](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1161119546170687619?logo=discord&style=flat-square)](https:\u002F\u002Fdiscord.com\u002Finvite\u002FDpmJgtU7cW)\n[![Youtube](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FYouTube-red?logo=youtube&logoColor=white&style=flat-square)](https:\u002F\u002Fwww.youtube.com\u002F@n0computer)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-blue.svg?style=flat-square)](LICENSE-MIT)\n[![License: Apache 2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache%202.0-blue.svg?style=flat-square)](LICENSE-APACHE)\n[![CI](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fn0-computer\u002Firoh\u002Fci.yml?branch=main&style=flat-square&label=CI)](https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh\u002Factions\u002Fworkflows\u002Fci.yml)\n\n\u003Cdiv align=\"center\">\n  \u003Ch3>\n    \u003Ca href=\"https:\u002F\u002Firoh.computer\u002Fdocs\">\n      Docs Site\n    \u003C\u002Fa>\n    \u003Cspan> | \u003C\u002Fspan>\n    \u003Ca href=\"https:\u002F\u002Fdocs.rs\u002Firoh\">\n      Rust Docs\n    \u003C\u002Fa>\n  \u003C\u002Fh3>\n\u003C\u002Fdiv>\n\u003Cbr\u002F>\n\n## What is iroh?\n\nIroh gives you an API for dialing by public key.\nYou say “connect to that phone”, iroh will find & maintain the fastest connection for you, regardless of where it is.\n\n### Hole-punching\n\nThe fastest route is a direct connection, so if necessary, iroh tries to hole-punch.\nShould this fail, it can fall back to an open ecosystem of public relay servers.\nTo ensure these connections are as fast as possible, we [continuously measure iroh][iroh-perf].\n\n### Built on [QUIC]\n\nIroh uses [noq] to establish [QUIC] connections between endpoints.\nThis way you get authenticated encryption, concurrent streams with stream priorities, a datagram transport and avoid head-of-line-blocking out of the box.\n\n## Compose Protocols\n\nUse pre-existing protocols built on iroh instead of writing your own:\n- [iroh-blobs] for [BLAKE3]-based content-addressed blob transfer scaling from kilobytes to terabytes\n- [iroh-gossip] for establishing publish-subscribe overlay networks that scale, requiring only resources that your average phone can handle\n- [iroh-docs] for an eventually-consistent key-value store of [iroh-blobs] blobs\n- [iroh-willow] for an (in-construction) implementation of the [willow protocol]\n\n## Getting Started\n\n### Rust Library\n\nIt's easiest to use iroh from rust.\nInstall it using `cargo add iroh`, then on the connecting side:\n\n```rs\nconst ALPN: &[u8] = b\"iroh-example\u002Fecho\u002F0\";\n\nlet endpoint = Endpoint::bind().await?;\n\n\u002F\u002F Open a connection to the accepting endpoint\nlet conn = endpoint.connect(addr, ALPN).await?;\n\n\u002F\u002F Open a bidirectional QUIC stream\nlet (mut send, mut recv) = conn.open_bi().await?;\n\n\u002F\u002F Send some data to be echoed\nsend.write_all(b\"Hello, world!\").await?;\nsend.finish()?;\n\n\u002F\u002F Receive the echo\nlet response = recv.read_to_end(1000).await?;\nassert_eq!(&response, b\"Hello, world!\");\n\n\u002F\u002F As the side receiving the last application data - say goodbye\nconn.close(0u32.into(), b\"bye!\");\n\n\u002F\u002F Close the endpoint and all its connections\nendpoint.close().await;\n```\n\nAnd on the accepting side:\n```rs\nlet endpoint = Endpoint::bind().await?;\n\nlet router = Router::builder(endpoint)\n    .accept(ALPN.to_vec(), Arc::new(Echo))\n    .spawn()\n    .await?;\n\n\u002F\u002F The protocol definition:\n#[derive(Debug, Clone)]\nstruct Echo;\n\nimpl ProtocolHandler for Echo {\n    async fn accept(&self, connection: Connection) -> Result\u003C()> {\n        let (mut send, mut recv) = connection.accept_bi().await?;\n\n        \u002F\u002F Echo any bytes received back directly.\n        let bytes_sent = tokio::io::copy(&mut recv, &mut send).await?;\n\n        send.finish()?;\n        connection.closed().await;\n\n        Ok(())\n    }\n}\n```\n\nThe full example code with more comments can be found at [`echo.rs`][echo-rs].\n\nOr use one of the pre-existing protocols, e.g. [iroh-blobs] or [iroh-gossip].\n\n### Other Languages\n\nIf you want to use iroh from other languages, make sure to check out [iroh-ffi], the repository for FFI bindings.\n\n### Links\n\n- [Introducing Iroh (video)][iroh-yt-video]\n- [Iroh Documentation][docs]\n- [Iroh Examples]\n- [Iroh Experiments]\n\n## Repository Structure\n\nThis repository contains a workspace of crates:\n- `iroh`: The core library for hole-punching & communicating with relays.\n- `iroh-relay`: The relay server implementation. This is the code we run in production (and you can, too!).\n- `iroh-base`: Common types like `Hash`, key types or `RelayUrl`.\n- `iroh-dns-server`: DNS server implementation powering the `n0_discovery` for EndpointIds, running at dns.iroh.link.\n- `iroh-net-report`: Analyzes your host's networking ability & NAT.\n\n## License\n\nCopyright 2025 N0, INC.\n\nThis project is licensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or\n   http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or\n   http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n\nat your option.\n\n## Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n\n[QUIC]: https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FQUIC\n[BLAKE3]: https:\u002F\u002Fgithub.com\u002FBLAKE3-team\u002FBLAKE3\n[noq]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Fnoq\n[iroh-blobs]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-blobs\n[iroh-gossip]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-gossip\n[iroh-docs]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-docs\n[iroh-willow]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-willow\n[iroh-doctor]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-doctor\n[willow protocol]: https:\u002F\u002Fwillowprotocol.org\n[iroh-ffi]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-ffi\n[iroh-yt-video]: https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RwAt36Xe3UI_\n[Iroh Examples]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-examples\n[Iroh Experiments]: https:\u002F\u002Fgithub.com\u002Fn0-computer\u002Firoh-experiments\n[echo-rs]: \u002Firoh\u002Fexamples\u002Fecho.rs\n[iroh-perf]: https:\u002F\u002Fperf.iroh.computer\n[docs]: https:\u002F\u002Firoh.computer\u002Fdocs\n","Iroh 是一个用 Rust 编写的模块化网络栈，旨在通过公钥而不是 IP 地址来建立连接。其核心功能包括自动寻找并维护最快捷的连接路径、支持打洞技术以实现直接连接，并在必要时回退到公共中继服务器。Iroh 基于 QUIC 协议构建，提供认证加密、并发流以及避免头部阻塞等特性。此外，Iroh 还提供了多种预构建协议，如基于 BLAKE3 的内容寻址数据传输、发布-订阅覆盖网络和最终一致性的键值存储等。适用于需要高效、安全且灵活的点对点通信场景，例如分布式系统或实时应用开发。",2,"2026-06-11 03:03:50","top_language"]