Documentation Wiki

GoActivityPub is a suite of modules to help in creating ActivityPub applications in the Go language.

The projects that we consider part of this name are:


For discussions about the projects you can contact the discussions mailing list: ~mariusor/go-activitypub-discuss@lists.sr.ht

For patches and bug reports please use the dev mailing list: ~mariusor/go-activitypub-dev@lists.sr.ht

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.

More details about the individual modules and which role each of them has can be found here.

FedBOX

Is a reference implementation for a generic multi actor ActivityPub server built with the GoActivityPub library.

It supports both the Client to Server and Server to Server sections of the ActivityPub protocol.

You can find details about the project here.

ONI

A simple single actor ActivitPub server with maximum compatibility with the wider Fediverse.

It supports text content in short form and long form, but also binary content like image, audio and video.

You can find details about the project here.

BrutaLinks

A link aggregator application compatible with ActivityPub.

It requires a FedBOX instance that it operates on top of as a an ActivityPub Client to Server application.

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.

An introduction about BOX and examples about how it interacts with FedBOX and ONI instances can be found here.