Does there exist node software that implements only the ActivityPub protocol?
In some decentralized networks, protocol stuff is taken care of by one piece of software which then exposes an interface for application specific code to use. I’m only some days into an in-depth exploration of AP, but wondering if any such domain-agnostic software exists here.
I created and co-maintain the ActivityPub Developer Resources watchlist, together with @light and @strypey. This watchlist is a companion to the ActivityPub Application Watchlist and both of these wiki pages are staging areas for the Fediverse Party website, designed and maintained by @light. It has a list of AP libraries, among others. I think these watchlists are currently the most complete directories of what’s out there (and greatly appreciate anyone point out more resources that are missing).
Very good question. I would calling it “building blocks”.
Pretty much of this exist in the node-land and I don’t know where to start.
Let us please only investigate in terms of the protocol and not care about monolithic applications …
First, I would like to highlight that ActivityPub is JSON-LD based, so we can use any generic JSON-LD library and use it for expanding or normalizing.
This might not be how reality is Guide for new ActivityPub implementers - #3 by lanodan ff.
but let’s just be conformant … The above post is about a huge guide which nedjo wrote for new AP-implementors and you will find a ton of helpful stuff there.
node software that implements only the ActivityPub protocol
Most obvious is probably the server, have fun with
This is probably the node flagship of Will Murphy of immers.space …
And there are several others depending on the complexity:
Darius Kazemi, Keynote speaker of AP Conf wrote
and personally I took some venture capital (after 3 years seeking for public funding), so our statically typed AP node server with ORM etc. will be closed-source
However, I am also building an Open Source TypeScript server based on nestjs which will become
About Client To Server There seem to be some really nice generic JS clients but I don’t speak japanese - if anyone speaks japanese+english, please reach out
What I am doing is a set of 138 themable widgets / webcomponents (TypeScript, dojo.io) but this is all Work In Progress:
Nice, but written in elixir is
Some other node things come to my mind but depend on the use case.
Hello @weex
If by “node”, you mean “NodeJS”, SemApps is a toolbox to create applications which support web semantic standards, including ActivityPub. It is based on the microservice-based Moleculer.js framework.
Since the data are really semantic (stored in Jena Fuseki triple store), it is easy to extend ActivityStreams vocabulary for all other needs.
We have a small guide to create an ActivityPub server in 5 minutes, and exchange messages with a Mastodon instance.
If you have questions, problems or just want to chat, don’t hesitate to write me
Hey @srosset81 –
this is super awesome.
Will use it to test the redaktor widgets/client against and ensure compatibility.
Have just read the server guides.
In the redaktor setup, I would just have one (1) problem: The docker “dependency”…
Many shared hosts do not support docker. Is there a workaround?
We use Docker mainly to install the Jena Fuseki triple store, where all the semantic data are stored. Since Fuseki is written in Java, it is the easiest way to launch it. But it’s also possible to set it up without Docker.
SemApps itself is written in Javascript, so all you need is NodeJS installed
I was using it in the general sense of one instance running in a network with the idea in mind that I’d start up an AP daemon and write calls against its REST API to build my app with whatever language/framework I like. Such a daemon could handle network/protocol level details and let the consumer speak in application-specific terms.
This is basically the entire design behind the idea of “ActivityPub servers” as described in the activitypub spec, except that instead of a REST api they use the JSON-LD based AP C2S api. Most people have not implemented fully general AP servers yet—preferring to customize them for their specific use-cases—but some fully-general AP servers do exist.
Ah, I see.
Yes, that is exactly the idea of the Client To Server part of ActivityPub.
You have a standardized REST API so that a variety of diverse clients can use 1 server.
It is the chapter 6 in the spec.
Please note:
The acronym community often refers to this as “C2S ”
This is misleading to many new developers because some big players invented their own REST API …
We had a session at ActivityPub Conf before pleroma added C2S :
and there is a category
btw: A list of all supporting servers might be useful …
I don’t know how I missed your “building blocks” post above. Just spent a little time looking at the projects you shared and I can see why many consumers would implement just what they need rather than pull in all features of the protocol.