2010-07-26 15:23:17 +00:00
|
|
|
{% extends "_layout.html" %}
|
|
|
|
{% block title %}Plugins{% endblock %}
|
|
|
|
{% block content %}
|
|
|
|
<h2>I2P Plugins</h2>
|
|
|
|
|
|
|
|
Page last updated July 2010, current as of router version 0.8.
|
|
|
|
|
|
|
|
<h3>General Information</h3>
|
|
|
|
I2P includes a plugin architecture
|
|
|
|
to support easy development and installation of additional software.
|
|
|
|
|
|
|
|
<p>
|
|
|
|
There are now plugins available that support distributed email, blogs, IRC clients, distributed file storage, and more.
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Benefits to i2p users and app developers:
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
Easy distribution of applications
|
|
|
|
<li>
|
|
|
|
Allows innovation and use of additional libraries without worrying about increasing the size of i2pupdate.sud
|
|
|
|
<li>
|
|
|
|
Support large or special-purpose applications that would never be bundled with the I2P installation
|
|
|
|
<li>
|
|
|
|
Cryptographically signed and verified applications
|
|
|
|
<li>
|
|
|
|
Automatic updates of applications, just like for the router
|
|
|
|
<li>
|
|
|
|
Separate initial install and update packages, if desired, for smaller update downloads
|
|
|
|
<li>
|
|
|
|
One-click installation of applications. No more asking users to modify wrapper.config or clients.config
|
|
|
|
<li>
|
|
|
|
Isolate applications from the base $I2P installation
|
|
|
|
<li>
|
|
|
|
Automatic compatibility checking for i2p version, java version, and previous installed application version
|
|
|
|
<li>
|
|
|
|
Automatic link addition in console
|
|
|
|
<li>
|
|
|
|
Automatic startup of application, including modifying classpath, no restart required
|
|
|
|
<li>
|
|
|
|
Automatic integration and startup of webapps into console Jetty instance
|
|
|
|
<li>
|
2010-07-30 21:01:19 +00:00
|
|
|
Facilitate creation of 'app stores'
|
2010-07-26 15:23:17 +00:00
|
|
|
<li>
|
|
|
|
One-click uninstall
|
|
|
|
<li>
|
|
|
|
Language and theme packs for the console
|
|
|
|
<li>
|
|
|
|
Bring detailed application information to the router console
|
|
|
|
<li>
|
|
|
|
Non-java applications also supported
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
<h4>Required I2P version</h4>
|
|
|
|
0.7.12
|
|
|
|
|
|
|
|
<h4>Installation</h4>
|
|
|
|
To install and start a plugin, copy the .xpi2p 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 "install plugin".
|
|
|
|
After a plugin is installed and started, a link to the plugin will usually appear at the top of your summary bar.
|
|
|
|
|
|
|
|
<p>
|
|
|
|
To update a plugin to the latest version, just click the
|
|
|
|
update button on
|
|
|
|
<a href="http://127.0.0.1:7657/configclients.jsp#plugin">configclients.jsp</a>.
|
|
|
|
There is also a button to check if the plugin has a more recent version.
|
|
|
|
There is not yet any automatic checking or updating mechanism.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Development</h3>
|
|
|
|
See the latest
|
|
|
|
<a href="plugin_spec.html">plugin specification</a>
|
|
|
|
and the
|
|
|
|
<a href="http://zzz.i2p/forums/16">plugin forum</a> on zzz.i2p.
|
|
|
|
<p>
|
|
|
|
See also the sources for plugins developed by various people.
|
|
|
|
Some plugins were developed specifically as examples.
|
|
|
|
<p>
|
|
|
|
<b>Developers wanted!</b>
|
|
|
|
Plugins are a great way to learn more about I2P or easily add some feature.
|
|
|
|
|
|
|
|
<h3>Getting Started</h3>
|
|
|
|
To create a plugin from an existing binary package you will need to get
|
|
|
|
makeplugin.sh from
|
|
|
|
<a href="http://stats.i2p/cgi-bin/viewmtn/branch/head/browse/i2p.scripts/plugin/makeplugin.sh">the i2p.scripts branch in monotone</a>.
|
|
|
|
|
|
|
|
|
|
|
|
<h3>Known Issues</h3>
|
|
|
|
Note that the router's plugin architecture does <b>NOT</b> provide any additional security isolation or sandboxing of plugins.
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<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>
|
|
|
|
Automatic updates (and check-for-updates) unimplemented.
|
|
|
|
<li>
|
|
|
|
Stop button displayed even if there is nothing to stop.
|
|
|
|
<li>
|
|
|
|
Plugins running in a separate JVM create a logs/ directory in $CWD.
|
|
|
|
<li>
|
|
|
|
No initial keys except for jrandom and zzz (using same keys as for router update),
|
|
|
|
so the first key seen for a signer is automatically accepted - there is no signing key authority.
|
|
|
|
<li>
|
|
|
|
When deleting a plugin, the directory is not always deleted, especially on Windows.
|
|
|
|
<li>
|
|
|
|
Installing a plugin requiring Java 1.6 on a Java 1.5 machine will result in a "plugin is corrupt"
|
|
|
|
message if pack200 is used.
|
|
|
|
<li>
|
|
|
|
Theme and translation plugins are untested.
|
|
|
|
<li>
|
|
|
|
Disabling autostart doesn't always work
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
{% endblock %}
|