Celluloid ¨Βςοφιδεσινπμε αξξατυςαχατο βυιμζαυμττομεςαξτ
concurrent programs in Ruby. With ¨Βεμμυμοιδωογαβυιμσωστενουof concurrent objects just as easily as you build sequential programs
out of regular objects. Recommended for any developer, including
novices, ¨Βεμμυμοιδ ¨Βθουμθεμπ εασε ωους χοςςιεαβουβυιμδιξη
multithreaded Ruby programs.
- RDoc: ¨ΒττπΊ――γεμμυμοιδ®ηιτθυβ®γον- Github: ¨ΒττπΊ――ηιτθυβ®γον―ταςγιεςι―γεμμυμοι
Celluloid ¨Βςαπσ οβκεγτιξ τθςεαδσ¬ αμμοχιξη τθεν το ςυγοξγυςςεξτμωwhile still letting you talk to them using standard Ruby method call
conventions. It also enables asynchronous method calls which tell a
method to do something in the background, and futures, which let you
request a method be executed then check back later for the result.
--
Celluloid 0.6.0 brings with it one of the most requested features:
applications and supervision trees. Using a simple DSL you can now
list all of the actors in a given library, ensure they're supervised,
and even supervise the supervisors.
The DSL works as follows:
class MyApplication < Celluloid::Application
supervise MyActor, :as => :my_actor
supervise AnotherActor, :as => :another_actor
end
This defines the actors in your application. When your application is
running, it will create one instance of MyActor and register it as
Celluloid::Actor[:my_actor], and also a single instance of
AnotherActor registered as Celluloid::Actor[:another_actor]
To start the application, run:
MyApplication.run
This will run in the foreground, waiting for any of the supervisors to
crash and automatically restarting them. To run an application in the
background, run:
MyApplication.run!
--
Additional changes in Celluloid 0.6.0:
* Celluloid::Application classes for describing the structure of
applications built with Celluloid
* Methods of actors can now participate in the actor protocol directly
via Celluloid#receive
* Configure custom mailbox types using Celluloid.use_mailbox
* Define a custom finalizer for an actor by defining MyActor#finalize
* Actor.call and Actor.async API for making sync and async calls via
Celluloid::Mailboxes
* Fix bugs in Celluloid::Supervisors which would crash on startup if
the actor they're supervising also crashes on startup
* Add Celluloid.fiber and Celluloid.resume_fiber to allow extension
APIs to participate in the Celluloid fiber protocol
* Internal refactoring to better support DCell
--
Tony Arcieri