w3c / activitypub

Home Page:http://w3c.github.io/activitypub/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ActivityPub

ActivityPub is the decentralized social networking protocol.

It provides a client to server API for creating, updating and deleting content, mechanisms for building a social graph, as well as a federated server to server API for delivering notifications and subscribing to content.

It is based on the ActivityStreams 2.0 (AS2) data format, which is a JSON-LD format for describing social activities. Because AS2 is extensible with new types of activities, objects, and properties, ActivityPub is also extensible. You can build many different kinds of social applications on top of ActivityPub.

ActivityPub was developed by the Social Web Working Group of the World Wide Web Consortium. It was standardized in 2018 as a W3C Recommendation.

Key info

Editors

The currently active editors of the AP specification(s) are:

Contributions

The main way to make contributions, ask questions, or report errors is to make a GitHub issue. Because the specification is a published W3C Recommendation, it is not helpful to make pull requests to the repository.

The AS2 vocabulary provides the basic data model for ActivityPub. Questions or issues about the AS2 vocabulary should be directed to the AS2 repository. If you're not sure whether an issue should go there or here, feel free to add it here and it will be discussed and moved if necessary.

Processes

Because the document is a published W3C Recommendation, the process for making changes to the specification is more formal than for other documents.

Clarifying practices

Explanations, tips and clarifications usually go in the ActivityPub Primer. If you have a question about how something works in ActivityPub, open an issue and we can discuss adding it to the primer.

Correcting errors

To handle editorial errors like spelling or grammar mistakes, unclear or ambiguous text, factual errors in text, or syntax errors in examples, we have several steps.

  1. Make a GitHub issue.
  2. The editor will make a proposed erratum for review by the SocialCG.
  3. At a future SocialCG meeting, the group will review the proposed erratum and decide whether to accept it. Accepted errata are added to the errata page.
  4. The editor will incorporate the errata into the Editor's Draft.
  5. Errata are periodically deployed to the main ActivityPub specification.

Backwards-compatible changes

Backwards-compatible changes to ActivityPub include the following:

  • Adding new kinds of activities
  • Adding new kinds of objects
  • Making mandatory behaviours optional
  • Adding new properties to existing types

Backwards-compatible changes should usually be implemented as extensions to the specification. The Activity Streams 2.0 primer describes the extension architecture for ActivityStreams 2.0. The Extensions Policy describes the process for incorporating popular extensions into the main Activity Streams 2.0 context document.

Many extensions to ActivityPub are proposed and discussed as part of the Fediverse Enhancement Proposals process. This process is not formally part of the W3C, but it is a useful way to discuss and develop extensions to ActivityPub.

Some backwards-compatible changes cannot be implemented as extensions. They require a new version of the core document; see below for how that process works. Examples include:

  • Loosening behavioural requirements
  • Deprecating existing properties or behaviours

Non-backwards-compatible changes

Non-backwards-compatible changes to the specification require chartering a new working group at the W3C. It also requires making changes in dozens of ActivityPub implementations and tens of thousands of running servers. This is a lot of work and is not done lightly.

Examples of such changes:

  • Making optional features mandatory
  • Forbidding optional features
  • Deprecating features
  • Making

To propose a breaking change to ActivityPub, add a new issue. It will be discussed and flagged for the next version of ActivityPub.

About

http://w3c.github.io/activitypub/

License:Other


Languages

Language:HTML 99.3%Language:PureBasic 0.7%