0a84346ab3
Don't drink and stay up late at night trying to solve nasty problems, one just might decide writing a from-scratch JSON parser is the right thing to do. Instead of diving into nuances of existing solutions within the standard library and leveraging those. I am only committing this to history so that I can immediately delete it afterwards. As insurance against anyone trying to glorify this work as the product of some genius, I can point to this and say "yeah, some genius this guy is". Saturday-morning coffee-drinking me is laughing at Friday-night beer-drinking me. Note that if this project gets serious I won't pollute the git history like this. But as the project is young enough that most won't care about this early history, I feel like enshrining some self-deprecating humor into deep history is OK. |
||
---|---|---|
deliverer | ||
pub | ||
streams | ||
tools | ||
vocab | ||
LICENSE | ||
README.md |
README.md
activity
go get github.com/go-fed/activity
This repository contains three libraries for use in your golang applications:
- An ActivityStreams Vocabulary library
- A convenience library for the ActivityStreams Vocabulary
- ActivityPub Social API (Client-to-Server) and Federation Protocol (Server-to-Server).
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.
Status
There is no stable version of this library (yet).
See each subdirectory for its own README for further elaboration.
Core ActivityPub Libraries
vocab
- ActivityStreams Vocabulary: Functional and testedstreams
- ActivityStreams Convenience Library: Functional and testedpub
- ActivityPub: Under development and testing
Supplemental Libraries
tools
- Code generation wizardry and ActivityPub-spec-as-data.deliverer
- Provides an asynchronousDeliverer
for use with thepub
lib
How To Use This Library
This section will be fleshed out once the library is approaching its first stable release.
FAQ
Why does compilation take so long?
The vocab
and streams
packages are code generated on order of hundreds of
thousands to a million lines long. Use go install
or go build -i
to cache
the build artifacts and do incremental builds.
Useful References
- ActivityPub Specification
- ActivityPub GitHub Repo
- ActivityStreams Core Specification
- ActivityStreams Vocabulary Specification
- ActivityStreams GitHub Repo
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.