The max_id, since_id, and min_id parameters in #Mastodon's Timeline API assume that the post ID is a sortable number. (Is this correct?) #Hollo, the #ActivityPub implementation I'm building, uses UUIDs for post IDs internally, so I'm stuck on how to implement a Mastodon-compatible API.
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
#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.
@hongminhee I think JS/TS really is a very widely understood language. My take is that your limited energy is better spent documenting, improving and maintaining a single system, and making that very accessible.
I look at Fedify as an independent "reference implementation" and I have no trouble checking its behavior and source even if I'm building something in a different language/framework.
@hongminhee I like the part of "spinning up a temporary ActivityPub server", but how does that work? The key needs to be reachable from the internet, so DNS and such must be already set up.
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 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:
#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
#Fractal, a #Matrix client app for #GNOME, is pleasing to the eye and very convenient to use! Maybe it's because it's written in #Rust but it doesn't crash at all.
@mo8it@hongminhee no, I don't find a command to start it from commandline - doesn't matter much - I will try some weeks later - the version is from January
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.