All Packages Core SDK (i2p.jar) Streaming Library Router Router Console Addressbook Application BOB Bridge Desktopgui Application I2PControl Application I2PSnark Application I2PTunnel Application Imagegen Application Installer Utilities Jetty Utilities RRD4J Library (jrobin.jar) SAM Bridge SAM Demos SusiDNS Application SusiMail Application Systray Application 
Package Description
com.docuverse.identicon
The main identicon code is here.
com.google.zxing
This is a small portion of zxing, including only what's required to generate QR codes.
com.google.zxing.client.j2se  
com.google.zxing.common  
com.google.zxing.common.reedsolomon  
com.google.zxing.qrcode  
com.google.zxing.qrcode.decoder  
com.google.zxing.qrcode.encoder  
com.maxmind.db
This is MaxMind-DB-Reader-java release 1.2.2 2017-02-17 retrieved from github.
com.maxmind.geoip
This is geoip-api-java release 1.3.1 2016-02-08 retrieved from github.
com.maxmind.geoip2
This is GeoIP2-java release 2.12.0 2018-04-11 retrieved from github.
com.nettgryppa.security
HashCash implementation.
com.southernstorm.noise.crypto
Fallback implementations of cryptographic primitives.
com.southernstorm.noise.crypto.chacha20
Noise ChaCha20 primitive, moved from com.southernstorm.noise.crypto (in router) to com.southernstorm.noise.crypto.chacha20 (in core) in 0.9.39.
com.southernstorm.noise.crypto.x25519
Noise X25519 primitive, moved from com.southernstorm.noise.crypto (in router) to com.southernstorm.noise.crypto.x25519 (in core) in 0.9.38.
com.southernstorm.noise.protocol
Provides classes for communicating via the Noise protocol.
com.thetransactioncompany.jsonrpc2
Classes to represent, parse and serialise JSON-RPC 2.0 requests, notifications and responses.
com.thetransactioncompany.jsonrpc2.server
Simple server framework for processing JSON-RPC 2.0 requests and notifications.
com.thetransactioncompany.jsonrpc2.util
Utility classes for typed retrieval of JSON-RPC 2.0 request parameters on the server side.
com.tomgibara.crinch.hashing  
com.vuze.plugins.mlab
Class to run the M-Lab Network Diagnostic Tool (NDT).
com.vuze.plugins.mlab.tools.ndt.swingemu
Vuze/BiglyBT Swing stub layer for M-Lab Network Diagnostic Tool (NDT) Applet.
edu.internet2.ndt
The M-Lab Web100 Network Diagnostic Tool (NDT) Java Applet Version 3.7.0.2 (May 20, 2015) From: GitHub.
freenet.support.CPUInformation
CPUID implementaion, borrowed from freenet, updated and heavily modified.
gnu.crypto.prng
The Fortuna PRNG from GNU Crypto, updated and modifed for I2P.
gnu.getopt
This is Java getopt 1.0.14 (released 2012/02/08)
gnu.gettext
GettextResource only, for ngettext().
i2p.susi.dns
The SusiDNS webapp, which is the user interface for the addressbook application and the local naming service (hosts database) implemented in net.i2p.client.naming.
i2p.susi.util  
i2p.susi.webmail
The SusiMail webapp, which implements a webmail interface, POP3 and SMTP client-side protocols, and local caching of email.
i2p.susi.webmail.encoding  
i2p.susi.webmail.pop3  
i2p.susi.webmail.smtp  
net.i2p
Core I2P package, contains information about the I2P version and an entry point to access important elements.
net.i2p.addressbook
The addressbook application, which fetches hosts.txt files from subscription URLs via HTTP and adds new hosts to the local database.
net.i2p.addressbook.servlet
The servlet that starts the addressbook DaemonThread.
net.i2p.app
Interfaces for classes to be started and stopped via clients.config.
net.i2p.apps.systray
A system tray control for launching the I2P router console.
net.i2p.BOB
BOB, the Basic Open Bridge, allows TCP applications to talk over I2P - DEPRECATED - Please port applications to SAMv3.
net.i2p.client
Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
net.i2p.client.datagram
Provides a standard way for reading and writing messages transferred over I2P so that the recipient has an authenticated mechanism to reply to it.
net.i2p.client.impl
Implements the base I2P SDK for developing applications that communicate through I2P.
net.i2p.client.naming
Provides a standard way for querying the local naming service to resolve a name into a Destination (without the complexity of JNDI).
net.i2p.client.streaming
API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
net.i2p.client.streaming.impl
Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
net.i2p.crypto
These classes provide a number of low-level cryptographic routines.
net.i2p.crypto.eddsa
Java implementation of EdDSA, a digital signature scheme using a variant of elliptic curve cryptography based on Twisted Edwards curves.
net.i2p.crypto.eddsa.math
Data structures that definie curves and fields, and the mathematical operaions on them.
net.i2p.crypto.eddsa.math.bigint
Low-level, non-optimized implementation using BigIntegers for any curve.
net.i2p.crypto.eddsa.math.ed25519
Low-level, optimized implementation using Radix $2^{51}$ for Curve 25519.
net.i2p.crypto.eddsa.spec
Specifications for curves and keys, and a table for named curves.
net.i2p.crypto.elgamal
Interfaces for ElGamal keys, used for I2PProvider.
net.i2p.crypto.elgamal.impl
Implementation of ElGamal keys, used for I2PProvider.
net.i2p.crypto.elgamal.spec
Specs ElGamal keys, used for I2PProvider.
net.i2p.crypto.provider
I2P implementation of java.security.Provider for EdDSA.
net.i2p.crypto.x25519
DH for X25519.
net.i2p.crypto.x25519.spec
AlgorithmParameterSpec for X25519.
net.i2p.data
These classes define the common data structures used by the various I2P protocols.
net.i2p.data.i2cp
The Invisible Internet Client Protocol (I2CP) allows applications simplified access to the I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP).
net.i2p.data.i2np
This package defines the low-level messages sent between routers, called the Invisible Internet Network Protocol (I2NP).
net.i2p.data.router
Classes formerly in net.i2p.data but moved here as they are only used by the router.
net.i2p.desktopgui
Desktopgui is a graphical interface to I2P that allows managing the lifecycle of I2P from the system tray.
net.i2p.desktopgui.i18n  
net.i2p.desktopgui.router  
net.i2p.i2pcontrol  
net.i2p.i2pcontrol.security  
net.i2p.i2pcontrol.servlets  
net.i2p.i2pcontrol.servlets.configuration  
net.i2p.i2pcontrol.servlets.jsonrpc2handlers  
net.i2p.i2ptunnel
Implementation of preconfigured tunnels, both for clients and servers, and a UI for adding more and editing the configuration.
net.i2p.i2ptunnel.access
These classes are the implementation of a definition-based incoming connection filter.
net.i2p.i2ptunnel.irc
Filters for the IRC client tunnel, and DCC handlers.
net.i2p.i2ptunnel.localServer
A very simple HTTP server, used only for css and images on HTTP client proxy error pages.
net.i2p.i2ptunnel.socks
SOCKS 4, 4a, and 5 client tunnels.
net.i2p.i2ptunnel.streamr
Special-purpose client and server tunnels for streaming UDP clients and servers, generally for audio and video streaming.
net.i2p.i2ptunnel.udp
A small API used by UDP tunnels.
net.i2p.i2ptunnel.udpTunnel  
net.i2p.i2ptunnel.ui
Classes for configuring tunnels, used externally by Android.
net.i2p.i2ptunnel.web
The UI for adding tunnels and editing their configurations, implemented as a webapp packaged in i2ptunnel.war.
net.i2p.imagegen
Servlets for generating QR codes and identicon images.
net.i2p.installer
These classes make up the "Helper Utilities" that are used by the installer.
net.i2p.internal
Interface and classes for a router and client within the same JVM to directly pass I2CP messages using Queues instead of serialized messages over socket streams.
net.i2p.jetty
Classes for starting Jetty, logging requests, and debug logging to the I2P router log.
net.i2p.kademlia
This is a major rewrite of KBucket, KBucketSet, and KBucketImpl from net.i2p.router.networkdb.kademlia.
net.i2p.router
The I2P router application handles the I2P network communication.
net.i2p.router.app
Interface for classes to be started and stopped via clients.config.
net.i2p.router.client
Implements the router side of the I2CP interface, which is the API for applications to send and receive data through the router.
net.i2p.router.crypto
Classes formerly in net.i2p.crypto but moved here as they are only used by the router.
net.i2p.router.crypto.ratchet
Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).
net.i2p.router.dummy
Dummy versions of things for testing.
net.i2p.router.message
Creates and parses garlic messages.
net.i2p.router.naming  
net.i2p.router.networkdb
A couple of classes, but most things are in kademlia.
net.i2p.router.networkdb.kademlia
The network database, including implementation of floodfills.
net.i2p.router.networkdb.reseed
Fetching, validation, unpacking, and installation of RouterInfos from signed su3 files, unsigned zip files, and web indexes.
net.i2p.router.news
Classes to parse the I2P news format, which follows the Atom standard with additional metadata for the I2P update notification feature.
net.i2p.router.peermanager
The peer manager logs information about the history and quality of network peers.
net.i2p.router.startup
The I2P startup package loads the configuration when I2P is started.
net.i2p.router.sybil
Classes to run offline Sybil analysis, and to store and load the results.
net.i2p.router.tasks
Miscellaneous classes, mostly things that are executed periodically as Jobs, Threads, and SimpleTimer.TimedEvents.
net.i2p.router.time
Provides classes for time synchronization using NTP.
net.i2p.router.transport
The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent.
net.i2p.router.transport.crypto
DH key generation.
net.i2p.router.transport.ntcp
The NTCP transport allows passing I2P messages on top of TCP.
net.i2p.router.transport.udp
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
net.i2p.router.tunnel
All the work of managing locally created and participating tunnels, creating and handling tunnel messages, and their encryption.
net.i2p.router.tunnel.pool
Tunnel creation, tunnel build message handling.
net.i2p.router.update
Classes to implement the update process.
net.i2p.router.util
These classes define the several useful utilities used throughout the router.
net.i2p.router.web
The router console user interface, implemented in routerconsole.jar, with these classes supporting the webapp in routerconsole.war.
net.i2p.router.web.helpers
Helpers and handlers for the router console user interface, with these classes supporting the webapp in routerconsole.war.
net.i2p.router.web.servlets
Full servlets, mostly for static content.
net.i2p.sam
The SAM client API.
net.i2p.sam.client
Demo and test client classes.
net.i2p.servlet
RequestWrapper was a susimail class, moved from susimail to jetty-i2p.jar when we needed them in the router console also.
net.i2p.servlet.filters
XSS filter, since 0.9.14.
net.i2p.servlet.util
Small utilities for servlets.
net.i2p.socks
Constants and clients for SOCKS.
net.i2p.stat
These classes define the statistics package used extensively throughout the I2P router - both for adaptive operation of the router and for debugging.
net.i2p.time
Provides a stub class for time synchronization.
net.i2p.update
Interfaces for classes to assist in the update process without needing the router context.
net.i2p.util
These classes define the several useful utilities used throughout the router and applications.
net.metanotion
I2P Notes: This is the database used by the BlockfileNamingService class.
net.metanotion.io  
net.metanotion.io.block  
net.metanotion.io.block.index  
net.metanotion.io.data  
net.metanotion.util.skiplist  
org.apache.http.conn.ssl
From Apache HttpClient 4.4.1.
org.apache.http.conn.util
From Apache HttpClient 4.4.1.
org.apache.http.util
From Apache HttpCore 4.4.1.
org.cybergarage
The cybergarage cyberlink UPnP library version 3.0, with minor mods for I2P.
org.cybergarage.http  
org.cybergarage.net  
org.cybergarage.soap  
org.cybergarage.upnp  
org.cybergarage.upnp.control  
org.cybergarage.upnp.device  
org.cybergarage.upnp.event  
org.cybergarage.upnp.ssdp  
org.cybergarage.upnp.xml  
org.cybergarage.util  
org.cybergarage.xml  
org.cybergarage.xml.parser  
org.freenetproject
Small classes used by net.i2p.transport.UPnP to interface with the org.cybergarage UPnP library, as imported from freenet.
org.json.simple
This is json-simple release 2.3.0 2017-10-04 retrieved from github.
org.klomp.snark
I2P version of the snark bittorrent client, imported in 2005 and heavily enhanced to add a web UI, DHT support, and other features.
org.klomp.snark.bencode  
org.klomp.snark.comments
Data structures to support ut_comment, since 0.9.31.
org.klomp.snark.dht  
org.klomp.snark.standalone
Classes only used for, and bundled with, the standalone installation.
org.klomp.snark.web
The i2psnark user interface, implemented as a webapp in i2psnark.war.
org.mindrot.jbcrypt  
org.minidns.constants  
org.minidns.dnslabel  
org.minidns.dnsmessage  
org.minidns.dnsname  
org.minidns.edns  
org.minidns.idna  
org.minidns.record  
org.minidns.util  
org.rrd4j
RRD4J is a high performance data logging and graphing system for time series data, implementing RRDTool's functionality in Java.
org.rrd4j.core
core RRD4J implementation.
org.rrd4j.core.jrrd
This package provides read-only access to natives RRD file.
org.rrd4j.core.timespec  
org.rrd4j.data
RRD4J data management.
org.rrd4j.graph
RRD4J graph capabilities.
org.xlattice.crypto.filters
Bloom filter used by net.i2p.router.util.DecayingBloomFilter