Эта страница была обновлена Июнь 2012 и содержит сведения для версии маршрутизатора 0.9.

Основная информация

В I2P имеется архитектура плагинов для поддержки легкой разработки и установки дополнительного ПО.

Уже сейчас доступны плагины с поддержкой распределенной электронной почты, блогов, клиентов IRC, распределенного хранилища файлов, wiki и др.

Easy Installation of Applications

I2P Plugins can be installed by copying the plugin download URL onto the appropriate section on the Router Console Plugin Configuration Page.

Start by copying the plugin URL from the page where it is published.

Then visit the plugin configuration page, which you can find linked on the console homepage.

Paste in the URL and click the "Install Plugin" button.

Преимущества для пользователей I2P и разработчиков ПО:

  • Простое распространение приложений
  • Позволяет использовать инновации и дополнительные библиотеки, не беспокоясь об увеличении размера i2pupdate.sud
  • Поддержка больших или специализированных приложений, которые никогда не будут связаны с установкой I2P
  • Криптографически подписанные и проверенные приложения
  • Автоматическое обновление приложений, совсем как для маршрутизатора
  • Отдельные начальная установка и пакеты обновлений, по желанию, для уменьшения размера загружаемых обновлений
  • Установка приложений в один клик. Не спрашивая пользователей об изменении wrapper.config или clients.config
  • Изолирование приложений от базовой установки $I2P
  • Автоматическая проверка совместимости с версией I2P, Java, Jetty и предыдущей установленной версией приложения
  • Автоматическое добавление ссылки в консоли
  • Автоматический запуск приложения, включая модификацию classpath без необходимости перезапуска
  • Автоматическая интеграция и запуск веб-приложения в консольном экземпляре Jetty
  • Облегченное создание 'app stores', как для plugins.i2p.xyz
  • Удаление в один клик
  • Языковые пакеты и темы для консоли
  • Вывод детализированной информации от приложения в консоль маршрутизатора
  • Также поддерживаются не-Java приложения

Требуемая версия I2P

0.7.12 или новее.

Updating a Plugin

Чтобы обновить плагин до последней версии, просто нажмите кнопку обновления в configclients.jsp. Также есть кнопка для проверки актуальности версии плагина, как и кнопка проверки наличия обновления для плагина. Проверка наличия обновлений для плагинов будет выполнена при обновлении I2P до нового релиза (за исключением тестовых сборок).

Разработка

Смотри актуальную спецификацию плагинов и форум о плагинах на zzz.i2p.

Также смотри исходники плагинов, разработанных другими людьми. Некоторые плагины, такие как snowman, были разработаны специально в качестве примеров.

Разыскиваются разработчики! Плагины - это замечательная возможность узнать больше о I2P, или легко добавить новую возможность.

С чего начать

Чтобы сделать плагин из имеющегося исполняемого пакета вам понадобится makeplugin.sh из ветки i2p.scripts в monotone.

Известные проблемы

Учтите, что архитектура плагинов маршрутизатора на данный момент НЕ предоставляет дополнительную изоляцию безопасности или запуск плагинов в песочнице.

  • Обновление плагина с jar-файлами (но не war) не будет распознано, если плагин уже запущен, т.к. для этого требуется, чтобы загрузчик классов сбросил кэш классов; необходим полный перезапуск маршрутизатора.
  • Кнопка остановки может отображаться, даже если останавливать нечего.
  • Плагины, запущенные в отдельном JVM, создают директорию logs/ в $CWD.
  • Нет никаких первоначальных ключей, за исключением ключей jrandom и zzz (используются те же ключи, что и для обновления маршрутизатора), так что первый ключ, доступный для подписания, автоматически принимается—авторизация подписывающих ключей отсутствует.
  • При удалении плагина директории не всегда удаляются, особенно в Windows.
  • При установке плагинов, требующих Java 1.6, на машине с Java 1.5 возникнет сообщение "plugin is corrupt", если используется pack200 сжатие плагина.
  • Темы и плагины переводов не тестируются.
  • Отключение автоматического запуска не всегда срабатывает.