Posted by Tony Arcieri on Jan 30, 2008
I’m glad to see Revactor’s starting to make a splash in the Ruby blogging community. Here are a few mentions of it:
RubyZone: Interview With Revactor Developer Tony Arcieri
An interview with yours truly about Revactor, its goals, and concurrent programming in general.
On Ruby: Ruby Concurrency with Actors
Another article by the same author, provides a more broadened perspective on the concurrency landscape in Ruby, including Erlang creator Joe Armstrong’s take on libraries like Revactor which try to add Erlangy features to what’s in the end an imperative language with mutable state.
Startrader’s Weblog: Revactor: Poor Name, Great Idea
Well, can’t blame you on the name, it’s one of those ones I picked somewhat capriciously that stuck in my head to the point that I couldn’t shake it. But if _why can call his tag soup library Hpricot, then I can call my Actor library Revactor, damn it! Kidding, of course…
That said, one of the main criticisms of Revactor in the article (beyond the name) was the lack of support for linking, which was addressed as of an hour ago. Dig in!
Posted by Tony Arcieri on Jan 29, 2008
Following official DHH release guidelines, Revactor 0.1.1 saw a stealth release followed by an official 0.1.2 the next day. Never mind grabbing 0.1.1, you can head straight for 0.1.2.
So what’s new? Well, now wherever you are inside your program, you’re in the scope of an Actor. This release brings with it both thread-specific schedulers and ones that work from toplevel scope. There’s no longer an “Actor world” in your Ruby programs, and instead you can use Actors anywhere.
This release also brings with it Erlangy exception handling using a technique called linking. Now you can group interdependent Actors together and easily implement supervision trees to restart the whole group in the event of an uncaught exception. For more information, see the Handling Exceptions section of the Revactor README.
Revactor is available as a gem (Ruby 1.9 only):
gem install revactor
Posted by Tony Arcieri on Jan 21, 2008
I’m pleased to announce the initial public availability of Revactor, an Actor framework for Ruby 1.9. The Actor model has seen increasing popularity in languages like Erlang and Scala. Revactor adds asynchronous message passing to the Fibers mechanism, easing the development of concurrent programs using them. You can read more about the Actor model here:
Revactor also includes a high performance sockets API, largely compatible with Ruby’s own, but which also seamlessly interoperate with the Actor API. Using this approach means you can simultaneously process messages from both sockets and other Actors. Furthermore, with a small amount of monkeypatching it’s able to run Mongrel, using Actors instead of threads as the underlying concurrency mechanism. Initial tests of the performance of Mongrel on top of Revactor surpass the threaded version.
Revactor is available as a gem and can be installed with:
gem install revactor