Table of Contents
go-iroh documentation
Peer-to-peer QUIC in Go — endpoints identified by public keys, direct paths with relay fallback, wire-compatible with Rust iroh.
go-iroh is a Go implementation of iroh: peer-to-peer QUIC endpoints
identified by ed25519 public keys, with direct paths, relay fallback, and
Rust-compatible ports of the iroh protocol stack. This site documents the Go
ecosystem — the github.com/tmc/go-iroh module, its commands, and the
go-iroh-experiments modules built on it.
For the iroh protocol itself, the Rust implementation, and the concepts the two implementations share, read the upstream documentation at iroh.computer — this site links to it rather than restating it.
Add the module, connect two endpoints over loopback, and check your Go version.
A verified end-to-end tutorial: a protocol handler, a ticket, and two processes talking.
Endpoints, transports, path selection, and the forked QUIC stack the wire compatibility depends on.
Which module owns your problem, and what each one’s maturity claim is.
44 runnable programs in a numbered progression, one API surface each.
Task-to-call reference for every public package.
Everything else is in the sidebar navigation, grouped by task.
Relationship to upstream iroh
go-iroh is, in its own README’s words, “a clean-room Go port targeting wire compatibility with upstream Rust iroh. It is not affiliated with the n0 team.”
That shapes what this site covers. Protocol design, the reference implementation, and the conceptual documentation live upstream:
- docs.iroh.computer — the protocol and the Rust implementation’s documentation.
- docs.rs/iroh — the Rust API reference.
- github.com/n0-computer/iroh — the reference implementation go-iroh is tested against.
This site covers what upstream cannot: the Go API surface, the Go module layout, the Go commands, the Go test and interop gates, and the Go experiments. Where a concept is identical in both implementations, the pages here name it and link upstream instead of paraphrasing.
A naming collision worth knowing
iroh-docs is a protocol, not documentation. Upstream describes it as
“multi-dimensional key-value documents with an efficient synchronization
protocol”
(n0-computer/iroh-docs). go-iroh
ports it as the docs package. This site — go-iroh-docs — is documentation
for the Go ecosystem. See Protocol packages for the docs
package.