We are happy to announce the release of Goblins v0.8! Goblins is a distributed actor model system with localized transactions layered on top of Racket. See the documentation for usage, and the ChangeLog for what's changed in this release!
This release has been some time in coming, so it's a good idea to review what has happened since. The biggest feature in this release is advancements in Goblins' CapTP implementation, particularly the introduction of "handoffs". See the "What is CapTP" blogpost which explains more about this and other ideas (and has a nifty, if befuddling looking, whiteboard diagram). We also now ship a layer for easy integration between peer to peer nodes over Tor Onion Services. goblin-chat has been updated with an example.
We also have some neat new features surrounding support for opt-in coroutines for a specific actor which compose nicely with the existing designs for "promise pipelining" in Goblins, but pleasantly do not have the general risk of "plan interference" that many coroutine systems suffer from (a near actor performing immediate calls lower on the stack of a vat cannot be interrupted by an actor higher on the the stack; this is implemented via "continuation barriers"). We also have, at last, pleasant integration with Racket's existing synchronizable events, simplifying integration of Goblins and other IO systems. More features and bugfixes as well; see the ChangeLog for the more significant ones.
What you may have noticed is that in some of the above mentioned
new features, we lack proper documentation.
This is true and something we could use help with.
If you are interested in helping but would like guidance, the best way
is to ping
cwebber in the
#spritely IRC channel on
A bit of a tangent from the release itself, we have begun collaborating on the OCapN project with the developers from Agoric, CapN Proto, to bring a unified new generation of CapTP. This is, of course, a thing that needs to prove itself by being played out in practice.
The main thing missing from the current networking tooling with CapTP, OCapN, etc is a way to subscribe to and react in response to severed network sessions. We hope to have this sorted in the next release.
Aside from that... our hope is that the next few months will bring demonstrative examples of tools built on top of Spritely Goblins. So... we'd better get back to hacking!
See you next time!