ActivityPub
# ActivityPub

ActivityPub ist ein 2018 veröffentlichtes, offenes, dezentrales Protokoll für soziale Netzwerke, das vom W3C verwaltet wird. Es bietet ein Client-zu-Server-API zum Erstellen, Hochladen und Löschen von Inhalten sowie ein Server-zu-Server-API für eine dezentrale Kommunikation.

## Projektstatus

ActivityPub ist ein Standard für das Fediverse. Früher hieß das Protokoll „ActivityPump“, aber der aktuelle Name bot sich laut diversen Meinungen an, um den dezentralen Aspekt des Protokolls zu betonen. Es hat einige Ähnlichkeit mit Vorgängerprotokollen wie OStatus. Im Januar 2018 gab das W3C den ActivityPub-Standard frei und empfiehlt ihn seither für dezentrales Teilen von Inhalten.

## Technik

ActivityPub-Benutzer werden als actors bezeichnet. Jeder Actor besitzt eine Inbox und eine Outbox. Jeder Actor hat außerdem eine sogenannte ActivityPub-Beschreibung. Diese enthält unter anderem Informationen wie den Nutzernamen, den vollen Namen und den Link zur In- und Outbox. 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.
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 (Social API) und Server-zu-Server (Federation Protocol). Dabei bedient sich der Standard einigen vom Activity Streams Vokabular definierten Aktivitäten, wie Create, Delete, Follow und Undo, sowie Konzepten wie Aktor, Objekt, Sammlung und Link.
Der Activity Streams 2.0 Standard nutzt selbst ein JSON basiertes Format namens JSON-LD für die Serialisierung.
Mit dezentraler Kommunikation ist bei ActivityPub gemeint, dass es möglich wird, die Inhalte eines sozialen Netzwerkes, Mikroblogs etc. auch aus anderen Netzwerken heraus abzurufen und an diese senden zu können. Würden z. B. Facebook und Twitter ActivityPub, zumindest die Server-zu-Server-Schnittstelle, implementieren, könnte ein Twitter-Nutzer einen Tweet schreiben und ein Facebook-Nutzer ohne Twitter-Konto auf diesen Tweet innerhalb von Facebook antworten.

## Bekannte Implementierungen
### Server-zu-Server-Implementierungen

* Mastodon
* Nextcloud (Federated cloud sharing)
* ownCloud (Federated cloud sharing)
* PeerTube
* Friendica
* WordPress (mittels Plugin)
* Hubzilla
* MediaGoblin
* Pixelfed
* Pleroma
* BookWyrm