client/)Public I2P client SDK: the stable API applications use to communicate through the router. The implementation lives in the impl/ subpackage (moved there in 0.9.21).
An application obtains an I2PClient from I2PClientFactory, generates a Destination if it doesn’t already have one, then opens an I2PSession — the bridge to the I2P network. The session sends and receives messages over I2CP and reports activity asynchronously via I2PSessionListener. Three subpackages extend the base SDK: datagram/ (authenticated, repliable messages), naming/ (name-to-Destination resolution), and the separately-packaged streaming library.
| Class | Purpose |
|---|---|
I2PClientFactory |
Entry point; returns an I2PClient instance |
I2PClient |
SDK root: creates destinations and sessions |
I2PSession |
The session bridge to the router, with send/receive APIs |
I2PSessionListener |
Asynchronous notification of session activity |
I2PSessionMuxedImpl |
Multiplexed session sharing one I2CP connection across subsessions |
I2PSimpleClient |
Minimal client for simple message sending |
datagram/ — authenticated, repliable datagram APInaming/ — naming services resolving readable names to Destinationsimpl/ — I2CP session and message-handler implementationscore/java/src/net/i2p/README.md — core source map