# Uses of Package
net.i2p.router.app

- Packages that use net.i2p.router.app
  Package | Description
  --- | ---
  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.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.

- Classes in net.i2p.router.app used by net.i2p.desktopgui
  Class and Description
  RouterApp 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(RouterContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.

- Classes in net.i2p.router.app used by net.i2p.i2pcontrol
  Class and Description
  RouterApp 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(RouterContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.

- Classes in net.i2p.router.app used by net.i2p.router.sybil
  Class and Description
  RouterApp 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(RouterContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.

- Classes in net.i2p.router.app used by net.i2p.router.update
  Class and Description
  RouterApp 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(RouterContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.

- Classes in net.i2p.router.app used by net.i2p.router.web
  Class and Description
  RouterApp 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(RouterContext context, ClientAppManager listener, String[] args) {...} All parameters are non-null.