Fork me on GitHub
#clojure-spec
<
2022-01-19
>
jerger_at_dda10:01:38

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?

jerger_at_dda16:01:04

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? https://github.com/BasixKOR/awesome-activitypub ? I can't see how spec will help with implementing a Protocal, spec helps validate clojure data.... Skimming this https://www.w3.org/TR/activitypub/ 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?

jerger_at_dda09:01:51

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 ...

hiredman23:01:45

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