ActivityPub
ActivityPub est un protocole et un standard ouvert pour réseaux sociaux décentralisés basé sur le format ActivityStreams 2.0. Il a été officiellement publié comme recommandation du W3C le 23 janvier 2018. Il fournit une API allant d'un client vers un serveur pour la création, la mise à jour et la suppression de contenu, ainsi qu'une API entre serveurs afin de permettre la fédération de notifications et de contenus. Cette norme est une évolution de Pump.io et est proposée comme remplacement d'OStatus par le groupe de travail sur le web social fédéré du W3C, lancé en juillet 2014, pour le Fediverse.
ActivityPub est un protocole et un standard ouvert pour réseaux sociaux décentralisés basé sur le format ActivityStreams 2.0. Il a été officiellement publié comme recommandation du W3C le 23 janvier 2018[1].
Il fournit une API allant d'un client vers un serveur pour la création, la mise à jour et la suppression de contenu, ainsi qu'une API entre serveurs afin de permettre la fédération de notifications et de contenus. Cette norme est une évolution de Pump.io et est proposée comme remplacement d'OStatus par le groupe de travail sur le web social fédéré du W3C[2], lancé en juillet 2014[3], pour le Fediverse.
Principe
[modifier | modifier le code]

Chaque acteur du réseau, que ce soit un utilisateur, une chaîne de vidéos ou un blog par exemple possède une boîte de réception (« inbox ») et une boîte d'envoi (« outbox »), qui sont des URL[4]. Chaque action (publication d'un message, invitation à un évènement, etc) est représentée par une activité, dont la liste est définie par le standard ActivityStreams.
Dans la fédération entre serveurs, lorsqu'un acteur réalise une action, le serveur qui l'accueille va créer l'activité correspondante et l'envoyer dans les boîtes de réception des destinataires, sur d'autres serveurs. Ces derniers vont alors enregistrer cette activité pour permettre aux clients de les manipuler par la suite. Un serveur peut aussi décider de récupérer le contenu de la boîte d'envoi d'un acteur, qui contient la liste des activités précédemment publiées par cet acteur[4].
Dans la fédération de client à serveur, une activité peut être envoyée à la boîte d'envoi par le client. Le serveur vérifiera alors qu'elle est conforme et la modifiera si besoin, et l'enverra vers les boîtes de réception des destinataires. Le client peut aussi récupérer le contenu de la boîte de réception d'un acteur pour l'afficher et permettre d'interagir avec ce contenu[4].
État du projet
[modifier | modifier le code]ActivityPub est un standard de l'Internet recommandé depuis janvier 2018 par le Web Social Networking Group du World Wide Web Consortium (W3C)[5]. À un stade plus précoce, le nom du protocole a été « ActivityPump » mais il a été estimé qu'ActivityPub était plus indiqué pour décrire le but de publication sur de multiples serveurs du protocole.
D'autres protocoles, et formats viennent s'ajouter autour d'ActivityPub, tels que le format Activity Streams, ou le protocole pour les forges logicielles, ForgeFed, dépôt Git décentralisé et fédéré via ActivityPub[6].
Implémentations
[modifier | modifier le code]Bibliothèques
[modifier | modifier le code]Il existe différentes bibliothèques permettant d'interfacer une application avec ActivityPub.
Pour le langage Go, au sein du projet Go-Fed, la bibliothèque Activity[7].
Pour le langage Ruby, les gems Activitypub-rails, permettant de l'utiliser au sein du framework Ruby on Rails[8], ou Social_web-activity_pub pour Rack[9].
Pour le langage Rust, le Crate Activitystreams[10], qui assure également les fonctions de l'ancien Crate Activitypub[11], fournissant également les outils pour le format Activity Stream.
Pour le langage Python, la bibliothèque Activitypub de DSBlank est conçue pour fonctionner avec les cadriciels Flask et Tornado (en)[12]
Services
[modifier | modifier le code]- Anfora, galerie de photo ;
- Bookwyrm, critiques de livres et découverte de nouvelles lectures ;
- castopod, un serveur de podcast audio ;
- Discourse, un forum de discussion ;
- Distbin, permet comme Pastebin de placer des morceaux de texte (principalement utilisé pour du code source), mais, contrairement à celui-ci, est décentralisé[13].
- Dokieli, outil d'édition décentralisé d'article, permettant les annotations sur des textes ou autre objets par des tiers et les partages/retour de ces notations[14].
- Friendica, moteur de microblog[15]
- ForgeFed et Forgejo, Une extension du protocole ActivityPub afin de permettre des échanges entre des forges logicielles. Vervis est l'implémentation de référence, et le protocole est en cours d'implémentation dans Gitea[16], à la suite d'un financement à la fondation néerlandaise NLnet[17] ;
- Funkwhale, un logiciel de streaming musical décentralisé implémente ActivityPub[18].
- Gnu social, logiciel de microblogage.
- Hubzilla a implémenté ActivityPub, grâce au plugin PubCrawl, dès la version 2.8 (octobre 2017)[19]. Il supporte également Zot6[20].
- Lemmy, agrégateur de liens inspiré par Reddit[21] ;
- Littr.go, agrégateur de liens inspiré par Reddit ;
- Mastodon est un réseau social qui a mis en place ActivityPub à partir de la version 1.6[22].
- Microblog.pub, microblog léger en PHP.
- Minds
- Misskey, projet dérivé de Mastodon ;
- Mobilizon, logiciel d'organisation d'évènements et de gestion de groupes, à l'initiative de Framasoft[23],[24],[25].
- Nextcloud supporte ActivityPub[26], depuis sa version 15, sortie le 10 décembre 2018[27].
- Olki, système de publication scientifique développé par Loria ;
- Osada, un réseau social basé sur ActivityPub et Zot6[28].
- Owncast, un outil de diffusion vidéo comportant un chat depuis la 0.0.11 (mars 2022).
- PeerTube, un logiciel d'hébergement de vidéos décentralisé[29] qui permet les commentaires et diffusion depuis d'autres plateformes comme Mastodon ou Pleroma ;
- Pixelfed, un système de partage d'images [30],[31] ;
- Pleroma, système de microblog limité à 5 000 caractères fédéré, intégrant une messagerie instantanée[32] ;
- Plume, système de blog[33].
- SocialHome, un constructeur de profil personnel fédéré, permet le microblogging ou des billets de blog complets[34] ;
- Threads
- WordPress comporte un plugin ActivityPub ;
- Write.as, un moteur de blog[35] ;
- WriteFreely, un moteur de blog léger écrit en Go[36].
Services intéressés
[modifier | modifier le code]Services peu intéressés
[modifier | modifier le code]- Le réseau social Diaspora* dont 2 développeurs ont participé aux spécifications entre avril 2017 et janvier 2018, mais l'idée est abandonnée au moins à court terme et l'équipe principale ne semble pas y être enthousiaste[37].
Notes et références
[modifier | modifier le code]- ↑ (en) « ActivityPub - W3C Recommendation 23 January 2018 », 23 janvier 2018
- ↑ (en) « Sandstorm And The Social Web », 29 mai 2016
- ↑ (en) Stephen Shankland, « Social networking built into the Web? W3C gives it a go », sur CNet, 21 juillet 2014
- « ActivityPub », sur www.w3.org (consulté le 6 janvier 2019)
- ↑ Christopher Lemmer Webber, « Victory for libre networks: ActivityPub is now a W3C recommended standard », sur Free Software Foundation, 23 janvier 2018
- ↑ (en) « ForgeFed », sur ForgeFed.peers.community
- ↑ (en) « Activity »
- ↑ « ActivityPub-rails », sur RubyGems.org
- ↑ « social web-activity pub », sur RubyGems.org
- ↑ « Acitivitystreams », sur crates.io
- ↑ (en) « Activitypub », sur creates.io
- ↑ (en) « Dsblank/activitypub : A general Python ActivityPub library », sur GitHub (consulté le 18 novembre 2023).
- ↑ (en) « Distbin », sur Distbin.com
- ↑ (en) « Dokieli », sur Dokie.li
- ↑ (en) « Features », sur Friendi.ca
- ↑ (en) « ForgeFed », sur Codeberg.org (consulté le 18 novembre 2023).
- ↑ « Federated software forges with Gitea », sur NLnet
- ↑ « Funkwhale, les baleines mélomanes libres et décentralisées – Framablog », sur framablog.org (consulté le 25 mai 2018)
- ↑ (en) « ChangeLog », sur GitHub
- ↑ (en) « 4.0.3 », sur Framagit
- ↑ Dessalines, Building a federated alternative to reddit in rust: dessalines/lemmy, 14 septembre 2019 (lire en ligne)
- ↑ Tootsuite, « Foire Aux Questions - Techniquement, comment fonctionne la fédération? », sur GitHub
- ↑ Nextinpact, « Mobilizon de Framasoft gère maintenant la fédération des installations - Next INpact », sur www.nextinpact.com (consulté le 19 décembre 2019)
- ↑ « Change the software of the people who change the world ? », sur Framablog
- ↑ « Mobilizon », sur Framagit
- ↑ (en) « ActivityPub: the new standard for decentralized networks », sur nextcloud.com, 25 janvier 2018
- ↑ (en) Jos Poortvliet, « Nextcloud introduces social features, joins the fediverse », sur NextCloud, 10 décembre 2018
- ↑ (en) « Osada - decentralised social networking », sur zotlabs.com
- ↑ « PeerTube bêta : une graine d’alternative à YouTube vient d’éclore – Framablog », sur framablog.org (consulté le 29 mars 2018)
- ↑ Ouanel, « PixelFed », sur Framasoft
- ↑ Guénaël Pépin, « PixelFed, un embryon d'alternative libre à Instagram », sur Next INpact, 15 juin 2018
- ↑ « Pleroma », sur Framasoft
- ↑ « Plume : Une application de blogging fédérée », sur Github
- ↑ https://socialhome.network https://git.feneas.org/socialhome/socialhome
- ↑ (en) « write.as: Minimalist, privacy-focused, writing and publishing platform. », sur write.as
- ↑ (en) « Write Freely », sur Write Freely.org
- ↑ (en) « Support ActivityPub #7422 », sur Github
Annexes
[modifier | modifier le code]Articles connexes
[modifier | modifier le code]- WebSub
- Zot, utilisé par différents logiciels, dont certains utilisant également ActivityPub au sein du Fediverse.
Protocoles plus orientés
- Internet Relay Chat (IRC), réseau de chat décentralisé ;
- Extensible Messaging and Presence Protocol (XMPP), réseau ouvert décentralisé orienté messagerie instantanée, utilisé entre autres par Jabber ;
- Salut à Toi (Libervia logiciel réseau social de type microblog en XMPP) est financé pour coder une passerelle XMPP-ActivityPub info nlnet
- Matrix (protocole)
Liens externes
[modifier | modifier le code]- (en) Site officiel (SocialCG)
- (en) Implémentations sur le Wiki du W3C
- (en) https://the-federation.info — Information et statistiques sur les différents protocoles et logiciels fédérés.