2018-01-24 04:30:59 +05:30
# activity
2020-12-23 02:19:21 +05:30
> Complete ActivityStreams-based ontologies plus middleware handlers implementing ActivityPub
[![Build Status][Build-Status-Image]][Build-Status-Url] [![Go Reference][Go-Reference-Image]][Go-Reference-Url]
[![Go Report Card][Go-Report-Card-Image]][Go-Report-Card-Url] [![License][License-Image]][License-Url]
2020-12-23 16:52:50 +05:30
[![Chat][Chat-Image]][Chat-Url] [![OpenCollective][OpenCollective-Image]][OpenCollective-Url]
2020-12-23 02:19:21 +05:30
2018-01-24 04:30:59 +05:30
`go get github.com/go-fed/activity`
2019-02-24 20:57:02 +05:30
This repository contains two libraries and a tool:
2018-01-24 04:30:59 +05:30
2019-02-24 20:57:02 +05:30
* `astool` : A linked-data aware tool to generate golang native types for any
ActivityStreams vocabulary.
* `streams` : The ActivityStreams native types generated with the `astool` .
* `pub` : ActivityPub Social Protocol (Client-to-Server or C2S) and Federating
Protocol (Server-to-Server or S2S)
2018-08-19 22:09:54 +05:30
2020-07-09 21:04:37 +05:30
Check out [go-fed.org ](https://go-fed.org/ ) for tutorials and documentation.
2018-01-24 04:30:59 +05:30
## Status
2020-07-09 21:04:37 +05:30
**1.0.0** ([Semantic Versioning](https://semver.org/))
This library has been successfully used to
[federate since May 17, 2019 ](https://cjslep.com/c/blog/this-blog-is-federated ).
2018-04-05 00:02:55 +05:30
2018-08-19 21:56:02 +05:30
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 ).
2020-07-09 21:04:37 +05:30
Unfortunately, the official implementation report tool is no longer maintained.
2018-08-19 21:56:02 +05:30
Previous unofficial implementation reports are available in [issue #46 ](https://github.com/go-fed/activity/issues/46 ).
2018-06-14 02:53:46 +05:30
Please see CHANGELOG for changes between versions.
## Getting Started
2018-04-05 00:02:55 +05:30
2020-07-09 21:04:37 +05:30
Check out [go-fed.org ](https://go-fed.org/ ) for tutorials and documentation.
2018-04-05 00:02:55 +05:30
2020-07-09 21:04:37 +05:30
Also, see `astool` , `streams` , or `pub` for their own README.
2018-06-14 02:53:46 +05:30
2020-07-09 21:04:37 +05:30
## FAQ
2018-06-14 02:53:46 +05:30
2020-07-09 21:04:37 +05:30
### What vocabularies are supported?
* [ActivityStreams ](https://www.w3.org/TR/activitystreams-vocabulary ).
* A subset of the [toot ](https://github.com/tootsuite/mastodon/blob/master/app/lib/activitypub/adapter.rb ) vocabulary.
* A subset of the [security ](https://w3c-ccg.github.io/security-vocab/ ) vocabulary.
* [ForgeFed ](https://forgefed.peers.community/vocabulary.html ).
### How well tested are these libraries?
2018-04-05 00:02:55 +05:30
2018-05-31 03:18:34 +05:30
I took great care to add numerous tests using examples directly from
specifications, official test repositories, and my own end-to-end tests.
2018-04-05 00:02:55 +05:30
2020-07-09 21:04:37 +05:30
**v1.0.0** has around 200 unit tests. The **federation** or **S2S** portion of
the library is very well tested. The **social** or **C2S** portion could use
additional unit tests, but is far less popular than federation. About 70% of the
lines are covered by unit tests.
### Who is using this library currently?
2019-02-24 20:57:02 +05:30
2020-07-09 21:04:37 +05:30
Note: This list only includes those who have reached out to me to explicitly be
included.
2018-05-31 03:18:34 +05:30
2018-08-19 21:50:58 +05:30
| Application | Description | Repository | Point Of Contact | Homepage |
|:-----------:|:-------------------------------------------------:|:--------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------:|:------------------------------------:|
2019-10-24 01:59:48 +05:30
| 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 ) |
| go-fed/apcore | Generic ActivityPub server framework in Go | [https://github.com/go-fed/apcore ](https://github.com/go-fed/apcore ) | [@cj@mastodon.technology ](https://mastodon.technology/@cj ) or [cjslep@gmail.com ](mailto:cjslep@gmail.com ) | [https://go-fed.org ](https://go-fed.org ) |
2018-05-31 03:18:34 +05:30
2020-07-09 21:04:37 +05:30
### How do I use these libraries?
Check out [go-fed.org ](https://go-fed.org/ ) for tutorials and documentation.
2018-04-05 00:02:55 +05:30
2019-02-24 20:57:02 +05:30
Please see each subdirectory for its own README for further elaboration.
2018-04-05 00:02:55 +05:30
2020-07-09 21:04:37 +05:30
### How can I get help, file issues, or contribute?
2018-04-05 00:02:55 +05:30
2018-06-14 02:53:46 +05:30
Please see the CONTRIBUTING.md file!
2018-01-24 04:30:59 +05:30
2020-07-09 21:04:37 +05:30
### Useful References
2018-01-24 04:30:59 +05:30
* [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.
2019-02-24 20:57:02 +05:30
Thanks to those who have been early adopters with v0 and/or provided early
feedback.
2020-12-23 02:19:21 +05:30
2022-01-09 14:21:14 +05:30
[Build-Status-Image]: https://github.com/go-fed/activity/workflows/build/badge.svg
[Build-Status-Url]: https://github.com/go-fed/activity/actions
2020-12-23 02:19:21 +05:30
[Go-Reference-Image]: https://pkg.go.dev/badge/github.com/go-fed/activity
[Go-Reference-Url]: https://pkg.go.dev/github.com/go-fed/activity
[Go-Report-Card-Image]: https://goreportcard.com/badge/github.com/go-fed/activity
[Go-Report-Card-Url]: https://goreportcard.com/report/github.com/go-fed/activity
2020-12-23 02:21:01 +05:30
[License-Image]: https://img.shields.io/github/license/go-fed/activity?color=blue
2020-12-23 02:19:21 +05:30
[License-Url]: https://opensource.org/licenses/BSD-3-Clause
2020-12-23 16:52:50 +05:30
[Chat-Image]: https://img.shields.io/matrix/go-fed:feneas.org?server_fqdn=matrix.org
[Chat-Url]: https://matrix.to/#/!BLOSvIyKTDLIVjRKSc:feneas.org?via=feneas.org& via=matrix.org
2020-12-23 02:19:21 +05:30
[OpenCollective-Image]: https://img.shields.io/opencollective/backers/go-fed-activitypub-labs
[OpenCollective-Url]: https://opencollective.com/go-fed-activitypub-labs