A wide variety of tools exist which make it easy to use I2P as a network layer in Go applications.
These tools integrate at various levels and provide different functionality, but virtually anything is possible using I2P and Go.
Eventually, this page will serve as a website for
go-i2p
, but for now it serves to track the state of various ways of using Go to interact with I2P.
net.Conn
and
net.PacketConn
interface implementations
These act as drop-in replacements for
net.Conn
and
net.PacketConn
in your code and libraries.
When used correctly, they make it easy to adapt Go applications to I2P.
All
net.Conn
and
net.PacketConn
interface implementations in Go
onramp
an easy-to-use, automatically-configured library for managing I2P connections, implements net.Conn and net.PacketConn, supports Primary sessions
-
mature, implements SAMv3.3, Streaming and Datagrams
goSam
simple and highly configurable net.Conn implementation, implement a complete HTTP/S/CONNECT proxy in ~50 LOC
-
mature, implements SAMv3.2, Streaming Only
sam3
hightly configurable net.Conn, net.PacketConn implementation, supports Primary sessions, exposes all the options and all the sharp edges
-
mature, implements SAMv3.3, Streaming and Datagrams
net.Addr
interface implementation
go-i2pcontrol
an implementation of the I2PControl-RPC protocol in Go as a library
-
mature but does not provide all possible consts(like ratestats)
i2p-control
CLI application built using/as a demo of
go-i2pcontrol
-
mature but may lack features
sam-forwarder
an I2PTunnel-alike which accepts i2pd-style config files
-
mature enough for a rewrite
go-i2p-bt
a Bittorrent library configured using
onramp
which tracks SAMv3 development and has similar features to I2PSnark
-
not mature
reseed-tools
a freestanding implementation of an I2P Reseed server
-
mature and extensively used/tested
railroad
a blog mostly compatible with Ghost style themes with markdown-based editing
-
not mature
go-i2p
a pure-Go implementation of the I2P Router
WIP
-
WIP does not work yet
MIT License
Copyright (c) 2024 go-i2p
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Hide license