ActivityPub

ActivityPub
Communication protocol
The image depicts an infographic of the basic functionality of ActivityPub. It shows a person (known as an Actor in ActivityPub terminology) reading incoming messages ("activities") from an inbox, which receives messages from other Actors (depicted as a cloud labeled "REST OF THE WORLD") via federation. The Actor also sends messages to their outbox, which the rest of the world receives via federation.
An infographic of the core functionality of ActivityPub
AbbreviationAP
PurposeDecentralized social networking
DevelopersWorld Wide Web Consortium and
IntroductionJanuary 23, 2018 (2018-01-23)
Based onActivityStreams, JSON-LD
InfluencedAT Protocol
Websiteactivitypub.rocks Edit this at Wikidata

ActivityPub is a protocol and open standard for decentralized social networking. It provides a client-to-server (C2S) API for creating and modifying content, as well as a federated server-to-server (S2S) protocol for delivering notifications and content to other servers. ActivityPub is the defining standard of the Fediverse, a decentralised social network of various social interaction models, and content types, which consists of independently managed instances of software such as Mastodon, Pixelfed and PeerTube, among others.

ActivityPub is considered to be an update to the ActivityPump protocol used in pump.io, and the official W3C repository for ActivityPub is identified as a fork of ActivityPump. The creation of a new standard for decentralized social networking was prompted by the complexity of OStatus, the most commonly used protocol at the time. OStatus was built using a multitude of technologies (such as Atom, Salmon, WebSub and WebFinger), a product of the infrastructure used in GNU social (the originator and largest user of the OStatus protocol), which made it difficult to implement the protocol into new software. OStatus was also only designed to work with microblogging services, with little flexibility to the types of data that it could hold.

The standard was first published by the World Wide Web Consortium (W3C) as a W3C Recommendation in January 2018 by the Social Web Working Group (SocialWG), a working group chartered to build the protocols and vocabularies needed to create a standard for social functionality. Shortly after, further development was moved to the Social Web Community Group (SocialCG), the successor to the SocialWG.