Cette page a été mise à jour en Juin 2012 et est valide pour la version de routeur 0.9.

Information générale

I2P inclut une architecture de plugin pour soutenir le développement facile et l'installation de logiciel supplémentaire.

Il y a maintenant des plug-ins disponibles qui soutiennent courrier électronique distribué, blogs, clients IRC, stockage de fichiers distribué, wikis, et plus.

Avantages aux utilisateurs i2p et développeurs d'app :

  • Distribution facile d'applications
  • Permet l'innovation et l'utilisation de bibliothèques supplémentaires sans s'inquiéter de l'augmentation de la taille de i2pupdate.sud
  • Soutient les grandes applications ou à but particulier qui ne seraient jamais empaquetées avec l'installation I2P
  • Applications vérifiées et signées cryptographiquement
  • Mises à jour automatiques d'applications, comme pour le routeur
  • Sépare l'installation initiale et les paquets de mise à jour, si vous le souhaitez, pour de plus petits téléchargements de mise à jour
  • Installation d'applications en un clic. Il n'est plus demandé aux utilisateurs de modifier wrapper.config ou clients.config
  • Isole les applications de l'installation $I2P de base
  • Vérification de compatibilité automatique de la version I2P, version Java, version Jetty, et de la version de l'application précédemment installée
  • Addition automatique de lien dans la console
  • Démarrage automatique de l'application, y compris modification classpath, sans exiger un redémarrage
  • Intégration automatique et démarrage de webapps dans l'instance de la console Jetty
  • Facilite la création d' 'App Stores' comme celui-ci plugins.i2p.xyz
  • Désinstallation en un clic
  • Packs de langue et de thème pour la console
  • Amène des informations détaillées d'application à la console de routeur
  • Applications non Java également prises en charge

Version I2P requise

0.7.12 ou plus récente.

Installation

Pour installer et démarrer un plug-in, copiez le lien d'installation .xpi2p vers le formulaire au bas de configclients.jsp dans votre console routeur et cliquez le bouton "installer le plug-in". Après que le plug-in soit installé et démarré, un lien vers le plug-in apparaîtra d'habitude en haut de votre barre de sommaire.

Pour mettre à jour un plug-in vers la dernière version, cliquez juste sur le bouton de mise à jour situé dans configclients.jsp. Il y a aussi un bouton pour vérifier si le plug-in a une version plus récente, ainsi qu'un bouton pour vérifier les mises à jour de tous les plug-ins. Concernant les mises à jour les plug-ins seront vérifiés automatiquement lors de la mise à jour vers une nouvelle version d'I2P (n'incluant pas les builds de dév).

Développement

Voyez la plus récent spécification de plugin et le forum plugin sur zzz.i2p.

Voir aussi les sources de plug-ins développése par diverses personnes. Quelques plug-ins, tel que snowman, ont été développés spécifiquement comme exemples.

Développeurs recherchés ! Les plug-ins sont une super façon d'apprendre au sujet d'I2P ou d'ajouter facilement une fonctionnalité.

Commencer

Pour créer un plug-in à partir d'un paquet de fichier binaire existant vous aurez besoin d'obtenir makeplugin.sh depuis la branche i2p.scripts dans monotone.

Anomalies connues

Notez que l'architecture de plug-in du routeur ne fournit actuellement PAS de quelconque isolement de sécurité supplémentaire ni sandboxing de plug-ins.

  • Les mises à jour d'un plug-in avec des jars (pas des wars) inclus ne seront pas reconnues si le plug-in était déjà en cours d'exécution, car il exige que l'astuce de tromperie de classe chargeur vide la classe cache; une redémarrage complet du routeur est exigé.
  • Le bouton d'arrêt peut être affiché même s'il n'y a rien à arrêter.
  • Les plug-ins exécutés dans une JVM séparée créent un répertorie logs/ dans $CWD.
  • Aucune clés initiales ne sont présentes, à part celles de jrandom et de zzz (utilisant la même clé que pour la mise à jour de routeur), ainsi la première clé vue pour un signataire sera automatiquement acceptée—il n'y a aucune autorité de signature de clé.
  • Lors de la suppression d'un plug-in, le répertoire n'est pas toujours supprimé, en particulier sur Windows.
  • Installer un plug-in exigeant Java 1.6 sur une machine Java 1.5 aboutira à au message "le plug-in est corrompu" si le fichier est compressé en pack200.
  • Le thèmes et des plug-ins de traduction ne sont pas testés.
  • Désactiver le démarrage automatique ne marche pas toujours.