# activity

**THIS IS FORKED FROM https://github.com/go-fed/activity, which is no longer maintained**!

Enormous thank you to [cjslep](https://github.com/cjslep) for all of his hard work on the original.

## tl;dr, how do I generate stuff?

To generate the GtS (and other) schemas:

1. Make sure this repository is cloned into `~/go/src/code.superseriousbusiness.org/activity`
2. Run:
  
  ```
  GOPATH=~/go go run ./astool \
      -spec ./astool/activitystreams.jsonld \
      -spec ./astool/schema.jsonld \
      -spec ./astool/security-v1.jsonld \
      -spec ./astool/toot.jsonld \
      -spec ./astool/gotosocial.jsonld \
      -spec ./astool/funkwhale.jsonld \
      -spec ./astool/litepub.jsonld \
      ./streams && go fmt ./...
  ```

You may need to do the command a few times because of silliness.

## What's the status of this library?

Basically, it's forked from `go-fed/activity` and then a bunch of stuff has been added to it, including the GoToSocial namespace, additional `toot` namespace things, and a bunch of fixes and (we think) optimizations.

It's mainly (only?) used by GoToSocial, but other AP server implementers who want to use this library are also very welcome to have at it. There's lots of useful stuff in here.

## What's the future of this library?

Unsure. We'll keep using it for now, but ideally we'd like to eventually switch it out for something lighter than uses generics or some other way of minimizing the colossal amount of code that gets generated. Either that, or we rewrite *this* library significantly, but that's a whole entire project.

If you want funding to work on this library independently, and bring it back to its full glory, we suggest you contact [NLnet](https://nlnet.nl/), who have expressed a lot of interest in having it more diligently maintained than we have time for.

## How do I use this library?

Unfortunately the extensive go-fed documentation is no longer maintained, so there's no handy how-to guides available.

Your best bet for figuring stuff out is to see the [GoToSocial codebase](https://code.superseriousbusiness.org/gotosocial), which uses this library extensively.
