Introduction

Matrix et Element

Pour la fonctionnalité de messagerie instantanée, historiquement, Liiibre propose un Rocket Chat. Mais nous avons récemment basculé sur une solution basée sur un serveur Matrix et l’application Element. Alors, qu’est-ce que c’est que tout ça, d’où ça vient, pourquoi c’est là et comment ça marche ? Pour bien comprendre, il faut reprendre quelques bases.

Protocoles et interopérabilité

Vous êtes sans doute familier avec la problématique : vous utilisez une application de messagerie instantanée, votre ami A en utilise une autre, votre amie B en utilise encore une troisième… Satané effet de réseau ! Mais pourquoi ces applis ne pourraient-elles pas communiquer ensemble ?! Ce serait tellement plus simple !

XKCD Chat Systems

“Je galère à me souvenir quels contacts utilisent quels systèmes de messagerie." - xkcd

Chaque application qui souhaite communiquer avec d’autres applications utilise un protocole. Voyez cela comme une langue : deux personnes parlant norvégien peuvent se comprendre, mais un norvégien et une thailandaise ne se comprendront pas. C’est la même chose pour la communication entre applications.

Les applications propriétaires (WhatsApp, Slack…) ont des protocoles tenus secrets. Imaginez qu’aucun moyen d’apprendre le thaïlandais n’existe : notre norvégien serait bien embêté. Il est très difficile (et interdit) pour une application d'implémenter un protocole propriétaire d’une autre application (on dit que ses spécifications sont privées). Et c’est pourquoi WhatsApp ne peut pas communiquer avec Hangouts, ou Slack avec Discord*.

*Sauf bien sûr en cas d’entente commerciale.

A titre de comparaison, l’email

C’est précisément parce que les protocoles qui régissent la communication par email (SMTP, IMAP) sont publics ! L’email est un moyen de communication open-source. on parle alors d'interopérabilité entre les logiciels d’email.

Matrix, c’est quoi ?

Matrix est un standard de protocole open-source qui veut rendre la messagerie instantanée interopérable. Il est développé par l’association britannique à but non lucratif The Matrix.org Foundation. S’il parvient à être implémenté par beaucoup d’applications, la concurrence entre silos propriétaires sera enfin abolie et chacun-e pourra utiliser son application préférée sans se soucier de l’effet de réseau. C’est la raison pour laquelle à IndieHosters, nous avons fait le choix de Matrix.

NB : on appelle aussi Matrix le logiciel serveur qui implémente ce protocole.

Matrix VS. Rocket Chat

Rocket Chat est bien un logiciel libre, et il est donc techniquement possible de savoir comment son protocole fonctionne et de l’implémenter sur d’autres applications. Cependant Matrix a été créé pour jouer ce rôle-là : c’est un peu complexe, mais la fédération de serveurs et la décentralisation sont au coeur même de son architecture. En cela, il est une solution long-terme bien plus convaincante que Rocket Chat, dont la fédération n’est pas vraiment au point. D’ailleurs, Rocket Chat envisage d’implémenter le protocole Matrix dans le futur.

De plus, les derniers choix éditoriaux de Rocket Chat ne nous rassurent pas. L’entreprise est en train de s’orienter vers un modèle open-core avec de plus en plus de fonctionnalités-clés supprimées de la version libre. Avec Matrix, si les choix stratégiques d’une application ne nous plaisent pas, nous pourrons nous orienter vers une autre application avec un coût de transition bien plus faible.

L’application Element

Matrix n’est qu’un protocole implémenté par un serveur, il faut qu’il soit “parlé” (on dit “implémenté”) par des applications qui vont se connecter à ce serveur. Element est l’application la plus aboutie implémentant Matrix, et c’est celle que nous avons décidé d’intégrer dans Liiibre. Bien sûr, vous êtes libres d’utiliser le client que vous souhaitez à la place. Espérons qu’un jour, même les applications propriétaires sur lesquelles sont vos ami-e-s implémenteront Matrix !



Dans la prochaine fiche, nous verrons comment démarrer avec Element.