Packages that use net.i2p
Package
Description
M-Lab NDT speed test plugin code imported from Vuze, used by the router console speed test.
Web100 Network Diagnostic Tool applet behind the router console speed test.
Fortuna pseudo-random number generator from GNU Crypto, modified for I2P.
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. The SusiMail webapp (mail.war): webmail interface with POP3 and SMTP clients over I2P and local caching.
Core I2P package providing fundamental interfaces, version information, and entry points to essential I2P services, centered on I2PAppContext.
Address book application for fetching and maintaining I2P host databases from subscription sources.
Interfaces for classes to be started and stopped via clients.config.
System tray applet that launches a browser to the router console when the router is ready.
Interfaces and factories for the base I2P SDK used to develop applications that communicate through I2P.
Provides a standard way for reading and writing messages transferred over I2P so that the recipient has an authenticated mechanism to reply to the sender.
Internal implementation of the I2P client SDK - the client side of the Invisible Internet Client Protocol (I2CP), separating implementation from the interfaces in
net.i2p.client. Naming service for resolving human-readable names (such as ident.i2p) into I2P destinations, providing a standard interface without JNDI complexity.
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.
Implementation of a TCP-like (reliable, authenticated, in order) set of sockets for communicating over the IP-like (unreliable, unauthenticated, unordered) I2P messages.
Core cryptographic primitives used throughout I2P: symmetric ciphers (AES, ChaCha20), hashes (SHA-1, SHA-256, SHA-384, SHA-512), HMAC and HKDF key derivation, the ElGamal and DSA/EdDSA/RedDSA engines, key and certificate utilities, and the entropy harvester.
Common data structures used by the I2P protocols: Destination, LeaseSet, PublicKey, Signature, Certificate and their friends.
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).
Low-level messages sent between routers - the Invisible Internet Network Protocol (I2NP).
Router-specific data structures: RouterInfo and RouterIdentity with their transport addresses and capabilities, router key generation, and the optionally password-protected router private key file.
Desktop GUI for monitoring and controlling the router from the system tray: status display, start/stop/restart controls and console access.
Internationalization support for the desktop GUI, including pluralized resource handling.
Router communication for the desktop GUI: status monitoring and control commands over I2CP (the Invisible Internet Client Protocol) and the router's service interfaces.
I2P Control service: a JSON-RPC 2.0 interface for controlling and monitoring the router from external applications, served over TLS on the configured port.
Authentication and authorization for the I2P Control service: token management and keystore handling.
I2P Control handlers for reading and writing router configuration parameters.
Implementation of preconfigured tunnels for clients and servers, including special-purpose tunnels for IRC, SOCKS, HTTP and streaming.
Definition-based incoming connection filter for server tunnels, with fine-grained access control by destination.
Minimal embedded HTTP server used by the I2PTunnel local admin interface.
SOCKS 4, 4a and 5 server implementations exposing I2P client tunnels to SOCKS clients.
StreamR adaptive-rate streaming tunnel: streams audio and video over a single I2P tunnel, adapting the encoder rate to the measured tunnel bandwidth.
Base classes for UDP client and server tunnels, mapping a local UDP port to an I2P tunnel through the sinks and sources in
net.i2p.i2ptunnel.udp. Public API classes for programmatic tunnel configuration and management, providing a stable API for external applications, including the Android client.
The I2PTunnel configuration web interface (i2ptunnel.war): servlets and helpers for creating and editing tunnels.
Jetty integration: starts the embedded Jetty server for all I2P webapps.
Generic Kademlia distributed hash table implementation supporting multiple hash algorithms (SHA1, SHA256 and others).
The I2P router application handles I2P network communication.
Router-specific cryptography: ElGamal+AES garlic encryption (ElGamalAESEngine), session key and tag caching for repeated peer communication (TransientSessionKeyManager), router-family shared keys (FamilyKeyCrypto), and the ratchet and pqc subpackages.
Post-quantum hybrid key encapsulation built on the bundled Bouncy Castle ML-KEM primitives.
The Double Ratchet with X25519 key agreement and ECIES hybrid encryption, used by the NTCP2 and SSU transports for session encryption.
The router's default naming service, BlockfileNamingService, backed by the Metanotion BlockFile database (
net.metanotion) in hostsdb.dat. Parser for the I2P news format, which follows Atom with additional metadata for the update notification feature.
The I2P startup package loads configuration when I2P is started.
Offline analysis tools for detecting Sybil attacks and malicious peer coordination by correlating peer relationships.
Periodic maintenance jobs: stats coalescing, cryptographic algorithm checks, liveliness marking, out-of-memory handling, thread dumps, the watchdog, graceful shutdown and soft restart, update installation, republishing and config reloading.
Router time synchronization: peer-based clock sync (RouterTimestamper) and an NTP client with time zone support.
Transport framework: the transport lifecycle and pool management, connection handling and bandwidth throttling for the transports (NTCP2 over TCP, SSU over UDP) that carry I2P messages between routers, plus NAT traversal via UPnP and GeoIP country lookups.
Transport-layer key agreement: the X25519 key factory used by the NTCP2 and SSU2 session handshakes for peer authentication and session encryption.
NTCP2, the TCP transport: framed, ratchet-encrypted and mutually authenticated connections between routers.
SSU2, the UDP transport: datagram sessions with Holepunch peer discovery, plus the older SSU compatibility code.
Tunnel messages and the tunnel layer: the
TunnelManagerFacade, tunnel build request and reply processing, and the inbound and outbound tunnel structures. Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Router-side update checking and installation: fetching update notifications, downloading and verifying updates, and staging them for the restart.
Router utility classes: CoDel active queue management, time-decaying collections, a diagnostics ring buffer, CIDR matching, and password management.
The router console user interface, implemented in routerconsole.jar, with these classes supporting the webapp in routerconsole.war.
Helpers and handlers for the router console user interface, packaged in routerconsole.war and accessible only from JSP files.
The SAM bridge: a simple text protocol server letting applications in any language use I2P streaming and datagram sessions without implementing the Invisible Internet Client Protocol (I2CP).
Demo and test client classes.
Servlet glue classes shared across I2P webapps, originally from susimail: error and default servlets, request wrapping and webapp provider configuration.
Statistics collection framework used throughout the router for adaptive operation, monitoring and debugging.
General utility classes shared across the core libraries and the router.
General utility classes and helper functions.
I2P version of the Snark BitTorrent client, enhanced for I2P: peers are I2P destinations, torrents can be served anonymously as hidden services, and metadata carries I2P-specific comment fields.
BitTorrent distributed hash table (DHT) implementation following the Mainline protocol, for trackerless peer discovery.
Command-line client for running Snark without the web interface.
The I2PSnark web interface (i2psnark.war): servlets and helpers for torrent management, file browsing and configuration.
- Classes in net.i2p used by com.vuze.plugins.mlab
- Classes in net.i2p used by edu.internet2.ndt
- Classes in net.i2p used by gnu.crypto.prng
- Classes in net.i2p used by i2p.susi.dns
- Classes in net.i2p used by i2p.susi.webmail
- Classes in net.i2p used by net.i2p.addressbook
- Classes in net.i2p used by net.i2p.app
- Classes in net.i2p used by net.i2p.apps.systray
- Classes in net.i2p used by net.i2p.clientClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.client.datagram
- Classes in net.i2p used by net.i2p.client.implClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.client.naming
- Classes in net.i2p used by net.i2p.client.streamingClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.client.streaming.implClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.crypto
- Classes in net.i2p used by net.i2p.dataClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.data.i2cp
- Classes in net.i2p used by net.i2p.data.i2npClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.data.router
- Classes in net.i2p used by net.i2p.desktopgui
- Classes in net.i2p used by net.i2p.desktopgui.i18n
- Classes in net.i2p used by net.i2p.desktopgui.router
- Classes in net.i2p used by net.i2p.i2pcontrol
- Classes in net.i2p used by net.i2p.i2pcontrol.security
- Classes in net.i2p used by net.i2p.i2pcontrol.servlets.configuration
- Classes in net.i2p used by net.i2p.i2ptunnelClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.i2ptunnel.access
- Classes in net.i2p used by net.i2p.i2ptunnel.localServer
- Classes in net.i2p used by net.i2p.i2ptunnel.socksClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.i2ptunnel.streamr
- Classes in net.i2p used by net.i2p.i2ptunnel.udpTunnel
- Classes in net.i2p used by net.i2p.i2ptunnel.ui
- Classes in net.i2p used by net.i2p.i2ptunnel.web
- Classes in net.i2p used by net.i2p.jetty
- Classes in net.i2p used by net.i2p.kademlia
- Classes in net.i2p used by net.i2p.router
- Classes in net.i2p used by net.i2p.router.crypto
- Classes in net.i2p used by net.i2p.router.crypto.pqc
- Classes in net.i2p used by net.i2p.router.crypto.ratchet
- Classes in net.i2p used by net.i2p.router.naming
- Classes in net.i2p used by net.i2p.router.news
- Classes in net.i2p used by net.i2p.router.startup
- Classes in net.i2p used by net.i2p.router.sybil
- Classes in net.i2p used by net.i2p.router.tasks
- Classes in net.i2p used by net.i2p.router.time
- Classes in net.i2p used by net.i2p.router.transport
- Classes in net.i2p used by net.i2p.router.transport.crypto
- Classes in net.i2p used by net.i2p.router.transport.ntcp
- Classes in net.i2p used by net.i2p.router.transport.udpClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.router.tunnel
- Classes in net.i2p used by net.i2p.router.tunnel.pool
- Classes in net.i2p used by net.i2p.router.update
- Classes in net.i2p used by net.i2p.router.util
- Classes in net.i2p used by net.i2p.router.web
- Classes in net.i2p used by net.i2p.router.web.helpers
- Classes in net.i2p used by net.i2p.samClassDescriptionProvide a base scope for accessing singletons that I2P exposes.Base class of I2P exceptions
- Classes in net.i2p used by net.i2p.sam.client
- Classes in net.i2p used by net.i2p.servlet
- Classes in net.i2p used by net.i2p.stat
- Classes in net.i2p used by net.i2p.util
- Classes in net.i2p used by org.cybergarage.util
- Classes in net.i2p used by org.klomp.snark
- Classes in net.i2p used by org.klomp.snark.dht
- Classes in net.i2p used by org.klomp.snark.standalone
- Classes in net.i2p used by org.klomp.snark.web