2012-12-11 05:26:18 +00:00
|
|
|
{% extends "global/layout.html" %}
|
2010-07-26 15:23:17 +00:00
|
|
|
{% block title %}Plugins{% endblock %}
|
2012-12-14 03:41:29 +00:00
|
|
|
{% block lastupdated %}June 2012{% endblock %}
|
|
|
|
{% block accuratefor %}0.9{% endblock %}
|
2010-07-26 15:23:17 +00:00
|
|
|
{% block content %}
|
|
|
|
<h2>I2P Plugins</h2>
|
|
|
|
|
|
|
|
<h3>General Information</h3>
|
2012-06-09 13:27:58 +00:00
|
|
|
<p>
|
2010-07-26 15:23:17 +00:00
|
|
|
I2P includes a plugin architecture
|
|
|
|
to support easy development and installation of additional software.
|
2012-06-09 13:27:58 +00:00
|
|
|
</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
<p>
|
2012-06-09 13:27:58 +00:00
|
|
|
There are now plugins available that support distributed email, blogs, IRC
|
|
|
|
clients, distributed file storage, wikis, and more.
|
|
|
|
</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Benefits to i2p users and app developers:
|
2012-06-09 13:27:58 +00:00
|
|
|
</p>
|
|
|
|
|
2010-07-26 15:23:17 +00:00
|
|
|
<ul>
|
2012-06-09 13:27:58 +00:00
|
|
|
<li>Easy distribution of applications</li>
|
|
|
|
<li>Allows innovation and use of additional libraries without worrying about
|
|
|
|
increasing the size of <code>i2pupdate.sud</code></li>
|
|
|
|
<li>Support large or special-purpose applications that would never be bundled
|
|
|
|
with the I2P installation</li>
|
|
|
|
<li>Cryptographically signed and verified applications</li>
|
|
|
|
<li>Automatic updates of applications, just like for the router</li>
|
|
|
|
<li>Separate initial install and update packages, if desired, for smaller update downloads</li>
|
|
|
|
<li>One-click installation of applications. No more asking users to modify
|
|
|
|
<code>wrapper.config</code> or <code>clients.config</code></li>
|
|
|
|
<li>Isolate applications from the base <code>$I2P</code> installation</li>
|
|
|
|
<li>Automatic compatibility checking for I2P version, Java version, Jetty
|
|
|
|
version, and previous installed application version</li>
|
|
|
|
<li>Automatic link addition in console</li>
|
|
|
|
<li>Automatic startup of application, including modifying classpath, without requiring a restart</li>
|
|
|
|
<li>Automatic integration and startup of webapps into console Jetty instance</li>
|
|
|
|
<li>Facilitate creation of 'app stores' like the one at <a
|
2012-12-11 05:26:18 +00:00
|
|
|
href="http://{{ i2pconv('plugins.i2p') }}">plugins.i2p</a></li>
|
2012-06-09 13:27:58 +00:00
|
|
|
<li> One-click uninstall</li>
|
|
|
|
<li> Language and theme packs for the console </li>
|
|
|
|
<li> Bring detailed application information to the router console </li>
|
|
|
|
<li> Non-java applications also supported </li>
|
2010-07-26 15:23:17 +00:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
<h4>Required I2P version</h4>
|
2012-06-09 13:27:58 +00:00
|
|
|
<p> 0.7.12 or newer. </p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
<h4>Installation</h4>
|
2012-06-09 13:27:58 +00:00
|
|
|
<p> To install and start a plugin, copy the <code>.xpi2p</code> install link to
|
|
|
|
the form at the bottom of <a
|
|
|
|
href="http://127.0.0.1:7657/configclients.jsp#plugin">configclients.jsp in
|
|
|
|
your router console</a> 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. </p>
|
|
|
|
|
|
|
|
<p> To update a plugin to the latest version, just click the update button on
|
2010-07-26 15:23:17 +00:00
|
|
|
<a href="http://127.0.0.1:7657/configclients.jsp#plugin">configclients.jsp</a>.
|
2012-06-09 13:27:58 +00:00
|
|
|
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).</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
<h3>Development</h3>
|
2012-12-11 05:43:44 +00:00
|
|
|
<p> See the latest <a href="{{ site_url('docs/spec/plugin') }}">plugin specification</a> and the <a
|
2012-12-11 05:26:18 +00:00
|
|
|
href="http://{{ i2pconv('zzz.i2p') }}/forums/16">plugin forum</a> on zzz.i2p. </p> <p> See
|
2012-06-09 13:27:58 +00:00
|
|
|
also the sources for plugins developed by various people. Some plugins, such
|
2012-12-11 05:26:18 +00:00
|
|
|
as <a href="http://{{ i2pconv('plugins.i2p') }}/plugins/snowman">snowman</a>, were developed
|
2012-06-09 13:27:58 +00:00
|
|
|
specifically as examples. </p>
|
|
|
|
|
|
|
|
<p> <b>Developers wanted!</b> Plugins are a great way to learn more about I2P
|
|
|
|
or easily add some feature. </p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
<h3>Getting Started</h3>
|
2012-06-09 13:27:58 +00:00
|
|
|
<p> To create a plugin from an existing binary package you will need to get
|
|
|
|
makeplugin.sh from <a
|
2012-12-11 05:26:18 +00:00
|
|
|
href="http://{{ i2pconv('trac.i2p2.i2p') }}/browser/plugin/makeplugin.sh?rev=776519571fda0689ef09c42f66e7398f30432e87">the
|
2012-06-09 13:27:58 +00:00
|
|
|
i2p.scripts branch in monotone</a>. </p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
<h3>Known Issues</h3>
|
2012-06-09 13:27:58 +00:00
|
|
|
<p> Note that the router's plugin architecture does <b>NOT</b> currently
|
|
|
|
provide any additional security isolation or sandboxing of plugins.</p>
|
2010-07-26 15:23:17 +00:00
|
|
|
|
|
|
|
<ul>
|
2012-06-09 13:27:58 +00:00
|
|
|
<li>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.</li>
|
|
|
|
<li> The stop button may be displayed even if there is nothing to stop.</li>
|
|
|
|
<li> Plugins running in a separate JVM create a <code>logs/</code> directory in
|
|
|
|
<code>$CWD</code>.</li>
|
|
|
|
<li>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. </li>
|
|
|
|
<li> When deleting a plugin, the directory is not always deleted, especially on
|
|
|
|
Windows. </li>
|
|
|
|
<li> 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. </li>
|
|
|
|
<li> Theme and translation plugins are untested. </li>
|
|
|
|
<li> Disabling autostart doesn't always work. </li>
|
2010-07-26 15:23:17 +00:00
|
|
|
</ul>
|
|
|
|
|
2012-06-09 13:27:58 +00:00
|
|
|
<!-- vim: set noai ff=unix nosi ft=html tw=79 et sw=4 ts=4 spell spelllang=en: -->
|
2010-07-26 15:23:17 +00:00
|
|
|
{% endblock %}
|