hongminhee, to fediverse
@hongminhee@todon.eu avatar

As a first step towards adding Object Integrity Proofs (FEP-8b32) to #Fedify, I've made it support #Ed25519 keys. I've also enabled multiple keys to be associated with an actor. For example, if you look at the actor from the Fedify Example Blog (https://fedify-blog.deno.dev/users/fedify-example), you'll see that it has two public keys, one for RSA and one for Ed25519.

You can try it out in version 0.10.0-dev.190+4dffb89a.

https://jsr.io/@fedify/fedify@0.10.0-dev.190+4dffb89a

#fedidev #ActivityPub

hongminhee, to mastodon
@hongminhee@todon.eu avatar

Did you know? offers the markdown-it plugins for parsing -style mentions and hashtags syntax.

@fedify/markdown-it-mention: https://github.com/dahlia/markdown-it-mention
@fedify/markdown-it-hashtag: https://github.com/dahlia/markdown-it-hashtag

Check it out!

hongminhee, to fediverse
@hongminhee@todon.eu avatar

Version 0.9.0 of #Fedify, an #ActivityPub server framework, has been released! Here are the main changes:

• Added Tombstone, Hashtag, and Emoji classes.
• Added normalizeActorHandle() function to normalize an actor handle. This is needed when the domain of the actor handle is an IDN, or when the domain contains capital letters.
• Added an option to the sendActivity() function, excludeBaseUris, to exclude specified servers from sending activities. This can be used when you don't want to send activities to your own server.
• Added Context.parseUri(), a method to parse actor, object, inbox, and collection URIs.
• The time window for HTTP Signatures verification is now configurable.
• The @fedify/fedify/httpsig module has been renamed to . This is in preparation for implementing additional object integrity proofs other than HTTP Signatures.
• Improved interoperability with #Misskey.

#fedidev

https://github.com/dahlia/fedify/releases/tag/0.9.0

hongminhee, to fediverse
@hongminhee@todon.eu avatar

I actually started because I was working on a single-user implementation called 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.

hongminhee,
@hongminhee@todon.eu avatar

I'm actually resisting the temptation to rewrite all of my Hollo code. 😂

hongminhee,
@hongminhee@todon.eu avatar

For your information, hollo (홀로) means alone in Korean.

hongminhee, to fediverse
@hongminhee@todon.eu avatar

, an 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

https://github.com/dahlia/fedify/releases/tag/0.8.0

hongminhee, to node
@hongminhee@todon.eu avatar

#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.

https://unstable.fedify.dev/tutorial

#fedidev #ActivityPub

hongminhee, to typescript
@hongminhee@todon.eu avatar

Should I rewrite #Fedify in a programming language other than #TypeScript? 😅

https://todon.eu/@hongminhee/112359155272283786

hongminhee,
@hongminhee@todon.eu avatar

@thisismissem When you say ESM builds, do you mean do the Fedify package published to npm support ESM? If that's what you mean, then yes, it does.

I'm constantly improving the documentation, but it's not easy (especially writing in English as a non-native English speaker). 😅

thisismissem,
@thisismissem@hachyderm.io avatar

@hongminhee perhaps that's an area to get beginners involved? Documentation can help people learn the framework & find flaws/rough edges in it.

hongminhee, to fediverse
@hongminhee@todon.eu avatar

I'm working on adding a CLI toolchain to to help with debugging. The first feature I implemented is the ActivityPub object lookup.

Here's a demo.

The demo video on my terminal

mariusor,
@mariusor@metalhead.club avatar

@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.

hongminhee,
@hongminhee@todon.eu avatar

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.

Here's a demo of it.

https://unstable.fedify.dev/cli#fedify-inbox-ephemeral-inbox-server

#fedidev

The demo video of the

hongminhee, to fediverse
@hongminhee@todon.eu avatar

#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:

https://fedify.dev/

#fedidev

hongminhee, to fediverse
@hongminhee@todon.eu avatar

, an 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 for easier debugging

https://github.com/dahlia/fedify/releases/tag/0.7.0

hongminhee, to typescript
@hongminhee@todon.eu avatar

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. ✌️

https://unstable.fedify.dev/manual/log

#fedidev #TypeScript

thisismissem,
@thisismissem@hachyderm.io avatar

@hongminhee mildly curious why a well established package like pino (or winston) didn't meet your needs?

hongminhee, to fediverse
@hongminhee@todon.eu avatar

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.

#authorizedfetch #fedidev #ActivityPub

hongminhee, to fediverse
@hongminhee@todon.eu avatar

This document, edited by @snarfed.org@snarfed.org, is really helpful for implementing in practice.

https://swicg.github.io/activitypub-http-signature/

hongminhee, to fediverse
@hongminhee@todon.eu avatar

Version 0.6.0 of , an 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.

https://fedify.dev/changelog#version-0-6-0

hongminhee, to random
@hongminhee@todon.eu avatar

I've written a guide to integrating with web frameworks in the docs, explaining how to use the built-in and integration middleware, as well as the mechanisms for integrating with other frameworks.

https://unstable.fedify.dev/manual/integration/

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • ngwrru68w68
  • tester
  • magazineikmin
  • thenastyranch
  • rosin
  • khanakhh
  • InstantRegret
  • Youngstown
  • slotface
  • Durango
  • kavyap
  • DreamBathrooms
  • megavids
  • tacticalgear
  • osvaldo12
  • normalnudes
  • cubers
  • cisconetworking
  • everett
  • GTA5RPClips
  • ethstaker
  • Leos
  • provamag3
  • anitta
  • modclub
  • lostlight
  • All magazines