I2P networking ecosystem for Go — routers, SAM libraries, tunnels, crypto, and tools.
go get github.com/go-i2p/onramp
// Create an I2P connection — drop-in replacement for net.Conn
conn, err := onramp.NewClient("myapp", onramp.Bot("127.0.0.1:7656"))
if err != nil { log.Fatal(err) }
defer conn.Close()
// Use conn like any net.Conn
conn.Write([]byte("Hello, I2P!"))
Requires a running I2P router (i2pd or Java I2P). See onramp for full docs.
Connection libraries (onramp, goSam, sam3) are stable and work with any I2P router. The Streaming and Datagram APIs are reliable.
The core router (go-i2p) is operational but not production-safe. I2CP, Streaming, and Datagram client libraries are functional but APIs may change between 0.1.x and 0.2.0.
The API below onramp is unstable. Use high-level libraries to minimize churn. See the router README for detailed status.
Connection libraries act as drop-in replacements for net.Conn and net.PacketConn in your Go code. When used correctly, they make it easy to adapt Go applications to I2P.