i2pplus

I2P Core Java Sources (net.i2p)

Core library sources packaged in i2p.jar. This is the shared foundation: data structures, cryptographic primitives, the client SDK, utilities, and support packages. Both the router and the bundled applications depend on it.

Packages

Package Purpose
client/ Public I2P client SDK (I2PClient, I2PSession) used by applications to talk to the router over I2CP
crypto/ Cryptographic engines: AES/ChaCha20, ElGamal, EdDSA, X25519, hashes, HMAC, key handling
data/ Wire-format data structures: Hash, Destination, LeaseSet, RouterInfo, I2CP messages
util/ General utilities: logging, EepGet, byte/collection helpers, native BigInteger wrappers
app/ ClientApp lifecycle interface for apps started and stopped via clients.config
kademlia/ Generic Kademlia DHT (KBucket, KBucketSet) used by the router’s network database
stat/ Rate and frequency statistics (RateStat) for adaptive router behavior
update/ Update-checking interfaces and version comparison usable without a router context
time/ Time synchronization interfaces and utilities
internal/ In-JVM router/client communication over queues instead of socket-based I2CP
socks/ SOCKS 4/4a/5 client and server implementations
apache/ Vendored Apache HttpComponents helpers (hostname verifier, public suffix matching)

Top-level classes

With a few exceptions, this package and everything else in i2p.jar is maintained as a stable API for apps, clients, and plugins — unlike router.jar, which is internal to the router.

Docs