ActivityPub
ActivityPub ist ein offenes, dezentrales Protokoll für soziale Netzwerke im Fediverse. Es wurde 2018 Standard des W3C.[2]Don't you miss the days when the web really was the world's greatest decentralized network? Before everything got locked down into a handful of walled gardens? So do we.
Enter ActivtiyPub!Activitypub rocks! - die Startseite des Projekts[1]
Es bietet …
- eine Server-zu-Server-API für eine dezentrale Kommunikation (Federation Protocol) sowie
- eine Client-zu-Server-API (Social API) zum Erstellen, Hochladen und Löschen von Inhalten
Wie der Name schon vermuten lässt, kann man mit ActivityPub seine sozialen Aktivitäten veröffentlichen in Form von Blog- oder Forenbeiträgen, Beiträgen in sozialen Netzwerken oder Mikroblogging-Diensten, aber z. B. auch als geographischer Standort oder Reiseziel. ActivityPub dient hierbei als Spezifikation für die Interaktion zwischen Client-und-Server und Server-zu-Server.
Mit dezentraler Kommunikation ist bei ActivityPub gemeint, dass es möglich ist, die Inhalte eines sozialen Netzwerkes, Mikroblogs etc. auch aus anderen Netzwerken heraus abzurufen und an diese senden zu können. So kann man von einem Dienst wie Mastodon aus auch andere Dienste im Fediverse nutzen.
Technik
In ActivityPub wird ein Benutzer durch "actors" über die Benutzerkonten auf Servern repräsentiert. Die Benutzerkonten auf verschiedenen Servern entsprechen verschiedenen actors. Jeder actor hat:
- eine Inbox, um Nachrichten aus der Welt zu erhalten
- eine Outbox, um Nachrichten an andere zu senden
In- und Outbox sind eigentlich nur URLs, die in der Activity Streams-Beschreibung des ActivityPub-Akteurs aufgeführt sind. Diese enthält unter anderem Informationen wie den Nutzernamen, den vollen Namen und den Link zur In- und Outbox.
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"id": "https://social.example/alyssa/",
"name": "Alyssa P. Hacker",
"preferredUsername": "alyssa",
"summary": "Lisp enthusiast hailing from MIT",
"inbox": "https://social.example/alyssa/inbox/",
"outbox": "https://social.example/alyssa/outbox/",
"followers": "https://social.example/alyssa/followers/",
"following": "https://social.example/alyssa/following/",
"liked": "https://social.example/alyssa/liked/"
}
Möchte ein Benutzer etwas an die Außenwelt senden, so postet dieser einen Text, der im Activity Streams 2.0-Format kodiert ist, in seine Outbox. Die Außenwelt kann nun seine Outbox abrufen und den Inhalt lesen. Schreibt ihm jemand eine Nachricht, wird diese in seiner Inbox abgelegt.
Activity Streams
Der Activity Streams 2.0 Standard nutzt selbst ein JSON basiertes Format namens JSON-LD für die Serialisierung.[3]
{
"@context": "https://www.w3.org/ns/activitystreams",
"summary": "A note",
"type": "Note",
"content": "My dog has fleas."
}
Weblinks
- ↑ Activitypub rocks! - die Startseite des Projekts
- ↑ W3C: ActivityPub W3C Recommendation 23 January 2018
- ↑ Activity Streams 2.0
- MDN: Decentralizing Social Interactions with ActivityPub von Darius Kazemi, November 20, 2018
guter Einstiegsartikel, der noch einmal alles erklärt