Live data from Hacker News

Go-Fed: ActivityPub in Go

go-fed.org

21–22 of 22 posts

Re: Go-Fed: ActivityPub in Go

#21

Earlier quoted context omitted.

Yes, I can understand your frustrations, which stem probably from looking at the subprojects of go-ap as separate entities, when actually they form a whole library that can be used to create an ActivityPub server. FedBOX was meant to be a "simple" example, but that was some years ago, and as these things go, I piled on work on it and now supports multiple storage backends, has its own oauth2 end points and storage, e…

> sub-projects of go-ap, separate entities That part made sense once I read that fedbox puts it all together. > extracting from fedbox to make simpler examples Great! > Read the specification I have, maybe not carefully enough. I knew what jsonld was. I didn't notice at first that the structs in go-ap were annotated with `jsonld:"..."` rather than `json:"..."`. Perhaps jsonld.Marshal handles turning embedded objects…

> since jsonld is still json.

When it comes to the Go the standard library implementation, that's not really the case. Go doesn't deal very well with the dynamic nature of the linked data. A lot of the architecture of go-ap has to deal with the fallout from this one issue. :(

On the wiki I mentioned before I wrote an explanation that goes over the problem a little more in depth: https://man.sr.ht/~mariusor/go-activitypub/go-ap/index.md#de...

Re: Go-Fed: ActivityPub in Go

#22

Earlier quoted context omitted.

Generally, all followers on a single server share the same sharedInbox. To a first approximation, that's what "server" means on ActivityPub—sharing a "batch" inbox you can deliver to.

> Generally, all followers on a single server share the same sharedInbox. You mean that all followers of Celebrity X on instance Y will have a sharedInbox because they're a follower of Celebrity X? Apologies, I've only lightly read the spec and haven't really seen anything like this in there.

No, sorry, what I mean is that all users on mastodon.social have a unique private inbox and then a "sharedInbox" value of "https://mastodon.social/inbox". Almost all deliveries (with appropriate "to" and "cc" targeting values that the receiving server can appropriately deliver to, i.e. individual actors or the special "followers" group for an actors) can be sent to the sharedInbox in bulk, but for private groups and some other special cases you may want to use direct delivery.
Post reply on HN