15 KiB
- ✔️ == added to live website at fediverse.party
- ✒️ == newly added to this page (added, not altered. Only @light to remove please)
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 Express: Modular ActivityPub implementation as Express.js middleware to easily add decentralization and federation to Node apps
-, Javascript
-
✔️ 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
-
✔️ 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
-
✔️ atoot: Library providing an easy way to create Mastodon API applications
MIT, Python
-
✔️ CommonsPub (site): Building blocks for creating multifunctional federated networks with ActivityPub.
AGPL-3.0, Elixir
-
✔️ corpus-activity-streams: Activity Streams 2.0 vocabulary data and alternative docs.
Unlicense license, Typescript
-
✔️ Express ActivityPub: A very simple reference implementation of an ActivityPub server using Express.js.
MIT, Javascript
-
✔️ Federation: Library to abstract social web federation protocols like ActivityPub, Diaspora and Matrix (see docs)
BSD-3-clause, Python
-
✔️ 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
-
✔️ Little Boxes: Tiny ActivityPub framework, both database and server agnostic
ISC, Python
-
✔️ Little Library: A digital give-a-book, take-a-book library for ebooks
AGPL-3.0, Javascript
-
✔️ Mastodon.py: Python wrapper for the Mastodon API.
MIT, Python
-
✔️ Pubstrate: ActivityStreams and ActivityPub library implementation for GNU Guile. Includes a full ActivityStreams library and most of an ActivityPub implementation.
GPL-3.0, Guile
-
✔️ Python ActivityPub: A general ActivityPub library
MPL-2.0, Python
Plugins
-
✔️ ActivityPub for Drupal (Lead dev): ActivityPub integration for Drupal 8 (see also lite version at Drupal)
GPL-2.0, PHP
-
✔️ Hugo-ActivityStreams: A Hugo module for use in Hugo, to generate ActivityStreams representations of posts. (mirror)
MIT, Go
-
✔️ Pterotype: WordPress plugin. Pterotype connects your blog to the Fediverse by giving it an ActivityPub feed
MIT, PHP
-
✔️ WordPress-ActivityPub: ActivityPub for Wordpress
MIT, PHP
-
✔️ WordPress-OStatus: An OStatus plugin for WordPress
MIT, PHP
-
✔️ XWiki Extension for ActivityPub (site, Fedi account): An implementation of the ActivityPub protocol for XWiki (see forum discussion).
LGPL-2.1, Java
Relays
-
✔️ Activity relay
AGPL-3.0, Python
-
✔️ Hash2Pub (Fedi account): A fully-decentralised DHT-based relay for global hashtag federation. See White paper, status update (Nov 2020)
AGPL-3.0, Haskell
-
✔️ Pub relay
AGPL-3.0, Crystal
-
✔️ Seattle relay
-, Python
-
✔️ Social relay: Public post relay for the diaspora* federated social network protocol.
AGPL-3.0, Python
Bridges
-
✔️ BirdSiteLIVE (Fedi account): An ethical bridge from Twitter
AGPL-3.0, C#
-
✔️ BridgyFed (site): Bridges the IndieWeb to federated social networks: ActivityPub, OStatus, etc.
Public Domain, Python
-
✔️ Fediverse-Action: Github Action that posts to Fediverse when code is changed.
ISC License, Javascript
-
✔️ feed2toot: Parses RSS feeds, identifies new posts and posts them on the Mastodon social network (using the Mastodon API).
MIT, Python
-
✔️ gemifedi: A Gemini frontend to the fediverse (specifically, Mastodon and Pleroma instances).
AGPL-3.0, Rust
-
✔️ Kazarma: A Matrix bridge to ActivityPub.
AGPL-3.0, Elixir
-
✔️ ligh7hau5: A Matrix to Fediverse / ActivityPub client / bridge. Also, some media proxying.
GPL-3.0, Javascript
-
✔️ Nautilus: A standalone service to deliver posts from your own website to ActivityPub followers.
Apache-2.0, PHP
-
✔️ 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
-
✔️ YouTube2PeerTube: A bot that mirrors YouTube channels to PeerTube channels as videos are released in a YouTube channel.
AGPL-3.0, Python
Utilities
-
✔️ Mastodon Bot Autoresponder (Fedi account): a bot that implements group functionality in Mastodon.
MIT, Python
-
✔️ OCR Bot (Fedi account): An OCR (Optical Character Recognition) bot for Mastodon (and compatible) instances
AGPL-3.0, Python
-
✔️ 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
-
✔️ tags-pub: Provides hashtag objects on the ActivityPub network.
Apache-2.0, Javascript
-
✔️ tootgroup.py: Emulate group accounts on Mastodon.
GPL-3.0, Python
-
✔️ yt2pt: A simple set of scripts to quickly import your youtube channel to peertube.
MIT, Javascript
Testing
-
✔️ activitypub-mock: A mock ActivityPub server to use in testing code
Apache-2.0, Javascript
-
✒️ dfk-ap (site): A small ActivityPub debugging server on Glitch
MIT, 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
Miscellaneous projects
This category is for any code project related to the Fediverse. They need not be directly development related.
Social sharing
-
✔️ Share Buttons: Share buttons that support dynamic input of Fediverse URLs and require no Javascript.
AGPL-3,0, PHP
-
✔️ Share Freedom: Firefox toolbar extension to share the current browser tab to the Fediverse
GPL-3.0, Javascript
Other projects
- ✒️ Mastodon Simplified Federation: Simplifies following and interacting with remote users on other Mastodon instances.
ISC, Javascript
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 (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 auth/authz
- ✒️ The did:orb Method (github): A DID Method for a fediverse of interconnected nodes and witnesses.
Content addressing
-
✒️ Content-addressible RDF: A scheme based on RDF allowing for data to be referred to by an identifier determined by the data itself (written by @pukkamustard of openEngiadina, specification now part of DREAM)
-
✒️ Encoding for Robust Immutable Storage (ERIS): ERIS is an encoding of arbitrary content into a set of uniformly sized, encrypted and content-addressed blocks as well as a short identifier (a URN) (written by @pukkamustard of openEngiadina, specification now part of DREAM).
Distributed Mutable Containers
- ✒️ Distributed Mutable Containers (DMC): Distributed data structures that can hold references to content while allowing replicas of the data structures to diverge and merge without conflict (developed by DREAM)