| delightful-contributors.md | ||
| LICENSE | ||
| README.md | ||
delightful activitypub development 
A curated list of resources for developers creating software based on the W3C ActivityPub family of related protocols. See also 💎 delightful fediverse experience.
🌱 Help us. Garden this list. Suggest entries and make refinements. Pass the URL to others. Tend in particular to all these furtile plots where fresh fedi may blossom, indicated by an emoji:
- ⚗️ indicates fediverse innovation areas, are not marked unmaintained.
- 🍀 looking to be rescued or forked by new maintainer custodians.
- 👻 unmaintained and inactive for over a year. Will you revitalize them?
Contents
Frameworks
Application development
-
⚗️ ActivityPods (site, fedi): A framework to create ActivityPub-compatible apps with all data stored in a single place: your Solid Pod.
Apache-2.0, Javascript -
⚗️ Bonfire (site, fedi): An extensible framework with a big focus on customisation and flexibility. Can be used to build new federated apps while focusing on a specific use case rather than reimplementing lots of boilerplate
AGPL-3.0, Elixir -
⚗️ Bovine (site, fedi): A modular fediverse server that supports ActivityPub.
MIT, Python -
⚗️ Emissary (site, fedi): Social Web Toolkit and standalone Fediverse server designed for end users, app creators, and hosting admins that offers powerful new ways to join the social web.
AGPL-3.0, Go -
⚗️ Fedify (site, fedi): A TypeScript library for building federated server apps powered by ActivityPub and other standards.
MIT, TypeScript -
⚗️ Go ActivityPub (site, fedi): A batteries included suite of modules for making the creation of ActivityPub applications easier for Go developers.
MIT, Go -
⚗️ SemApps (site): A toolbox to help you easily build semantic web applications.
Apache-2.0, JavaScript
Bot development
-
Botkit (site, fedi): A framework for creating ActivityPub bots, powered by Fedify.
AGPL-3.0, Typescript -
fedi bot club (site): Framework for creating bots scripted in Lua or Fennel. Works with Mastodon and GoToSocial.
MIT, Lua
Libraries
ActivityPub implementations
-
activity: ActivityStreams & ActivityPub library, forked from go-fed and maintained by GoToSocial devs.
BSD-3-clause, Go -
ActivityPhp (site, fedi): A PHP implementation of ActivityPub protocol based upon the ActivityStreams 2.0 data format.
MIT, PHP -
ActivityPub: Generic library to federate an app with ActivityPub (uses a queue for incoming/outgoing activities and adapter modules for tight integration).
AGPL-3.0, Elixir -
ActivityPub-Federation: A high-level framework for ActivityPub federation in Rust, extracted from Lemmy.
AGPL-3.0, Rust -
ActivityPub Kotlin: Kotlin implementation of ActivityPub.
Apache-2.0, Kotlin -
Activity Servist: An ActivityPub library for Common Lisp.
AGPL-3.0, Common Lisp -
Bovine (PyPI, ReadTheDocs, fedi): Library for building Fediverse applications.
MIT, Python -
Express ActivityPub: A very simple reference implementation of an ActivityPub server using Express.js.
MIT, Javascript -
Federails: An ActivityPub engine for Ruby on Rails.
MIT, Ruby -
go-activitypub: An opionated (and incomplete) ActivityPub service implementation in Go.
ISC, Go -
go-mastodon: Mastodon client for Golang.
MIT, Go -
Hannibal (fedi): ActivityPub library for Golang.
Apache-2.0, Go -
minipub (site): Minimal ActivityPub server for posting federated podcast comments.
MIT, Typescript -
one-page-pub (fedi): A compliant, robust ActivityPub server in one page.
Apache-2.0, Javascript -
Pyfed: A robust, type-safe ActivityPub library for Python. Maintained by Funkwhale.
GPL-3.0, Python -
rdf-pub (site, fedi): An ActivityPub server, that is not limited to the ActivityStreams vocabulary, but supports RDF per se.
EUPL, Java
ActivityStreams implementations
-
ActivityStreams: A .NET implementation of the Activity Streams vocabulary in the form of classes that can be serialized using System.Text.Json
MIT, C# -
activitystreams (fedi): A hand-crafted implementation of the Activity Streams 2.0 specification in Go, especially suitable for projects implementing ActivityPub.
AGPL-3.0, Go -
apmodel (fedi): An ActivityStreams 2.0 and NodeInfo 2.0/2.1 implementation for Python.
MIT, Python
ActivityPub signatures
- apsig (fedi): Implements the creation/verification of signatures for HTTP Signatures (draft-cavage-http-signatures-12), Linked Data Signatures, and Object Integrity Proofs (FEP-8b32).
MIT, Python
Webfinger implementations
- Digit: Simple API for building WebFinger resource responses.
Apache-2.0, Go
Mastodon API
-
BigBone: A fork of Mastodon4J, a Mastodon client library for Java and Kotlin.
MIT, Kotlin -
Mastodon.py: Python wrapper for the Mastodon API.
MIT, Python -
masto.js: Mastodon API client for Javascript .
MIT, Javascript -
Masto.Net: A C# Library for Mastodon.
MIT, C# -
Megalodon: Mastodon, Pleroma and Misskey API client library for node.js and browser.
MIT, Typescript -
Megalodon-rs: Mastodon and Pleroma API client library for Rust.
Apache-2.0, Rust -
rtoot (site, fedi): R package to interact with the mastodon API.
MIT, R -
Steampipe Mastodon Plugin: Use SQL to instantly query Mastodon timelines and more. Open source CLI to Steampipe SaaS. No DB required.
Apache-2.0, Go -
TootSDK: Cross-platform Swift library for the Mastodon API.
BSD-3-Clause, Swift
Lemmy API
- Pythörhead: A python library for interacting with Lemmy.
AGPL-3.0, Python
Libraries unmaintained
-
👻 ActivityKit: An attempt to build a spec-compliant ActivityPub core library.
MIT, Typescript -
👻 ActivityPubClient: An ActivityPub client library developed for Kazarma, a Matrix bridge.
LGPL-3.0, Elixir
*👻 activityPub-core: An attempt to build a spec-compliant ActivityPub core library. MIT, Typescript
-
👻 ActivityPub Express: Modular ActivityPub implementation as Express.js middleware to easily add decentralization and federation to Node apps
MIT, Javascript -
👻 ActivityPub Models - "ActivityPub JS/TS models with docs
TypeScript, - -
👻 ActivityPub HTTP Signatures (fedi): A library for creating, parsing, and verifying HTTP signature headers, as per the Signing HTTP Messages draft 80 specification.
ISC, Javascript -
👻 ActivityPub-PHP (fedi): A PHP implementation of the ActivityPub protocol (used in Pterotype plugin).
MIT, PHP -
👻 ActivityPub Starter Kit: A tiny, single user ActivityPub server, meant to be a starting point for your own ActivityPub projects.
MIT, Typescript -
👻 activityPub4j: W3C ActivityPub and ActivityStreams implementation in Java using Spring Boot.
Apache-2.0, Java -
👻 ActivityHub.Net: A C# .NET Implementation of ActivityPub Entity Types.
-, C# -
👻 ActivityPub.Net: A parser for ActivityPub.
MIT, C# -
👻 ActivityServe: A very light ActivityPub library in Go (used to power pherephone)
MIT, Go -
👻 ActivityStream (fedi): Simple ActivityStream handling for Go.
Apache-2.0, Go -
👻 ActivityStreams (fedi): A set of Traits and Types that make up the ActivityStreams and ActivityPub specifications.
GPL-3.0, Rust -
👻 ActivityStreams: Full ActivityStreams 1.0 and 2.0 reference implementation in Java.
Apache-2.0, Java -
👻 activityStreams2: ActivityStreams 2.0 library for Node.js and TypeScript.
Apache-2.0, Typescript -
👻 ap-groups: Groups for the Fediverse.
MIT, Typescript -
👻 atoot: Library providing an easy way to create Mastodon API applications
MIT, Python -
👻 Chatter Net Client: A decentralized semantic web built atop self-sovereign identity. Client-side.
MIT, Typescript -
👻 Chatter Net Server: A decentralized semantic web built atop self-sovereign identity. Server-side.
MIT, Rust -
👻 Clovis: Implementation of ActivityPub in Scala. (Hobby project included here for reference only.)
AGPL-3.0, Scala -
👻 corpus-activity-streams: Activity Streams 2.0 vocabulary data and alternative docs.
Unlicense license, Typescript -
👻 DarkLink.Web.ActivityPub: A framework (kinda) to work with ActivityPub with .NET
MIT, C# -
👻 Dialtone: An "un-imagined" ActivityPub service, to address emergent use cases. Multi-tenant, multi-personality, multi-ownership.
Apache-2.0 / MIT, Rust -
👻 Disboard: Collection of fediverse API wrapper libraries for .NET Standard 2.0.
MIT, C# -
👻 Drastic.Mastodon: A fork of Masto.NET, a C#/.NET Library for accessing Mastodon.
MIT, C# -
👻 Federated Digital Commerce Template: Accelerate federated digital commercial product development with this FastAPI/ActivityPub base project generator.
MIT, Python -
👻 Federation: Library to abstract social web federation protocols like ActivityPub, Diaspora and Matrix (see docs)
BSD-3-clause, Python -
👻 Fedi: ActivityStreams and ActivityPub in Elixir. Based on a a literal translation from the go-fed package.
Apache-2.0, Elixir -
👻 FediKit: Building Blocks for Fediverse.
MIT, TypeScript -
👻 fedi-games (site): A simple framework to build games for the Fediverse using the ActivityPub protocol.
AGPL-3.0, Go -
👻 fedi-inbox (fedi): Basic Fediverse Inbox. Writing software is hard and time consuming. What's the most basic practical system that lets us connect to the fediverse?
Public domain, Javascript -
👻 go-fed apcore (site, fedi): A powerful single server ActivityPub framework for performant Fediverse applications.
AGPL-3.0, Go -
👻 hare-activity (fedi): Hare package provides a extensible implementation of the ActivityStreams 2.0 format and the ActivityPub protocols.
MPL, Hare -
👻 Incognitum: A .NET Standard library for Mastodon.
MIT, C# -
👻 Lemmy-Swift-Client (site): A Swift client for Lemmy.
MIT, Swift -
👻 LittleActivityPub: A minimal and incomplete implementation of an ActivityPub server, for didactic purposes.
MIT, PHP -
👻 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 -
👻 Mod.ActivityPub: ActivityPub Server services for ASP.NET
-, C# -
👻 NActivityPub: ActivityPub & ActivityStreams support library for Common Lisp.
BSD-3-Clause, Lisp -
👻 ProboscisKit: A lightweight Mastodon Swift framework, made for iOS and macOS.
CC BY-SA 4.0, Swift -
👻 Pub: A tiny ActivityPub to Mastodon bridge.
BSD-3-Clause, Go -
👻 Pubstrate: ActivityStreams and ActivityPub library for GNU Guile. Includes a full ActivityStreams library and most of an ActivityPub implementation.
GPL-3.0, Guile -
👻 pynodeinfo: NodeInfo library implemented with poetry.
AGPL-3.0, Python -
👻 Python ActivityPub: A general ActivityPub library
MPL-2.0, Python -
👻 rustypub (site, fedi): Early beginnings of ActivityPub library in Rust (started August 2022, see announcement).
Apache-2.0, Rust -
👻 Sigh (fedi): HTTP signatures for ActivityPub in Rust.
MIT, Rust -
👻 SofaPub: A minimally functional ActivityPub Server.
MIT, Rust -
👻 The Old Dog and Duck: A Clojure library designed to implement the ActivityPub protocol.
GPL-2.0, Clojure -
👻 Toki: A C# ActivityPub Fediverse-compatible server designed mostly for small-ish instances.
AGPL-3.0, C#
Utilities
-
ap-components (fedi): A collection of Web Components for showing ActivityPub objects in a browser.
Apache-2.0, Javascript -
apkit (site, fedi): A modern, fast, and powerful toolkit for building ActivityPub-based applications with Python, based on standard Python type hints.
MIT, Python -
apub2gmi (fedi): Convert an ActivityPub archive full of images to a bunch of Gemini files.
MIT, Python -
atp2rss: Convert ATProto and ActivityPub subscription lists to RSS.
GPL-2.0, Python -
Federator: Basic server/bridge implementation to connect non-ActivityPub services to the Fediverse (WIP, help wanted)
GPL-3.0, PHP -
FedIAM (fedi): A research project which aims to offer login and access control based on open identities using Fediverse and IndieWeb protocols.
Apache-2.0, Go -
Fedinspect (fedi): A desktop application for analysing fediverse server configurations and features.
MIT, Python. -
Granary (site): The social web translator. Fetches and converts data between social networks, HTML and JSON with microformats2, ActivityStreams, Atom, JSON Feed, and more.
Public domain, Python -
Minoru's Fediverse Crawler (site, fedi): Crawls the Fediverse and produces a list of instances that are alive.
AGPL-3.0, Rust -
⚗️ Mentions United: Client-side retrieving and rendering of interactions from the fediverse.
MIT, Javascript -
Sherlock (fedi): Library that inspects a URL for any and all available metadata, pulling from whatever metadata formats are available, and returning it as an ActivityStreams 2.0 document.
Apache-2.0, Go
Mastodon tools
-
Masto-collab (site): Allows for drafting Mastodon posts using wikis as a collaboration platform.
AGPL-3.0, Rust -
Splinter (site, fedi): Turns long articles into Mastodon posts and publishes them for you automatically.
GPL-3.0, Javascript -
tootgroup.py: Emulate group accounts on Mastodon.
GPL-3.0, Python -
Unbooster: A simple script to un-boost statuses that were boosted more than one week ago.
MIT, Python
Utilities unmaintained
-
👻 ActivityPubSchema: JSON Schema definition of the ActivityStreams and ActivityPub specifications.
MIT, Javascript -
👻 activity-streams-validator (fedi): Activity Streams validation for Typescript.
MIT, Typescript -
👻 ap (fedi): Command-line client for the ActivityPub API.
GPL-3.0, Python -
👻 bots-rodeo (fedi): A bots-only server framework for ActivityPub.
AGPL-3.0, Javascript -
👻 MastoBot (fedi): NodeJS Mastodon client library with an eye to making bot development fun & easy.
ISC License, Javascript -
👻 MastodonKit (site): A Swift Framework that wraps Mastodon's API.
MIT, Swift -
👻 M-OAuth(site) (fedi): Access token generator for Akkoma, Pleroma, Mastodon APIs.
GPL-3.0, TypeScript -
👻 n8n-nodes-mastodon: A community node that lets you use Mastodon in your n8n automation workflows.
MIT, Typescript -
👻 toot-volute: An interpreter for Mastodon posts.
GPL-3.0, Javascript
Testing
-
activitypub-actor-tester: An HTML element that renders a tool for testing an ActivityPub Actor. Using 'activitypub-testing' CLI.
AGPL-3.0, Typescript -
ActivityPub Fuzzer (site): Test against simulated real-world Fediverse traffic in a local development environment.
AGPL-3.0, Typescript -
activitypub-mock: A mock ActivityPub server to use in testing code
Apache-2.0, Javascript -
activitypub-testing (site): Tools for testing implementations of ActivityPub, a decentralized social networking protocol.
AGPL-3.0, Javascript -
APDebug (fedi): A set of tools to debug ActivityPub requests. You can inspect requests, see the flow in real time, run arbitrary requests with HTTP signature handled for you.
AGPL-3.0, PHP -
dfk-ap (site): A small ActivityPub debugging server on Glitch
MIT, Javascript -
FediDB (site, fedi): 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
AGPL-3.0, PHP -
rocks-testsuite (fedi): A rewrite of the activitypub.rocks test suite in Python.
GPL-3.0, Python -
Sandcastles: An integration and federation test sandbox for developers of fediverse software.
MPL-2.0, Shell -
Test Suite: An unofficial partially-automated ActivityPub test suite
AGPL-3.0, Go
Forge federation
This category is dedicated to an important new direction on the Fediverse, where Software Development itself becomes federated. Currently the focus is on projects and protocols that allow for the federation of code forges (such as Gitea and Gitlab).
Forge libraries
-
gofff (fedi): Reference implementation of Friendly Forge Format in Golang.
AGPL-3.0, Go -
pyfff (fedi): Reference implementation of Friendly Forge Format in Python.
AGPL-3.0, Python
Forge tools
-
ForgeFlux StarChart: Software forge spider. Crawler that maps and advertises self-hosted code forge instances.
AGPL-3.0, Rust -
giteacat: Python script that allows sign up to a Gitea instance to all local users of a Mastodon server.
-, Python
Forge plugins
- ForgeFed extension for Pagure: An extension for the Pagure forge that adds ForgeFed federation to Pagure instances.
GPL-2.0, Python
Miscellaneous projects
This category is for any code project related to the Fediverse. They need not be directly development related.
Search
- Sepia Search (site): A search engine of PeerTube videos and channels Developed by Framasoft
AGPL-3.0, Typescript
Social sharing
-
Share Buttons: Share buttons that support dynamic input of Fediverse URLs and require no Javascript.
AGPL-3,0, PHP -
Fedishare: Firefox toolbar extension to share the current browser tab on the Fediverse
GPL-3.0, Typescript
Other projects
- Mastodon Simplified Federation: FireFox browser plugin, that simplifies following and interacting with remote users on other Mastodon instances.
ISC, Javascript
Commons gardening
🍀 This curated list is carefully gardened by volunteers working in spare time. We are working in commons and so can you. Help make this list better, and become a Gardener of the fediverse.
If you have questions or feedback regarding this list, then please create an Issue in our tracker, and optionally @mention one or more of our maintainers:
Contributors
We are proud to introduce you to some of our delightful gardeners. Thank you for your kind contributions. Gardening, and not on this list? Please add yourself if you are missing.
Special thanks goes to NLnet who supported the revival and repositioning of this list, when maintenance burdens and lack of volunteer time saw it ever more lagging behind.
License
This delightful commons list evolves under Social coding commons.