# activity `go get github.com/go-fed/activity` This repository contains three libraries for use in your golang applications: * `vocab`: An ActivityStreams Vocabulary library * `streams`: A convenience library for the ActivityStreams Vocabulary * `pub`: ActivityPub SocialAPI (Client-to-Server) and FederateAPI (Server-to-Server) This repository supports `vgo` and is remotely verifiable. This library is biased. It forgoes understanding JSON-LD in exchange for static typing. It provides a large amount of default behavior to let Social, Federated, or both kinds of ActivityPub applications just work. The [go-fed.org](https://go-fed.org) website has a tutorial. It also hosts godoc documentation for every version of this library. ## Status **0.4.0** ([Semantic Versioning](https://semver.org/)) An [official implementation report](https://activitypub.rocks/implementation-report/) was last submitted for version **0.2.0** [here](https://github.com/w3c/activitypub/issues/318). Previous unofficial implementation reports are available in [issue #46](https://github.com/go-fed/activity/issues/46). Please see CHANGELOG for changes between versions. ## Getting Started See each subdirectory for its own README for further elaboration. The recommended reading order is `vocab`, `streams`, and then `pub`. Others are optional. ## How can I get help, file issues, or contribute? Please see the CONTRIBUTING.md file! ## How well tested are these libraries? I took great care to add numerous tests using examples directly from specifications, official test repositories, and my own end-to-end tests. ## Who is using this library currently? | Application | Description | Repository | Point Of Contact | Homepage | |:-----------:|:-------------------------------------------------:|:--------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------:|:------------------------------------:| | Anancus | Self-hosted and federated social link aggregation | [https://gitlab.com/tuxether/anancus](https://gitlab.com/tuxether/anancus) | [@tuxether@floss.social](https://floss.social/@tuxether) or [tuxether@protonmail.ch](mailto:tuxether@protonmail.ch) | N/A | | WriteFreely | Simple, open-source, privacy-focused blogging platform | [https://github.com/writeas/writefreely](https://github.com/writeas/writefreely) | [@write_as@writing.exchange](https://writing.exchange/@write_as) or [hello@write.as](mailto:hello@write.as) | [https://writefreely.org](https://writefreely.org) | | Read.as | Long-form reader built on open protocols | [https://github.com/writeas/Read.as](https://github.com/writeas/Read.as) | [@write_as@writing.exchange](https://writing.exchange/@write_as) or [hello@write.as](mailto:hello@write.as) | [https://read.as](https://read.as) | ## How do I use these libraries? There is a [tutorial](https://go-fed.org/tutorial) available at [https://go-fed.org](https://go-fed.org). Please see each subdirectory for its own README for further elaboration. The recommended reading order is `vocab`, `streams`, and then `pub`. Others are optional. Passing familiarity with ActivityStreams and ActivityPub is recommended. ## Other Libraries * `tools` - Code generation wizardry and ActivityPub-spec-as-data. * `deliverer` - Provides an asynchronous `Deliverer` for use with the `pub` lib ## FAQ Please see the CONTRIBUTING.md file! ## Useful References * [ActivityPub Specification](https://www.w3.org/TR/activitypub) * [ActivityPub GitHub Repo](https://github.com/w3c/activitypub) * [ActivityStreams Core Specification](https://www.w3.org/TR/activitystreams-core) * [ActivityStreams Vocabulary Specification](https://www.w3.org/TR/activitystreams-vocabulary) * [ActivityStreams GitHub Repo](https://github.com/w3c/activitystreams) ## Thanks I would like to thank those that have worked hard to create the technologies and standards that created the opportunity to implement this suite of libraries.