Fedify
ActivityPub server framework in TypeScript
Install / Use
/learn @fedify-dev/FedifyREADME
Fedify: an ActivityPub server framework
[!NOTE] Looking for a quick demo? Here it is: Fedify Demo on Deno Playground.
Fedify is a TypeScript library for building federated server apps powered by ActivityPub and other standards, so-called fediverse.[^1] It aims to eliminate the complexity and boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.
Currently, Fedify provides the following features out of the box:
- Type-safe objects for Activity Vocabulary (including some vendor-specific extensions)
- WebFinger client and server
- HTTP Signatures & HTTP Message Signatures
- Object Integrity Proofs & Linked Data Signatures
- Middlewares for handling webhooks
- NodeInfo protocol
- Enhanced interoperability with Mastodon and other popular fediverse software
- Integration with various web frameworks
- CLI toolchain for testing and debugging
If you want to know more about the project, please take a look at the following resources:
If you have any questions, suggestions, or feedback, please feel free to join our Matrix chat space or GitHub Discussions. Or tag #Fedify in the fediverse!
[^1]: You may already know some of the networks in the fediverse, such as Mastodon, Lemmy, Pixelfed, PeerTube, and so on.
Packages
Fedify is a monorepo that contains several packages, each of which provides different features. The main package is @fedify/fedify, which provides the core functionality of the framework. Other packages provide integrations with various web frameworks, database drivers, and other features. Here is the list of packages:
| Package | JSR | npm | Description | | ------------------------------------------------- | -------------------------------- | -------------------------------- | ---------------------------------------- | | @fedify/fedify | JSR | npm | The core framework of Fedify | | @fedify/cli | JSR | npm | CLI toolchain for testing and debugging | | @fedify/create | | npm | Create a new Fedify project | | @fedify/amqp | JSR | npm | AMQP/RabbitMQ driver | | @fedify/astro | JSR | npm | Astro integration | | @fedify/cfworkers | JSR | npm | Cloudflare Workers integration | | @fedify/debugger | [JSR][jsr:@fedify/debugger] | [npm][npm:@fedify/debugger] | Embedded ActivityPub debug dashboard | | @fedify/denokv | [JSR][jsr:@fedify/denokv] | | Deno KV integration | | @fedify/elysia | | [npm][npm:@fedify/elysia] | Elysia integration | | @fedify/express | [JSR][jsr:@fedify/express] | [npm][npm:@fedify/express] | Express integration | | @fedify/fastify | [JSR][jsr:@fedify/fastify] | [npm][npm:@fedify/fastify] | Fastify integration | | @fedify/fresh | [JSR][jsr:@fedify/fresh] | | Fresh integration | | @fedify/h3 | [JSR][jsr:@fedify/h3] | [npm][npm:@fedify/h3] | H3 integration | | @fedify/hono | [JSR][jsr:@fedify/hono] | [npm][npm:@fedify/hono] | Hono integration | | @fedify/init | [JSR][jsr:@fedify/init] | [npm][npm:@fedify/init] | Project initializer for Fedify | | @fedify/koa | [JSR][jsr:@fedify/koa] | [npm][npm:@fedify/koa] | Koa integration | | @fedify/lint | [JSR][jsr:@fedify/lint] | [npm][npm:@fedify/lint] | Linting utilities | | @fedify/nestjs | | [npm][npm:@fedify/nestjs] | NestJS integration | | @fedify/next | | [npm][npm:@fedify/next] | Next.js integration | | @fedify/mysql | [JSR][jsr:@fedify/mysql] | [npm][npm:@fedify/mysql] | MySQL/MariaDB driver | | @fedify/postgres | [JSR][jsr:@fedify/postgres] | [npm][npm:@fedify/postgres] | PostgreSQL driver | | @fedify/redis | [JSR][jsr:@fedify/redis] | [npm][npm:@fedify/redis] | Redis driver | | @fedify/relay | [JSR][jsr:@fedify/relay] | [npm][npm:@fedify/relay] | ActivityPub relay support | | @fedify/solidstart | [JSR][jsr:@fedify/solidstart] | [npm][npm:@fedify/solidstart] | SolidStart integration | | @fedify/sqlite | [JSR][jsr:@fedify/sqlite] | [npm][npm:@fedify/sqlite] | SQLite driver | | @fedify/sveltekit | [JSR][jsr:@fedify/sveltekit] | [npm][npm:@fedify/sveltekit] | SvelteKit integration | | @fedify/testing | [JSR][jsr:@fedify/testing] | [npm][npm:@fedify/testing] | Testing utilities | | @fedify/vocab | [JSR][jsr:@fedify/vocab] | [npm][npm:@fedify/vocab] | Activity Vocabulary library | | @fedify/vocab-runtime | [JSR][jsr:@fedify/vocab-runtime] | [npm][npm:@fedify/vocab-runtime] | Runtime library for code-generated vocab | | @fedify/vocab-tools | [JSR][jsr:@fedify/vocab-tools] | [npm][npm:@fedify/vocab-tools] | Code generation tools for Activity Vocab | | @fedify/webfinger | [JSR][jsr:@fedify/webfinger] | [npm][npm:@fedify/webfinger] | WebFinger client library for ActivityPub |
