# Uses of Package
net.i2p.app

- Packages that use net.i2p.app
  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.apps.systray | System tray integration and URL launcher for the I2P router console.
  net.i2p.desktopgui | Desktop graphical interface for managing I2P router lifecycle from the system tray.
  net.i2p.i2pcontrol | I2P Control provides a JSON-RPC 2.0 interface for controlling and monitoring the I2P router.
  net.i2p.i2ptunnel | Implementation of preconfigured tunnels for both clients and servers, with a comprehensive UI for tunnel management and configuration.
  net.i2p.i2ptunnel.socks | SOCKS protocol tunnel implementation for I2P, supporting SOCKS 4, 4a, and 5.
  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.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.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.sybil | Offline analysis tools for detecting Sybil attacks and malicious peer coordination in the I2P network.
  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.sam | The SAM (Simple Anonymous Messaging) client API.
  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.

- Classes in net.i2p.app used by net.i2p
  Class and Description
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.

- Classes in net.i2p.app used by net.i2p.app
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.apps.systray
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.desktopgui
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.
  NotificationService A service to send messages to users.

- Classes in net.i2p.app used by net.i2p.i2pcontrol
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.i2ptunnel
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.i2ptunnel.socks
  Class and Description
  Outproxy Interface for outproxy configuration.

- Classes in net.i2p.app used by net.i2p.jetty
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.router
  Class and Description
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.

- Classes in net.i2p.app used by net.i2p.router.app
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.

- Classes in net.i2p.app used by net.i2p.router.news
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.router.startup
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppManagerImpl A simple ClientAppManager that supports register/unregister only, so that client apps may find each other in AppContext.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.router.sybil
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.router.update
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by net.i2p.router.web
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.
  NavService Service to put links on the console.

- Classes in net.i2p.app used by net.i2p.sam
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppManager Notify the router of events, and provide methods for client apps to find each other.
  ClientAppState Status of a client application.

- Classes in net.i2p.app used by org.klomp.snark
  Class and Description
  ClientApp If a class started via clients.config implements this interface, it will be used to manage the client, instead of starting with main() Clients implementing this interface MUST provide the following constructor: public MyClientApp(I2PAppContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.
  ClientAppState Status of a client application.