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

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

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

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

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

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

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

0.7.12 или новее.

Установка

Чтобы установить и запустить плагин, скопируйте ссылку на установщик .xpi2p в форму внизу configclients.jsp в консоли вашего маршрутизатора и нажмите кнопку "install 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 сжатие плагина.
  • Темы и плагины переводов не тестируются.
  • Отключение автоматического запуска не всегда срабатывает.