Hello, hello! 2017 is fresh upon us, and so is a new release of 8sync... 8sync 0.4 is here!
Most excitingly, we now have some decent documentation! Or at the very least, we finally have a tutorial (API documentation is still on its way). The tutorial walks from extending an existing actor by writing an irc bot, to writing your own basic actors, to writing network actors. You *know* you always wanted your very own IRC bot, so give it a try!
Actors are now "center stage".
You can now import a toplevel (8sync)
module, and this module
includes the full actor model system.
The actor model is now *the* way to handle concurrent synchronization
in 8sync.
So, 8sync is officially less about its event loop, and more about the
actor model.
(It is even possible that in the future, 8sync's actor model will be
able to run on another event loop.)
Actors now also have implicitly run *init*
and
*cleanup*
message handlers.
Setting up actors now involves a lot less boilerplate, since
most actors do have some sort of initialization method anyway.
The *cleanup*
message handler allows actors to clean up
after themselves when they shut down, by closing a socket,
deleting temporary files, save their current state to a database,
or whatever.
Sending messages has become slightly easier, as the from-actor
field is now implicit, set as a parameter by the actor's hive.
Those are the highlights! See the NEWS file for additional details.
What's next? In 0.4.1 you can expect better automatic shutdown of coroutines after an actor terminates, a new HTTP module, API documentation, and a bunch of other goodies.
Oh! And will you be at FOSDEM 2017 by any chance? There will be a Guile and Guix developer room and if last year was any indication, I expect it to be an absolute blast. I'll be there, giving a talk about 8sync, live hacking, and network freedom, and my talk is going to be delightfully unusual. Instead of slides, I'm going to be running an 8sync-powered MUD (multiplayer text adventure) powered by 8sync and mudsync, where the rooms will be the "slides"! I'll also be live editing the game world *during the talk*! You're not gonna want to miss this!
That's all for now. Happy hacking!