delightful-fediverse-apps/Watchlist-for-ActivityPub-developer-resources.md
2020-08-30 22:12:05 +00:00

9 KiB

Contents

Developer tools

Libraries

  • ✔️ ActivityPhp (site, Fedi account): A PHP implementation of ActivityPub protocol based upon the ActivityStreams 2.0 data format. MIT, PHP

  • ✔️ ActivityPub-PHP (Fedi account): A PHP implementation of the ActivityPub protocol (used in Pterotype plugin). MIT, PHP

  • ✔️ activityPub4j: W3C ActivityPub and ActivityStreams implementation in Java using Spring Boot. ?, Java (no license, see: issue)

  • ✔️ ActivityStreams: Full ActivityStreams 1.0 and 2.0 reference implementation in Java. Apache-2.0, Java

  • ✔️ CommonsPub (site): Building blocks for creating multifunctional federated networks with ActivityPub. AGPL-3.0, Elixir

  • ✔️ Express ActivityPub: A very simple reference implementation of an ActivityPub server using Express.js. MIT, Javascript

  • ✔️ astreams (Fedi account): A hand-crafted implementation of the Activity Streams 2.0 specification in Go, especially suitable for projects implementing ActivityPub. AGPL-3.0, Go

  • ✔️ Golang ActivityPub (Fedi account): Libraries for using ActivityPub in the Go language. MIT, Go

  • ✔️ go-fed activity (site, Fedi account): Full ActivityStreams & ActivityPub implementation in Golang. Extensions can be easily added by design-time code generation from JSON-LD schema's (also supports ForgeFed this way, by default). BSD-3-clause, Go

  • ✔️ go-fed apcore (site, Fedi account): A powerful single server ActivityPub framework for performant Fediverse applications. AGPL-3.0, Go

  • ✔️ Pubstrate: ActivityStreams and ActivityPub library implementation for GNU Guile. Includes a full ActivityStreams library and most of an ActivityPub implementation. GPL-3.0, Guile

  • ✔️ Federation: Library to abstract social web federation protocols like ActivityPub and diaspora BSD-3-clause, Python

  • ✔️ Little Boxes: Tiny ActivityPub framework, both database and server agnostic ISC, Python

  • ✔️ Python ActivityPub: A general ActivityPub library MPL-2.0, Python

  • ✔️ ActivityPub Express: Modular ActivityPub implementation as Express.js middleware to easily add decentralization and federation to Node apps -, Javascript

  • ✔️ Mastodon.py: Python wrapper for the Mastodon API. MIT, Python

  • ✔️ atoot: Library providing an easy way to create Mastodon API applications MIT, Python

  • ✔️ Little Library: A digital give-a-book, take-a-book library for ebooks AGPL-3.0, Javascript

Plugins

Bridges

  • ✔️ BridgyFed (site): Bridges the IndieWeb to federated social networks: ActivityPub, OStatus, etc. Public Domain, Python

  • ✔️ feed2toot: Parses RSS feeds, identifies new posts and posts them on the Mastodon social network (using the Mastodon API). MIT, Python

  • ✔️ RSS-to-ActivityPub Converter: Convert any RSS feed to an ActivityPub actor that can be followed by users on ActivityPub-compliant social networks like Mastodon. MIT, Javascript

  • ✔️ Nautilus: A standalone service to deliver posts from your own website to ActivityPub followers. Apache-2.0, PHP

Utilities

  • tags-pub: Provides hashtag objects on the ActivityPub network. Apache-2.0, Javascript

  • ✔️ Pherephone: An ActivityPub server that reblogs all the statuses of certain actors. You set it up to follow a few accounts and it announces everything they post. AGPL-3.0, Go

Testing

  • ✔️ activitypub-mock: A mock ActivityPub server to use in testing code Apache-2.0, Javascript

  • ✔️ FedidB: A suite of tools for AP devs to help make it easier to test and validate your implementation with existing implementations like Mastodon, PeerTube, Pixelfed and Pleroma -, -

  • ✔️ Test Suite: An unofficial partially-automated ActivityPub test suite AGPL-3.0, Go

Reference material

Protocol specifications

  • ✔️ ForgeFed, formerly GitPub (site, Fedi account): A set of extensions to ActivityPub for federation between code forges (i.e. git hosting sites like GitLab, Gogs, Gitea, etc. Reference implementation is Vervis). CC0-1.0

  • ✔️ LitePub (site, Fedi account): A set of extensions to AP, being developed by devs from Pleroma and Mastodon (status: for the most part litepub group folded back into SocialCG, see: issue)

  • ✔️ NodeInfo2: An effort to create a standardized way of exposing metadata about a server. Helps expose ownership and organization details, usage statistics and protocol capabilities. CC0-1.0

API documentation

Tutorials

Getting started

ActivityPub server-to-server (S2S)

ActivityPub client-to-server (C2S)

WebFinger

Security

NodeInfo

Research & Development

Datashards

Object capabilities

Federated authentication

Content addressing

Peer-to-peer networking