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.
| 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) |
I2PAppContext — central access point for I2P services and configurationI2PException — base exception for I2P codeCoreVersion — version constantsWith 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.
core/README.md — module overviewrouter/java/src/net/i2p/README.md — router source tree (depends on this module)