Fork me on GitHub

While sitting in a activity-pub workshop ... does anybody know a clojure based activity-pub implementation?

Ben Sless15:01:31

Maybe this would be better as a general #clojure or #find-my-lib q?


the reason to ask here was that I would expect spec to be the foundation. But I will try your suggestions 🙂

Drew Verlee03:01:11

@U3LRXRAT0 Are we talking about this? ? I can't see how spec will help with implementing a Protocal, spec helps validate clojure data.... Skimming this makes me think that all this protocal is just like a recommendation on how label your data so other actors can try to read it? Which other actors? Why would i want to send them messages?


Yes, you found the intended activity pub :-) Activity pub's data-structures are described by linked data = LD (a global way to describe data structures // labels but also composition & validity). Spec is deep inspired by LD, so their concepts maps perfectly together. That's the reason why I expect spec will play a relevant part in a clojure adaption of activity pub. The value add of LD is to describe data in case of integration between systems. You can describe data in many other ways ... but I know no other way integrating more or better - so LDs value is that your not forced to invent an other (imperfect) way to express your integrated data structures. ActivityPub adds a way to consume and publish data in a asynchronous and only temporarily connected world. So your systems avail. is not bound strictly to the availability of the systems integrated by yours. That's not trivial to implement ...


I looked at implementing the ld spec described algorithms in clojure at one point. The description of the algorithms were extremely imperative when I looked at them, constantly mutating maps, and pretty much assumed you were writing javascript