ファイルへ移動
Cory Slep c4425ee50e experimental: Keep single-type special-case API
After deliberating on the APIs for properties that can have a single
type vs multiple types, I've decided to keep the distinctly separate
APIs for the single-type properties. This means humans reading the APIs
will use simpler and more reasonable getters/setters, etc. However, by
default the two kinds of properties will not be able to satisfy the same
interface.

If this is needed, in the future we can auto-generate thin-wrapper types
around single-type properties that cause them to have a shared API with
the multi-type properties. But that won't be tackled for now, as its
expected use case is small.
2018-10-16 22:08:10 +02:00
.github Add pull request template 2018-06-12 00:37:36 +02:00
as Add nascent idea to static + dynamic plugin system 2018-09-01 20:03:51 +02:00
deliverer Initial deliverer tests 2018-06-13 22:52:19 +02:00
pub Add note to self to check Follow edge case 2018-09-01 20:03:40 +02:00
streams Add the missing 'shares' property to streams.Object 2018-08-21 19:01:16 +02:00
tools experimental: Keep single-type special-case API 2018-10-16 22:08:10 +02:00
vocab Add multiply-typed unknown property methods to vocab interfaces. 2018-08-21 22:26:13 +02:00
CHANGELOG Add multiply-typed unknown property methods to vocab interfaces. 2018-08-21 22:26:13 +02:00
CONTRIBUTING.md Update changelog and contributing 2018-07-28 13:26:55 +02:00
LICENSE Initial commit 2018-01-23 22:53:17 +01:00
README.md Add Read.as to the list of client applications 2018-08-28 20:24:53 +02:00
go.mod Add go.mod and go.modverify for vgo 2018-05-30 21:44:17 +02:00
go.modverify Add go.mod and go.modverify for vgo 2018-05-30 21:44:17 +02:00

README.md

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 website has a tutorial. It also hosts godoc documentation for every version of this library.

Status

0.3.0 (Semantic Versioning)

An official implementation report was last submitted for version 0.2.0 here.

Previous unofficial implementation reports are available in issue #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 @tuxether@floss.social or tuxether@protonmail.ch N/A
Write.as Simple, privacy-focused blogging platform https://github.com/writeas/Write.as @write_as@writing.exchange or hello@write.as https://write.as
Read.as Long-form reader built on open protocols https://github.com/writeas/Read.as @write_as@writing.exchange or hello@write.as https://read.as

How do I use these libraries?

There is a tutorial available at 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

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.