# Uses of Package
net.i2p.util

- Packages that use net.i2p.util
  Package | Description
  --- | ---
  i2p.susi.webmail.encoding | Character encoding and MIME handling for SusiMail.
  net.i2p | Core I2P package providing fundamental interfaces, version information, and entry points to essential I2P services.
  net.i2p.addressbook | Address book application for fetching and maintaining I2P host databases from subscription sources.
  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.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.
  net.i2p.crypto | Core cryptographic primitives and algorithms used throughout I2P.
  net.i2p.data | These classes define the common data structures used by the various I2P protocols.
  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.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  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.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.udpTunnel | UDP tunnel implementation for I2PTunnel.
  net.i2p.i2ptunnel.web | Web-based user interface for managing I2PTunnel configurations, implemented as a webapp packaged in i2ptunnel.war.
  net.i2p.router | The I2P router application handles I2P network communication.
  net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration.
  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.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P.
  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.startup | The I2P startup package loads configuration when I2P is started.
  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.update | Classes to implement the router update process for checking and applying I2P router updates from the update manager.
  net.i2p.router.util | Utility classes and helper functions used throughout the I2P 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.sam | The SAM (Simple Anonymous Messaging) client API.
  net.i2p.util | Core utility classes and helper functions used throughout the I2P router and applications.
  net.metanotion.io.block | Block-based storage and file system utilities.
  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.dht | Distributed Hash Table (DHT) implementation for BitTorrent.
  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.

- Classes in net.i2p.util used by i2p.susi.webmail.encoding
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p
  Class and Description
  Clock Alternate location for determining the time which takes into account an offset.
  I2PProperties This class contains a number of properties ((key,value)-pairs).
  I2PProperties.I2PPropertyCallback Callback interface for property change notifications.
  KeyRing Simple key ring for storing session keys by hash.
  LogManager Manages the logging system, loading (and reloading) the configuration file, coordinating the log limits, and storing the set of log records pending.
  PortMapper Map services to internal or external application ports for this context.
  RandomSource Singleton for whatever PRNG i2p uses.
  SimpleScheduler Deprecated. in 0.9.20, use SimpleTimer2 instead
  SimpleTimer Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer2 Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.

- Classes in net.i2p.util used by net.i2p.addressbook
  Class and Description
  CommandLine Simple command line access to various utilities.
  I2PAppThread Like `I2PThread` but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.
  I2PThread Preferred over `Thread` for all router uses.

- Classes in net.i2p.util used by net.i2p.client.impl
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer.TimedEvent Simple interface for events to be queued up and notified on expiration

- Classes in net.i2p.util used by net.i2p.client.naming
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  OrderedProperties Properties map that has its keySet ordered consistently (via the key's lexicographical ordering).

- Classes in net.i2p.util used by net.i2p.client.streaming
  Class and Description
  EepGet EepGet [-p 127.0.0.1:4444] [-n #retries] [-o outputFile] [-m markSize lineLen] url
  SocketTimeout Implements one or two timers; one for inactivity, that is reset by resetTimer(), and optionally, a total time since instantiation, that is configured by setTotalTimeoutPeriod().

- Classes in net.i2p.util used by net.i2p.client.streaming.impl
  Class and Description
  BandwidthEstimator A Westwood bandwidth estimator
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer.TimedEvent Simple interface for events to be queued up and notified on expiration
  SimpleTimer2 Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.

- Classes in net.i2p.util used by net.i2p.crypto
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  NativeBigInteger BigInteger that takes advantage of the jbigi library for the modPow operation, which accounts for a massive segment of the processing cost of asymmetric crypto.

- Classes in net.i2p.util used by net.i2p.data
  Class and Description
  OrderedProperties Properties map that has its keySet ordered consistently (via the key's lexicographical ordering).

- Classes in net.i2p.util used by net.i2p.data.i2np
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.data.router
  Class and Description
  OrderedProperties Properties map that has its keySet ordered consistently (via the key's lexicographical ordering).

- Classes in net.i2p.util used by net.i2p.i2ptunnel
  Class and Description
  EventDispatcher Event dispatching interface.
  EventDispatcherImpl An implementation of the EventDispatcher interface.
  I2PAppThread Like `I2PThread` but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.
  I2PThread Preferred over `Thread` for all router uses.
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.i2ptunnel.irc
  Class and Description
  EventDispatcher Event dispatching interface.
  EventDispatcherImpl An implementation of the EventDispatcher interface.
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.i2ptunnel.socks
  Class and Description
  EventDispatcher Event dispatching interface.
  EventDispatcherImpl An implementation of the EventDispatcher interface.
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.i2ptunnel.streamr
  Class and Description
  EventDispatcher Event dispatching interface.
  EventDispatcherImpl An implementation of the EventDispatcher interface.

- Classes in net.i2p.util used by net.i2p.i2ptunnel.udpTunnel
  Class and Description
  EventDispatcher Event dispatching interface.
  EventDispatcherImpl An implementation of the EventDispatcher interface.

- Classes in net.i2p.util used by net.i2p.i2ptunnel.web
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.router
  Class and Description
  Clock Alternate location for determining the time which takes into account an offset.
  Clock.ClockUpdateListener Listener for clock offset changes.
  CommandLine Simple command line access to various utilities.
  I2PProperties.I2PPropertyCallback Callback interface for property change notifications.
  I2PThread Preferred over `Thread` for all router uses.
  KeyRing Simple key ring for storing session keys by hash.

- Classes in net.i2p.util used by net.i2p.router.client
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.router.crypto.ratchet
  Class and Description
  I2PThread Preferred over `Thread` for all router uses.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.

- Classes in net.i2p.util used by net.i2p.router.networkdb.kademlia
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.router.news
  Class and Description
  CommandLine Simple command line access to various utilities.

- Classes in net.i2p.util used by net.i2p.router.startup
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer2 Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.

- Classes in net.i2p.util used by net.i2p.router.tasks
  Class and Description
  I2PThread.OOMEventListener Listener for out-of-memory events.
  SimpleTimer.TimedEvent Simple interface for events to be queued up and notified on expiration

- Classes in net.i2p.util used by net.i2p.router.time
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.router.transport
  Class and Description
  AddressType Enumeration of supported address types.
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.router.transport.crypto
  Class and Description
  I2PThread Preferred over `Thread` for all router uses.

- Classes in net.i2p.util used by net.i2p.router.transport.ntcp
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.router.transport.udp
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.

- Classes in net.i2p.util used by net.i2p.router.tunnel
  Class and Description
  ByteCache Cache the objects frequently used to reduce memory churn.
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.
  SyntheticREDQueue A "synthetic" queue that does not store data but estimates the average queue size assuming a fixed output bandwidth, and applies the Random Early Detection (RED) algorithm to decide probabilistically whether to accept or drop packets.

- Classes in net.i2p.util used by net.i2p.router.tunnel.pool
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer.TimedEvent Simple interface for events to be queued up and notified on expiration

- Classes in net.i2p.util used by net.i2p.router.update
  Class and Description
  EepGet EepGet [-p 127.0.0.1:4444] [-n #retries] [-o outputFile] [-m markSize lineLen] url
  EepGet.StatusListener Callback interface
  I2PAppThread Like `I2PThread` but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.
  I2PThread Preferred over `Thread` for all router uses.
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer.TimedEvent Simple interface for events to be queued up and notified on expiration

- Classes in net.i2p.util used by net.i2p.router.util
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  PasswordManager Manage both plaintext and salted/hashed password storage in router.config.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.

- Classes in net.i2p.util used by net.i2p.router.web
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.
  PasswordManager Manage both plaintext and salted/hashed password storage in router.config.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.
  Translate Translate strings efficiently.

- Classes in net.i2p.util used by net.i2p.router.web.helpers
  Class and Description
  PortMapper Map services to internal or external application ports for this context.

- Classes in net.i2p.util used by net.i2p.sam
  Class and Description
  I2PAppThread Like `I2PThread` but with per-thread OOM listeners, rather than a static router-wide listener list, so that an OOM in an app won't call the router listener to shutdown the whole router.
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by net.i2p.util
  Class and Description
  AddressType Enumeration of supported address types.
  ArraySet A small, fast Set with a maximum size, backed by a fixed-size array.
  BandwidthEstimator A Westwood bandwidth estimator
  ByteCache Cache the objects frequently used to reduce memory churn.
  Clock Alternate location for determining the time which takes into account an offset.
  Clock.ClockUpdateListener Listener for clock offset changes.
  DNSOverHTTPS.Type DNS query type for IPv4/IPv6 preference.
  EepGet EepGet [-p 127.0.0.1:4444] [-n #retries] [-o outputFile] [-m markSize lineLen] url
  EepGet.AUTH_MODE Authentication mode enumeration.
  EepGet.AuthState Manage the authentication parameters Ref: RFC 2617 Supports both Basic and Digest, however i2ptunnel HTTP proxy has migrated all previous Basic support to Digest.
  EepGet.StatusListener Callback interface
  EventDispatcher Event dispatching interface.
  I2PProperties.I2PPropertyCallback Callback interface for property change notifications.
  I2PThread Preferred over `Thread` for all router uses.
  I2PThread.OOMEventListener Listener for out-of-memory events.
  InternalSocket A simple in-JVM Socket using Piped Streams.
  Log Wrapper class for whatever logging system I2P uses.
  LogConsoleBuffer Offer a glimpse into the last few console messages generated.
  LogManager Manages the logging system, loading (and reloading) the configuration file, coordinating the log limits, and storing the set of log records pending.
  LogRecord Keep track of a log entry, unformatted.
  LogWriter Log writer thread that pulls log records from the LogManager and writes them to the log.
  RandomSource Singleton for whatever PRNG i2p uses.
  ResettableGZIPInputStream GZIP implementation per RFC 1952, reusing java's standard CRC32 and Inflater and InflaterInputStream implementations.
  ResettableGZIPOutputStream GZIP implementation per RFC 1952, reusing java's standard CRC32 and Deflater implementations.
  ReusableGZIPInputStream Provide a cache of reusable GZIP unzipper streams.
  ReusableGZIPOutputStream Provide a cache of reusable GZIP streams, each handling up to 40 KB output without expansion.
  SecureDirectory Same as File but sets the file mode after mkdir() so it can be read and written by the owner only (i.e.
  SimpleByteCache Like ByteCache but works directly with byte arrays, not ByteArrays.
  SimpleScheduler Deprecated. in 0.9.20, use SimpleTimer2 instead
  SimpleStore Deprecated - used only by SimpleTimer
  SimpleTimer Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer.TimedEvent Simple interface for events to be queued up and notified on expiration
  SimpleTimer2 Simple event scheduler - toss an event on the queue and it gets fired at the appropriate time.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.
  SocketTimeout Implements one or two timers; one for inactivity, that is reset by resetTimer(), and optionally, a total time since instantiation, that is configured by setTotalTimeoutPeriod().
  SSLEepGet.ProxyType Not all may be supported.
  SSLEepGet.SSLState An opaque class for the caller to pass to repeated instantiations of SSLEepGet.
  TimeoutPipedInputStream Adds setReadTimeout().
  TryCache A thread-safe, lock-free-ish object cache that reuses objects to reduce allocation overhead.
  TryCache.ObjectFactory Factory interface for creating new objects in TryCache.
  UIMessages A queue of messages, where each has an ID number.
  UIMessages.Message Represents a single UI message with a unique identifier.

- Classes in net.i2p.util used by net.metanotion.io.block
  Class and Description
  Log Wrapper class for whatever logging system I2P uses.

- Classes in net.i2p.util used by org.klomp.snark
  Class and Description
  CommandLine Simple command line access to various utilities.
  EepGet.StatusListener Callback interface
  Log Wrapper class for whatever logging system I2P uses.
  SimpleTimer2.TimedEvent Similar to SimpleTimer.TimedEvent but users must extend instead of implement, and all schedule and cancel methods are through this class rather than SimpleTimer2.
  UIMessages.Message Represents a single UI message with a unique identifier.

- Classes in net.i2p.util used by org.klomp.snark.dht
  Class and Description
  RandomSource Singleton for whatever PRNG i2p uses.

- Classes in net.i2p.util used by org.klomp.snark.web
  Class and Description
  EepGet.StatusListener Callback interface
  Log Wrapper class for whatever logging system I2P uses.