Who has implemented the #ActivityPub client-server spec? Looking for pointers.
14 comments
@steve my understanding is that those are largely out of date. Here’s the repo: https://gitlab.com/dustyweb/activitypub.rocks/tree/master/reports and the dates are years ago. @J12t Yes, I was going to mention that, but but if those servers supported C2s then they probably didn’t remove the functionality. @mariusor you implemented the server side, the client side, or both? What interop challenges did you run into when attempting to interop with somebody else’s implementation? @J12t I have the server side (on #FedBOX) and client side on the link aggregator that uses it as a backend, called #brutalinks But sadly I didn't interop with other clients/servers for either of them. The main challenges that I can think of: 1/ when a user wants to login using a new client to the server it should be dynamically created on the server. @mariusor so the spec works for you, in the scenario where you control both sides. Which is good to know, but we don’t really need an official standard for that use case :-) @wiligl @Gargron I don’t think mastodon has implemented #ActivityPub c2s and as far as I know, they have no interest in doing so. Correct me if I’m wrong. @J12t I translated (by hand, not using ChatGPT) the go-fed library (which has C2S and S2S) into Elixir, and ran it against a checklist of tests I found in an activitypub.rocks thread, but 1. there needs to be an MVP or consensus on clients to decide what is standard and what is overridable and 2. I now prefer the architecture that @nutomic ‘s S2S Rust library builds over go-fed’s/my own. @J12t @nutomic From what I could see, you get two type-safe structs for each AP object type, one is the database representation that can be persisted and the other is the JSON-LD representation that comes off HTTP and can be hydrated. Then you add logic / actions on top of these. It’s clearly defined in the Rust library with an “Object” trait that handles going back and forth between DB and JSON-LD. Also Lemmy is a real product; I was just trying to learn AP. |
@J12t If you’re looking for servers that implement it, the #ActivityPub implementation reports might be useful. https://activitypub.rocks/implementation-report/ I’m interested in knowing about clients that implement it and have a feature set remotely comparable to the Mastodon clients.