L'aggiornamento più recente di questa pagina risale a Giugno 2012 e si riferisce alla versione del router 0.9.

Informazioni Generali

I2P includes a plugin architecture to support easy development and installation of additional software.

There are now plugins available that support distributed email, blogs, IRC clients, distributed file storage, wikis, and more.

Benefits to i2p users and app developers:

  • La distribuzione dei programmi è semplice
  • Allows innovation and use of additional libraries without worrying about increasing the size of i2pupdate.sud
  • Support large or special-purpose applications that would never be bundled with the I2P installation
  • Le applicazioni sono firmate digitalmente
  • Automatic updates of applications, just like for the router
  • Separate initial install and update packages, if desired, for smaller update downloads
  • One-click installation of applications. No more asking users to modify wrapper.config or clients.config
  • Isolate applications from the base $I2P installation
  • Automatic compatibility checking for I2P version, Java version, Jetty version, and previous installed application version
  • Automatic link addition in console
  • Automatic startup of application, including modifying classpath, without requiring a restart
  • Automatic integration and startup of webapps into console Jetty instance
  • Facilitate creation of 'app stores' like the one at plugins.i2p.xyz
  • Disinstallazione con un click
  • Language and theme packs for the console
  • Bring detailed application information to the router console
  • Sono supportate anche applicazioni non in Java

Versione I2P richiesta

0.7.12 o superiore.

Installazione

To install and start a plugin, copy the .xpi2p install link to the form at the bottom of configclients.jsp in your router console and click the "install plugin" button. After a plugin is installed and started, a link to the plugin will usually appear at the top of your summary bar.

To update a plugin to the latest version, just click the update button on configclients.jsp. There is also a button to check if the plugin has a more recent version, as well as a button to check for updates for all plugins. Plugins will be checked for updates automatically when updating to a new I2P release (not including dev builds).

Sviluppo

See the latest plugin specification and the plugin forum on zzz.i2p.

See also the sources for plugins developed by various people. Some plugins, such as snowman, were developed specifically as examples.

Developers wanted! Plugins are a great way to learn more about I2P or easily add some feature.

Come Iniziare

To create a plugin from an existing binary package you will need to get makeplugin.sh from the i2p.scripts branch in monotone.

Problemi conosciuti

Note that the router's plugin architecture does NOT currently provide any additional security isolation or sandboxing of plugins.

  • Updates of a plugin with included jars (not wars) won't be recognized if the plugin was already run, as it requires class loader trickery to flush the class cache; a full router restart is required.
  • The stop button may be displayed even if there is nothing to stop.
  • Plugins running in a separate JVM create a logs/ directory in $CWD.
  • No initial keys are present, except for those of jrandom and zzz (using the same keys as for router update), so the first key seen for a signer is automatically accepted—there is no signing key authority.
  • When deleting a plugin, the directory is not always deleted, especially on Windows.
  • Installing a plugin requiring Java 1.6 on a Java 1.5 machine will result in a "plugin is corrupt" message if pack200 compression of the plugin file is used.
  • Le localizzazioni dei temi e dei plugin non vengono testate.
  • Disabling autostart doesn't always work.