# Messagerie instantanée - XMPP [[https://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol|XMPP]] est un protocole de messagerie instantanée, ouvert, standard et extensible. Je le considère comme l'un des meilleurs (si ce n'est le meilleur) protocole de discussion. Il permet de : - Discuter en un à un - Discuter en groupe dans des salons privés ou publics - Chiffrer les conversations de bout-en-bout, même en groupe - Gérer le status (présent, absent, "écoute telle musique", etc) - Personnaliser son profil (avec un nom, une photo, une URL, etc) - Et d'autres choses que j'oublie surement En fait il y a des chances pour que vous ayez déjà utilisé XMPP sans le savoir. Vous avez utilisé Google Talk à l'époque ? C'était du XMPP. L'application WhatsApp, c'est aussi du XMPP (fermé mais ça en est). Vous jouez à League of Legend ou avez une Nintendo Switch ? Leur chat est aussi basé sur XMPP. ## Pourquoi XMPP ? XMPP (parfois aussi nommé sous son ancien nom : Jabber) a beaucoup d'avantages par rapport à d'autres protocoles ou produits. ### Décentralisation Il est réellement décentralisé, ce qui veut dire que comme avec le mail ou le fédiverse il est facile de trouver une instance qui nous convient pour faire notre compte. Tout ne dépend pas d'une seule entité comme avec [[messagerie-instantanee:signal|Signal]]. ### Auto-hébergement Héberger un serveur XMPP est assez simple pour quiconque à un peu l'habitude d'héberger des services. J'ai écrit [[https://toutetrien.lithio.fr/article/installer-son-serveur-xmpp-avec-prosody/|un article sur le sujet]] il y a quelques années. Et contrairement à [[messagerie-instantanee:matrix|Matrix]], pas besoin d'être riche pour héberger son compte ou même ceux de toute sa famille chez soi. Un serveur XMPP consomme très peu de ressources, moins de 500 Mo de mémoire si on a que quelques dizaines de comptes. ### Extensibilité C'est un protocole extensible et c'est ce qui fait sa force : ajouter des fonctionnalités à XMPP en terme de protocole est relativement simple. C'est ce qui a permis de le faire évoluer en ajoutant des choses comme : - Le chiffrement - L'upload de fichiers - Les appels audio et vidéos - Et bien d'autres choses En particulier ces dernières années, XMPP semble de plus en plus avoir le vent en poupe. ## Les clients / applications Les clients ce sont les programmes ou applications sur ordinateur ou smartphone qui permettent d'utiliser la messagerie XMPP. Durant des années ce fût **le** point faible de XMPP : le manque de **bons** clients sur toutes les plateformes. Et par « bon client » j'entend un client qui soit utilisable, jolie, qui permette la communication à 2 ou en groupe et avec du chiffrement de bout-en-bout. Heureusement ces dernières années les choses ont bien avancés. Si bien qu'il existe à présent au moins 1 ou 2 clients sur chaque plateforme que je considère comme de « bons clients ». ### Sur ordinateur - [[https://gajim.org/|Gajim]] (Linux, Windows, Mac) - [[https://dino.im/|Dino]] (Linux) - [[https://beagle.im/|Beagle IM]] (Mac) - [[https://monal-im.org/|Monal]] (Mac) ### Sur smartphone - [[https://conversations.im/|Conversations]] (Android) - [[https://f-droid.org/packages/de.monocles.chat/|Monocles chat]] (Android) - [[https://siskin.im/|Siskin]] (iOS) - [[https://monal-im.org/|Monal]] (iOS) ## Les ponts Un pont (*Bridge* en anglais) permet de se connecter à un réseau/protocole de messagerie depuis un autre protocole. Beaucoup de ponts existent pour se connecter depuis XMPP à d'autres protocoles comme : - [[https://biboumi.louiz.org/|Biboumi]] pour se connecter à IRC - [[https://github.com/42wim/matterbridge|MatterBridge]] pour se connecter à Discord, IRC, Matrix, Mattermost, Microsoft Teams, Mumble, Nextcloud Talk, Rocket.chat, Slack - [[https://sr.ht/~nicoco/slidge/|Slidge]] pour se connecter à Signal, Whatsapp, Telegram, Discord, Mattermost, Steam, Skype, Facebook Messenger, Matrix Alors bien sur, les ponts font souvent perdre des fonctionnalités, comme le chiffrement de bout-en-bout par exemple. Mais ça permet de se parler et d'appliquer à XMPP [[https://xkcd.com/1782/|le XKCD 1782 habituellement réservé à IRC]]. ## Ressources Voici quelques liens utiles pour en apprendre plus. - [[https://joinjabber.org/fr/|La communauté JoinJabber]] : Un espace inclusif avec des salons de discussions et des tutoriels - [[https://wiki.jabberfr.org|Wiki JabberFR]] : un wiki parfois pas très à jour mais intéressant - [[https://www.chapril.org/XMPP.html|Les tutoriels de Chapril]] : des tutoriels pour utiliser les clients les plus répandus Vous venez d'arriver sur XMPP et voulez rejoindre un salon d'entraide francophone ? On en a fait un : [[xmpp://entraide-xmpp@conf.lithio.fr|entraide-xmpp@conf.lithio.fr]]