| mandy | Add mandy prototype | |
| README.md | Add mandy prototype | |
| run.scm | Add mandy prototype | |
Mandy
This is a very simple sandbox prototype designed to play around with the ideas of implementing ActivityPub ontop of Goblins. It explores the HTTP <-> Goblins Actor interface as well as unlocking the actor model instead ActivityPub.
There's a blog post written to explain the findings:
https://spritely.institute/news/mandy-activitypub-on-goblins.html
Important
This is not even close to a full implementation of ActivityPub. It does not support federation or even have any kind of API security. This was simply what could have been done to play with the ideas during a weeks hacking.
Using
The username and user is hardcoded in the run.scm file. Please change that if you'd like. Otherwise you should be able to get this running with:
$ guix shell guile guile-goblins
$ guile -L . run.scm
This will bring up a webserver you can see at http://192.168.64.78:8080/outbox. If you'd like to post a Note you can do so with the ActivityPub API:
$ curl -X POST -H "Content-Type: application/ld+json" \
-d '{"type": "Create", "object": {"type": "Note", "content": "hi"}}' \
http://localhost:8080/outbox
License
All of the prototype is under Apache v2. It uses a few things I didn't write:
- mandy/contrib/json.scm: David Thompson's JSON library under LGPLv3.
- mandy/contrib/sxml.scm: David Thompson's SXML->HTML code under LGPLv3.
It also uses the CSS from Christine's Pubstrate implementation (GPLv3).