NodeJS AP library

Hi folks, I’ve been working on a general NodeJS library for ActivityPub. It’s not ready for production but there is a basic example which just about works. I haven’t tested it federating with any real servers or other services yet, nor integrated it into any significantly sized project.

If anybody is willing to lend a hand, or just raise some issues about things like unclear documentation, I’d appreciate it.

2 Likes

Nice project @birdsofpraise !
I haven’t had time to post about this here, but I’m working on a project called SemApps, and we are also implementing an ActivityPub library in NodeJS. It’s based on microservices, using the Moleculer library. I don’t know if we will have the opportunity to work together but I guess it’s important to keep an eye on each others’ projects :wink:
The ActivityPub package is here: https://github.com/assemblee-virtuelle/semapps/tree/master/src/middleware/packages/activitypub

Also redaktor /me is working on a generic ActivityPub server …
It will take a while cause we want to support the complete C2S API with the S.
It is written in TypeScript and NestJS and Dojo help us.

I hope all of us NodeJS people will have the opportunity to work together in the future …

Great, sounds like there’s more activity in this area than I had previously thought! I will have to check out these projects

I’m also working in this area. activitypub-express is a modular, customizable implementation as ExpressJS middleware functions.

It will be complete S2S and C2S APIs, but with no front-end. It is intended as a reusable library to simplify creating fediverse apps or adding the standard to an existing project. I’m including a MongoDB denormalized storage model, but planning on making the model easily interchangeable. I’ve based it on code from gup.pe, my simple social groups fedi app that is in production now.

FWIW I have another project going. I’m using TypeScript on the back end to manage the type complexity, and wrote a library of all the AP/AS types along with resolvers to handle all the different types of identifiers it supports. I’m also building a UI that uses the C2S interface on the server. Storage is CouchDB, message queueing uses Redis.

The front-end is written in Vue/Nuxt, and follows a Diaspora/Facebook post-oriented paradigm.

Would love to share ideas and implementation.

Good to see so many people developing with node!

I’ve started another topic here to try and get a bit more of a structured discussion going in regards to sharing code: