GoActivityPub is a suite of modules to help in creating ActivityPub applications in the Go language.
The projects that fall under this umbrella are:
- The component modules of the Go ActivityPub library.
- The FedBOX generic ActivityPub service and reference server implementation.
- The ONI single user ActivityPub service with minimal fuss.
- The BrutaLinks federated link aggregator and client for FedBOX.
- The BOX CLI helper for operating on FedBOX and ONI servers.
The GoActivityPub library¶
GoActivityPub provides a batteries included suite of modules for making the creation of ActivityPub applications easier for Go developers.
It was designed to offer a middle ground between the highly dynamic nature of the Activity-Vocabulary and the constraints of the Go programming language, with emphasis on strong typing, minimal resource footprint and very little “magic”.
It has distinct components for the vocabulary types and processing of activities, an HTTP client which supports authorizing to servers with both ActivityPub specific and traditional methods, multiple storage backends, and other low level helper modules.
The official repositories for the project are hosted under the go-ap GitHub organization.
More details about the individual modules and which role each of them has can be found here.
FedBOX¶
A reference implementation for a generic multi actor ActivityPub server.
The official repository is under the go-ap organization on Github: here. There is also a mirror on SourceHut.
You can find details about the project here.
ONI¶
A reference implementation for a single actor ActivitPub server. It is capable of natively serving content for multiple UserAgents, from ActivitPub clients and servers, to HTML and native media clients.
The official repository is here with a mirror on GitHub
You can find details about the project here.
BrutaLinks¶
A link aggregator application that is based on objects stored in ActivityPub collections. It requires a FedBOX instance that it operates on top of as a an ActivityPub Client to Server application.
The official repository is here with a mirror on GitHub.
You can find details about the project here.
BOX helper¶
A CLI helper that can be used for interacting with GoActivityPub servers, or any other ActivityPub client to server implementations that support OAuth2.
The official repository is here.
Some examples about how to use the helper with FedBOX and ONI instances can be found here.