3
1
Fork
You've already forked mandy
0
No description
  • Scheme 87.1%
  • CSS 12.9%
2026年01月09日 07:45:50 +01:00
mandy Add mandy prototype 2026年01月09日 07:45:50 +01:00
README.md Add mandy prototype 2026年01月09日 07:45:50 +01:00
run.scm Add mandy prototype 2026年01月09日 07:45:50 +01:00

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).