httpsig.org is a site with one sole purpose, to advocate for the adoption of RFC 9421 HTTP Signatures. It has a "Libraries" tab that does exactly what it advertises, it lists a bunch of libraries for you to use so you don't have to roll your own.

If you want to integrate AP today, but you don't want to roll your own everything, where do you go? Who do you ask?

All I know is:

Do we even have a list sorted by language? This would be huge. What other AP frameworks do you know of?

Granted, I didn't do a lot of thinking and deep diving before I listed those two examples, but even then, that's 1 more example than is listed on https://activitypub.rocks, so I think I might be on to something here from a developer advocacy point of view.

If I were looking to integrate AP, one of the first conclusions I'd come to is that the protocol itself is fairly complex and a library or framework might help.

I don't think there is a list that plainly lists supported libraries by language.

all 12 comments

sorted by: hot top controversial new old
[–] 3 points 3 months ago (1 child)

What other AP frameworks do you know of?This one is used in Mitra and all my other projects: https://docs.rs/apx_sdk/latest/apx_sdk/There are many libraries, actually - the Delightful List has already been mentioned in this thread. But most of these libraries are not actively developed, or not used in any serious project.So I've been thinking of adding a curated list of libraries to the ActivityPub developer guide.

  • source
  • hideshow 1 child comment
  • [–] 3 points 3 months ago

    I'd add in projects like Emissary, Bonfire, or https://github.com/evanp/activitypub-bot . They can all be used to build Fediverse servers from building blocks.

    I think other parts might be more piecemeal. I thing HTTP Signature libraries are awesome. https://github.com/social-web-foundation/activitystrea.ms is an AS2 library that I've used a lot, even though it's weird.

    https://github.com/social-web-foundation/ap-components is a Web Components library for ActivityPub objects. Also kind of cool!

    I think a lot of of building a Fediverse server -- or client! -- is implementing behaviour, which an engine like Fedify can do, but most libraries aren't going to do for you.

  • source
  • [–] 3 points 3 months ago (3 children)

    I've written an ActivityStreams 2.0 vocabulary library in Rust: https://docs.rs/activitystreams-vocabulary/latest/activitystreams_vocabulary/

    Don't know of any external users for it yet, though. I mainly built it for use in my other projects, would love feedback from anyone that is using it.

  • source
  • hideshow 3 child comments
  • [–] 2 points 3 months ago (2 children)

    Nice. I'm going to keep an eye on it.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 3 months ago (1 child)

    @silverpill @0xllx0 @general Yes, indeed. I found this the other day, and have queued it up for inclusion at delightful.coding.social/deligI also found the ongoing work on the #ForgeFed implementation, which is mighty interesting. Great work. Also queued up, but for inclusion at delightful.coding.social/delig

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 3 months ago

    @smallcircles@social.coop :smile: thanks for the kind words. activityforge is still very much WIP. currently working on the web UI to get minimal user/repository interaction working. all of the backend plumbing is in place for Factory creation of user repos, user Follow, and repository Like activities. I'll put out a blog post / update here when it is ready for other folks to try out

  • source
  • parent
  • [–] 2 points 2 months ago

    @julian For Mastodon (Ruby) we use github.com/nomadium/linzer

  • source
  • [–] 2 points 3 months ago (1 child)

    @julian for the implementors of Go ActivityPub applications that need RFC9421 signatures, it's important to note that it's not FedBOX that provides the functionality, but two modules in the GoActivityPub library:* the client module[1] wraps the signing of activities. * the auth module[2] wraps the verification functionality.Also for lower level use, there's the underlying module being wrapped by GoActivityPub: dadrus/httpsig [3][1] github.com/go-ap/client[2] github.com/go-ap/auth[3] github.com/dadrus/httpsigFed@hongminhee@hollo.social

  • source
  • hideshow 1 child comment
  • [–] [S] 1 point 3 months ago (1 child)

    Tagging @j12t@j12t.social as this might be something worth discussing in relation to activitypub.rocks

  • source
  • hideshow 1 child comment