I actually started #Fedify because I was working on a single-user #ActivityPub implementation called #Hollo and felt like I needed some groundwork, and now that I'm somewhat done yak shaving, I'm back to working on Hollo, although I still jump back and forth between Hollo development and Fedify when I think of features I need for Fedify.
#Fedify, an #ActivityPub server framework, has released version 0.8.0! Here are the highlights of this version:
• fedify lookup: a command to look up any ActivityStreams objects (including actors); see also https://todon.eu/@hongminhee/112341925069749583
• fedify inbox: a command to spin up an ephemeral ActivityPub server so that you can debug and test the activities you send; see also https://todon.eu/@hongminhee/112354353470490915
• followers collection synchronization mechanism
• improved overall performance
• fixed several bugs
I've been thinking about restarting work on #Tapir. Development stopped because I hit a wall with the database system. Writing Tapir in #Deno was a long sequence of yak-shaving without much payoff; most of my dev time was spent implementing JSON-LD, Web Signatures, and a database layer that should have been a library if Deno had better Node compatibility at the time.
It's been a while, and the Deno ecosystem has improved a lot. Drizzle looks promising as an ORM layer (better than my hacked-together one), and more Fediverse projects in Deno are popping up (#Fedify looks really cool!). But I'm rethinking Deno.
There were 3 things that drew me to Deno initially:
Ease of install (just run the app from a URL)
Cloud platforms (Deno Deploy w/ Deno KV)
JavaScript (I know the language, and it has a big ecosystem)
#Fedify's tutorial, which previously assumed you were using #Deno, can now be followed using #Node.js and #Bun! (What is Fedify? It's an ActivityPub server framework.)
However, they are written for Fedify 0.8.0, which hasn't been released yet. You can test it with the pre-release version, 0.8.0-dev.164, though.
The fedify inbox command, which will be shipped in the next #Fedify release, is a tool that creates an ephemeral #ActivityPub server so that you can debug and test the activities you send.
#Fedify, an #ActivityPub server framework, has released version 0.7.0! Here are the key changes in this version:
• Access control for actors, collections, and more via authorized fetch (i.e., secure mode)
• Generalized object dispatcher
• Logging with #LogTape for easier debugging
#Fedify is an #ActivityPub server framework in #TypeScript & #JavaScript. It aims to eliminate the complexity and redundant boilerplate code when building a federated server app, so that you can focus on your business logic and user experience.
The key features it provides currently are:
• Type-safe objects for Activity Vocabulary (including some vendor-specific extensions)
• #WebFinger client and server
• HTTP Signatures
• Middleware for handling webhooks
• #NodeInfo protocol
If you're curious, take a look at the Fedify website! There's comprehensive docs, a demo, a tutorial, example code, and more:
My short yak shaving journey is over. Lacking a decent logging library, so I created #LogTape and started logging in #Fedify using it, which should make inbox/outbox debugging easier starting with Fedify 0.7.0. ✌️
Today I'm working on putting authorized fetch (aka secure mode) into #Fedify. The protocol implementation is complete, it's just a matter of polishing the API and docs. It appears that it will be finalized sometime tomorrow. Authorized fetch will be one of the major improvements in Fedify 0.7.0.
Version 0.6.0 of #Fedify, an #ActivityPub server framework, has been released! Here are the major changes:
• The docs website has been migrated from Lume to VitePress, is more beautiful, and is finally searchable with ^K/⌘K!
• To improve interoperability with servers that have authorized fetch turned on, also known as secure mode, Fedify has changed to use the authenticated document loader by default in as many cases as possible.
• New @fedify/fedify/x/hono module to help integrate with the Hono web framework has been introduced.
• Added small fixes to help with debugging activity delivery.
I've written a guide to integrating with web frameworks in the #Fedify docs, explaining how to use the built-in #Fresh and #Hono integration middleware, as well as the mechanisms for integrating with other frameworks.
I'm writing a section in the #Fedify docs on the pragmatic side of the Activity Vocabulary APIs, and I want to list how each API is used and how it is displayed in the major implementations.
What am I doing this weekend? Learning #TypeScript, #Deno, and @hongminhee's #Fedify all at the same time, for a project which I'm hoping will be used by many people.
I'm not sure if it's new or if I'm just really bad at paying attention, but I just learned about it and I'm so excited about #fedify: https://unstable.fedify.dev/
I think systems that are shaped like fedify are one of the key things needed to really open experimentation and exploration of the possibilities that the fediverse affords.
#Fedify finally has a step-by-step tutorial! It's perfectly fine if you're not familiar with the #ActivityPub protocol or the #Deno runtime. Here's the link for beta readers:
#Fedify 0.4.0 was just released! Here are the highlights of the changes:
• Added a step-by-step tutorial.
• Integration with the Fresh framework has been made much simpler.
• Added authenticated document loaders: within personal inbox listeners, Context.documentLoader is now automatically authenticated.
• Improved the ergonomics of the vocabulary API.