Fedify 2.0.0 is here!

This is the biggest release in Fedify's history. Here are the highlights:

  • Modular architecture — The monolithic @fedify/fedify package has been broken up into focused, independent packages: @fedify/vocab, @fedify/vocab-runtime, @fedify/vocab-tools, @fedify/webfinger, and more. Smaller bundles, cleaner imports, and the ability to extend ActivityPub with custom vocabulary types.
  • Real-time debug dashboard — The new @fedify/debugger package gives you a live dashboard at /__debug__/ showing all your federation traffic: traces, activity details, signature verification, and correlated logs. Just wrap your Federation object and you're done.
  • ActivityPub relay support — First-class relay support via @fedify/relay and the fedify relay CLI command. Supports both Mastodon-style and LitePub-style relay protocols (FEP-ae0c).
  • Ordered message delivery — The new orderingKey option solves the “zombie post” problem where a Delete arrives before its Create. Activities sharing the same key are guaranteed to be delivered in FIFO order.
  • Permanent failure handlingsetOutboxPermanentFailureHandler() lets you react when a remote inbox returns 404 or 410, so you can clean up unreachable followers instead of retrying forever.

Other changes include content negotiation at the middleware level, @fedify/lint for shared linting rules, @fedify/create for quick project scaffolding, CLI config files, native Node.js/Bun CLI support, and many bug fixes.

This release includes significant contributions from Korea's OSSCA participants. Huge thanks to everyone involved!

This is a major release with breaking changes—please check the migration guide before upgrading.

Full release notes: https://github.com/fedify-dev/fedify/discussions/580

@fedifyFedify: ActivityPub server framework
Modular architecture — The monolithic @fedify/fedify package has been broken up into focused, independent packages:
woo! that's excellent news! i had a handful of (not currently maintained or used) libraries i wrote myself (codeberg.org/outpost/ts-libs) because all the alternatives either did too much (fedify before this) or weren't that great (the existing http signature library does not do typescript from what i can tell)

having these building blocks without the opinionated framework on top is a great step in enabling flexibility in system design without making everyone reinvent the wheel and get it wrong, excited to see this!
0

If you have a fediverse account, you can quote this note from your own instance. Search https://not-brain.d.on-t.work/notes/aj196kl2nrxznyby on your instance and quote it. (Note that quoting is not supported in Mastodon.)