# I2P+ Javadocs [2.10.0-26+]

Core (i2p.jar)
Package | Description
--- | ---
net.i2p | Core I2P package providing fundamental interfaces, version information, and entry points to essential I2P services.
net.i2p.app | Interfaces for classes to be started and stopped via clients.config.
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 recipient has an authenticated mechanism to reply to it.
net.i2p.client.impl | Internal implementation of the I2P client SDK, providing the client side of the I2CP protocol for applications communicating through I2P.
net.i2p.client.naming | Naming service for resolving human-readable names to I2P destinations, providing a standard interface without JNDI complexity.
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 I2P network without requiring them to deal with the issues involved with the Invisible Internet Network Protocol (I2NP).
net.i2p.internal | Internal communication interfaces for router and client within same JVM, using queues instead of socket-based I2CP.
net.i2p.kademlia | Generic Kademlia distributed hash table implementation supporting multiple hash algorithms (SHA1, SHA256, etc.).
net.i2p.socks | SOCKS protocol implementation providing client and server functionality for proxy operations through I2P.
net.i2p.stat | Statistical collection and analysis framework used throughout the I2P router for adaptive operation, performance monitoring, and debugging.
net.i2p.time | Time synchronization utilities and interfaces for I2P applications.
net.i2p.update | Interfaces and utilities for update process that operate without requiring full router context.
net.i2p.util | Core utility classes and helper functions used throughout the I2P router and applications.

Core Crypto
Package | Description
--- | ---
com.southernstorm.noise.crypto.chacha20 | ChaCha20 stream cipher primitive for Noise protocol framework, moved from router to core in 0.9.39.
com.southernstorm.noise.crypto.x25519 | X25519 elliptic curve Diffie-Hellman primitive for Noise protocol framework, moved from router to core in 0.9.38.
net.i2p.crypto | Core cryptographic primitives and algorithms used throughout I2P.
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 define curves and fields, and the mathematical operations on them.
net.i2p.crypto.eddsa.math.bigint | Generic mathematical implementation using Java BigIntegers for arbitrary elliptic curves.
net.i2p.crypto.eddsa.math.ed25519 | High-performance, optimized mathematical implementation for Ed25519 using Radix 2^51 representation.
net.i2p.crypto.eddsa.spec | Specifications and parameter tables for EdDSA elliptic curves and cryptographic keys.
net.i2p.crypto.elgamal | Implementation of the ElGamal public-key cryptosystem for I2P.
net.i2p.crypto.elgamal.impl | Concrete implementations of ElGamal cryptographic keys for I2P.
net.i2p.crypto.elgamal.spec | Parameter specifications and key interfaces for ElGamal cryptographic operations.
net.i2p.crypto.provider | Java Security Provider implementation for I2P cryptographic algorithms.
net.i2p.crypto.x25519 | Implementation of X25519 elliptic curve Diffie-Hellman key exchange for I2P.
net.i2p.crypto.x25519.spec | Parameter specifications and algorithm configuration for X25519 operations.

Core Dependencies
Package | Description
--- | ---
freenet.support.CPUInformation | CPUID implementation, borrowed from freenet, updated and heavily modified.
gnu.crypto.prng | Fortuna Pseudo-Random Number Generator (PRNG) from GNU Crypto, updated and modified for I2P's cryptographic operations.
gnu.getopt | This is Java getopt 1.0.14 (released 2012/02/08)
gnu.gettext | GettextResource class for ngettext() plural form handling, taken unchanged from GNU gettext package version 0.19.8.
net.i2p.apache.http.conn.ssl | SSL/TLS socket factory and hostname verification from Apache HttpClient 4.4.1, providing secure HTTP connection support for I2P.
net.i2p.apache.http.conn.util | HTTP connection utilities from Apache HttpClient 4.4.1, providing connection management, network address utilities, and public suffix matching.
net.i2p.apache.http.util | HTTP utility classes from Apache HttpCore 4.4.1, providing argument validation and related HTTP utilities.
org.json.simple | This is json-simple release 2.3.0 2017-10-04 retrieved from github.
org.minidns | From MiniDNS release 1.0.0 (2020-07-18), containing the minidns-core portion of the library.
org.minidns.constants | DNS record types and constants for the MiniDNS library.
org.minidns.dnslabel | DNS label parsing and validation utilities.
org.minidns.dnsmessage | DNS message parsing and serialization.
org.minidns.dnsname | DNS name parsing, validation, and manipulation utilities.
org.minidns.edns | EDNS(0) extension mechanisms for DNS.
org.minidns.idna | Internationalized Domain Names in Applications (IDNA) support.
org.minidns.record | DNS resource record types and implementations.
org.minidns.util | Utility classes and helper functions for MiniDNS.

Router
Package | Description
--- | ---
net.i2p.data.i2np | This package defines the low-level messages sent between routers, called Invisible Internet Network Protocol (I2NP).
net.i2p.data.router | Router-specific data structures and identity management classes for I2P.
net.i2p.router | The I2P router application handles I2P network communication.
net.i2p.router.app | Interface and framework for applications managed by the I2P router via clients.config.
net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration.
net.i2p.router.crypto | Router-specific cryptographic operations and implementations for I2P security.
net.i2p.router.crypto.pqc | Post-quantum cryptographic algorithms for I2P.
net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol (I2P proposal 144), providing forward secrecy and enhanced security for I2P transport communications.
net.i2p.router.dummy | Dummy implementations and stub classes for testing purposes.
net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications.
net.i2p.router.networkdb | Network database management and coordination for the I2P distributed hash table.
net.i2p.router.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P.
net.i2p.router.networkdb.reseed | Router reseeding functionality for bootstrapping into the I2P network.
net.i2p.router.peermanager | Peer management, profiling, and capacity calculation for I2P network optimization.
net.i2p.router.startup | The I2P startup package loads configuration when I2P is started.
net.i2p.router.sybil | Offline analysis tools for detecting Sybil attacks and malicious peer coordination in the I2P network.
net.i2p.router.tasks | Periodic maintenance tasks and background jobs for I2P router operations.
net.i2p.router.time | Time synchronization and clock management for I2P router using NTP.
net.i2p.router.transport | Transport layer implementations and management for I2P network communication.
net.i2p.router.transport.crypto | Cryptographic operations for I2P transport protocols, including key exchange algorithms, session key management, and transport-layer encryption.
net.i2p.router.transport.ntcp | The NTCP (New TCP) transport for I2P, allowing I2P messages to be passed over TCP connections.
net.i2p.router.transport.udp | The UDP transport (also known as 'SSU' or Secure Semi-reliable UDP transport) for I2P, allowing I2P messages to be passed over UDP connections.
net.i2p.router.tunnel | Core tunnel management, message processing, and encryption for I2P's anonymous routing system.
net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system.
net.i2p.router.util | Utility classes and helper functions used throughout the I2P router.

Router Dependencies
Package | Description
--- | ---
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.southernstorm.noise.crypto | Fallback implementations of cryptographic primitives.
com.southernstorm.noise.protocol | Provides classes for communicating via the Noise protocol.
org.bouncycastle | This is a small portion of bouncycastle 1.80 for MLKEM, modified to reduce dependencies.
org.bouncycastle.crypto | Base classes for the lightweight API.
org.bouncycastle.crypto.digests | Message digest classes.
org.bouncycastle.crypto.params | Classes for parameter objects for ciphers and generators.
org.bouncycastle.pqc.crypto | Post-Quantum Cryptography implementations and algorithms.
org.bouncycastle.pqc.crypto.mlkem | This is a small portion of bouncycastle 1.80 for MLKEM, modified to reduce dependencies.
org.bouncycastle.pqc.crypto.util | Utility classes for Post-Quantum Cryptography operations.
org.bouncycastle.util | General purpose utility classes used throughout the APIs.
org.cybergarage | The cybergarage cyberlink UPnP library version 3.0, with minor mods for I2P.
org.cybergarage.http | HTTP protocol implementation and utilities.
org.cybergarage.net | Network interface and host management utilities.
org.cybergarage.soap | SOAP (Simple Object Access Protocol) implementation for UPnP.
org.cybergarage.upnp | Universal Plug and Play (UPnP) framework core components.
org.cybergarage.upnp.control | UPnP control and action invocation framework.
org.cybergarage.upnp.device | UPnP device implementation and management.
org.cybergarage.upnp.event | UPnP event notification and subscription management.
org.cybergarage.upnp.ssdp | Simple Service Discovery Protocol (SSDP) implementation for UPnP.
org.cybergarage.upnp.xml | XML parsing and data handling for UPnP device descriptions.
org.cybergarage.util | General utility classes and helper functions.
org.cybergarage.xml | XML parsing and manipulation utilities.
org.cybergarage.xml.parser | XML parser implementations and utilities.
org.freenetproject | Compatibility classes for integrating with CyberGarage UPnP library, imported from Freenet project.
org.xlattice.crypto.filters | Bloom filter implementation used by DecayingBloomFilter for efficient set membership testing.

Router Console
Package | Description
--- | ---
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.update | Classes to implement the router update process for checking and applying I2P router updates from the update manager.
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.

Router Console Dependencies
Package | Description
--- | ---
com.vuze.plugins.mlab | Integration layer for running the M-Lab Network Diagnostic Tool (NDT) within the I2P router console.
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.

Streaming Library
Package | Description
--- | ---
net.i2p.client.streaming | API, interfaces, and factory for a TCP-like (reliable, authenticated, in order) set of sockets for communicating over 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.

Addressbook Application
Package | Description
--- | ---
net.i2p.addressbook | Address book application for fetching and maintaining I2P host databases from subscription sources.
net.i2p.router.naming | The default naming service implementation for the I2P router, using the BlockfileNamingService based on the Metanotion BlockFile Database.
net.metanotion | Metanotion BlockFile Database
net.metanotion.io | Input/output utilities for the address book application.
net.metanotion.io.block | Block-based storage and file system utilities.
net.metanotion.io.block.index | Indexing and search utilities for block-based storage.
net.metanotion.io.data | Data structures and serialization utilities.
net.metanotion.util.skiplist | Skip list data structure implementation.

Desktopgui Application
Package | Description
--- | ---
net.i2p.desktopgui | Desktop graphical interface for managing I2P router lifecycle from the system tray.
net.i2p.desktopgui.i18n | Internationalization (i18n) support for the Desktop GUI.
net.i2p.desktopgui.router | Router integration and communication for the Desktop GUI.

I2PControl Application
Package | Description
--- | ---
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.
net.i2p.i2pcontrol | I2P Control provides a JSON-RPC 2.0 interface for controlling and monitoring the I2P router.
net.i2p.i2pcontrol.security | Security components for I2P Control authentication and authorization.
net.i2p.i2pcontrol.servlets | HTTP servlets for handling I2P Control JSON-RPC 2.0 requests.
net.i2p.i2pcontrol.servlets.configuration | Configuration management for I2P Control settings and parameters.
net.i2p.i2pcontrol.servlets.jsonrpc2handlers | JSON-RPC 2.0 handlers for I2P Control API methods.
org.mindrot.jbcrypt | BCrypt implementation for password hashing and verification.

I2PSnark Application
Package | Description
--- | ---
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 | Bencode parsing and serialization for BitTorrent protocol.
org.klomp.snark.comments | Data structures to support ut_comment, since 0.9.31.
org.klomp.snark.dht | Distributed Hash Table (DHT) implementation for BitTorrent.
org.klomp.snark.standalone | Classes exclusively used in standalone I2PSnark installations, providing functionality not needed when running within the I2P router environment.
org.klomp.snark.web | The I2PSnark web user interface package, providing a complete web-based torrent management system implemented as a webapp in i2psnark.war.

I2PTunnel Application
Package | Description
--- | ---
net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
net.i2p.i2ptunnel.access | Definition-based incoming connection filter for I2PTunnel, allowing fine-grained access control for server tunnels.
net.i2p.i2ptunnel.irc | IRC-specific tunnel enhancements including protocol filters and DCC (Direct Client-to-Client) connection handlers for IRC client tunnels.
net.i2p.i2ptunnel.localServer | Lightweight HTTP server for serving static resources (CSS, images) used by I2PTunnel HTTP client proxy error pages.
net.i2p.i2ptunnel.socks | SOCKS protocol tunnel implementation for I2P, supporting SOCKS 4, 4a, and 5.
net.i2p.i2ptunnel.streamr | Special-purpose tunnels for streaming UDP clients and servers, optimized for audio and video streaming applications.
net.i2p.i2ptunnel.udp | Core API and interfaces used by UDP tunnel implementations.
net.i2p.i2ptunnel.udpTunnel | UDP tunnel implementation for I2PTunnel.
net.i2p.i2ptunnel.ui | Public API classes for programmatic tunnel configuration and management.
net.i2p.i2ptunnel.util | Internal HTTP utilities and helper classes for I2PTunnel operations.
net.i2p.i2ptunnel.web | Web-based user interface for managing I2PTunnel configurations, implemented as a webapp packaged in i2ptunnel.war.

Imagegen Application
Package | Description
--- | ---
com.docuverse.identicon | Identicon generation library for creating unique visual icons from I2P destinations and identifiers.
com.google.zxing | Subset of ZXing (Zebra Crossing) library containing QR code generation functionality for I2P destinations.
com.google.zxing.client.j2se | Java SE client-side implementation for ZXing barcode library.
com.google.zxing.common | Common utilities and classes for ZXing barcode and QR code processing.
com.google.zxing.common.reedsolomon | Reed-Solomon error correction algorithms for ZXing barcode library.
com.google.zxing.qrcode | QR code detection, decoding, and encoding for ZXing.
com.google.zxing.qrcode.decoder | QR code decoding implementation for ZXing.
com.google.zxing.qrcode.encoder | QR code encoding implementation for ZXing.
net.i2p.imagegen | Servlets and services for generating QR codes and identicon images for I2P destinations and identifiers.

Installer Utilities
Package | Description
--- | ---
net.i2p.installer | Helper utilities and support classes used by the I2P installer.

Jetty Utilities
Package | Description
--- | ---
net.i2p.jetty | I2P integration layer for the Jetty web server, providing embedded Jetty startup, configuration, and logging integration with the I2P router.
net.i2p.servlet | Servlet utility classes for I2P web applications, originally from susimail and moved to jetty-i2p.jar in 0.9.19 for shared use across all I2P webapps.
net.i2p.servlet.filters | Security filters for I2P web applications, providing XSS (Cross-Site Scripting) protection and other security measures.
net.i2p.servlet.util | Utility classes for servlet operations and HTTP request handling.

RRD4J Library (jrobin.jar)
Package | Description
--- | ---
com.tomgibara.crinch.hashing | Hashing utilities and interfaces for generating and managing hash values.
eu.bengreen.data.utility | Data utility classes for hashing and time-related algorithms.
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 | Time specification parsing and handling for JRobin RRD system.
org.rrd4j.data | RRD4J data management classes and interfaces. Provides data sources, processors, aggregators, and utilities for Round Robin Database (RRD) operations and calculations.
org.rrd4j.graph | RRD4J graph capabilities.

SAM Bridge
Package | Description
--- | ---
net.i2p.sam | The SAM (Simple Anonymous Messaging) client API.

SAM Demos
Package | Description
--- | ---
net.i2p.sam.client | Demo and test client classes.

SusiDNS Application
Package | Description
--- | ---
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.
net.i2p.addressbook.servlet | Servlet for starting and managing the address book DaemonThread.

SusiMail Application
Package | Description
--- | ---
i2p.susi.util | Utility classes for the SusiMail webmail client.
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 | Character encoding and MIME handling for SusiMail.
i2p.susi.webmail.pop3 | POP3 protocol implementation for SusiMail.
i2p.susi.webmail.smtp | SMTP protocol implementation for SusiMail.

Systray Application
Package | Description
--- | ---
net.i2p.apps.systray | System tray integration and URL launcher for the I2P router console.

Apache Commons
Package | Description
--- | ---
org.apache.commons.io | Provides classes for working with streams, readers, writers and files.
org.apache.commons.io.build | Provides classes to implement IO builders.
org.apache.commons.io.channels | Provides classes to work with `java.nio.channels`.
org.apache.commons.io.charset | Provides classes to work with code from `java.nio.charset`.
org.apache.commons.io.comparator | Provides various `Comparator` implementations for `File`s and `Path`.
org.apache.commons.io.file | Provides extensions in the realm of `java.nio.file`.
org.apache.commons.io.file.attribute | Provides help using `java.nio.file.attribute` types.
org.apache.commons.io.file.spi | Provides extensions in the realm of `java.nio.file.spi`.
org.apache.commons.io.filefilter | Provides the an interface `IOFileFilter` that combines both `FileFilter` and `FilenameFilter`.
org.apache.commons.io.function | Provides IO-only related functional interfaces for lambda expressions and method references.
org.apache.commons.io.input | Provides implementations of input classes, such as `InputStream` and `Reader`.
org.apache.commons.io.input.buffer | Provides implementations of buffered input classes, such as `CircularBufferInputStream` and `PeekableInputStream`.
org.apache.commons.io.monitor | Provides a component for monitoring file system events (directory and file create, update and delete events).
org.apache.commons.io.output | Provides implementations of output classes, such as `OutputStream` and `Writer`.
org.apache.commons.io.serialization | Provides a framework for controlling the deserialization of classes.
org.apache.commons.net | Common socket classes and protocol command utility classes
org.apache.commons.net.bsd | Classes for rcommand, rexec, rlogin
org.apache.commons.net.chargen | Chargen over TCP and UDP
org.apache.commons.net.daytime | Daytime over TCP and UDP
org.apache.commons.net.discard | Discard over TCP and UDP
org.apache.commons.net.echo | Echo over TCP and UDP
org.apache.commons.net.finger | Finger implementation
org.apache.commons.net.ftp | FTP and FTPS support classes
org.apache.commons.net.ftp.parser | FTP file listing parser classes
org.apache.commons.net.imap | Basic IMAP and IMAPS support classes
org.apache.commons.net.io | Utility classes for IO support.
org.apache.commons.net.nntp | NNTP - network news transfer protocol
org.apache.commons.net.ntp | NTP - network time protocol
org.apache.commons.net.pop3 | POP3 and POP3S mail
org.apache.commons.net.smtp | SMTP and SMTPS mail
org.apache.commons.net.telnet | Telnet implementation
org.apache.commons.net.tftp | TFTP cliemt implementation
org.apache.commons.net.time | Time protocol (RFC 868) over TCP and UDP
org.apache.commons.net.util | Utility classes
org.apache.commons.net.whois | Whois client