From: Tony Arcieri Date: 2012-04-03T01:43:21+09:00 Subject: [ANN] celluloid/celluloid-io/celluloid-zmq 0.10.0: Actor-based concurrent objects (with evented I/O and 0MQ support) for Ruby --0015175cd0e0138e1e04bcb4e31d Content-Type: text/plain; charset=ISO-8859-1 Now with a snazzy new web site! http://celluloid.io Celluloid provides a concurrent object oriented programming framework for Ruby which lets you build multithreaded programs out of concurrent objects just as easily as you build sequential programs out of regular objects You may remember Celluloid from such projects as Sidekiq, a nifty multithreaded background worker system which acts as a drop-in replacement for Resque. A distributed extension to Celluloid is also available, however as there are a few more features I want to get into its release, I am not shipping DCell 0.10.0 yet. But please check it out anyway! http://github.com/celluloid/dcell -- Celluloid::IO is probably the star of this release. While previous releases shipped a half-baked client API that used blocking connects and blocking DNS resolution, this is no longer the case. The client API is now fully nonblocking, including DNS resolution, which effectively makes Celluloid::IO feature complete as a nonblocking I/O system: http://github.com/celluloid/celluloid-io Celluloid::IO 0.10.0 also fixes a bug where data would get interleaved/corrupted when multiple tasks were doing writes to the same socket simultaneously. Several tasks can now write to the same socket, and each write operation is now "atomic". -- Celluloid 0.10.0 includes some unannounced features which were silently shipped in 0.9.1. Below is the combined 0.10.0+0.9.1 change history: * Celluloid::Actor.current is now the de facto way to obtain the current actor * #terminate now uses system messages, making termination take priority over other pending methods * #terminate! provides asynchronous termination * Recurring timers with Celluloid#every(n) { ... } * Obtain UUIDs with Celluloid.uuid (fastest thread-safe Ruby UUID generator evar?) * Obtain the number of CPU cores available with Celluloid.cores * Celluloid::Pool defaults to one actor per CPU core max by default Celluloid::ZMQ has now been spun off as a separate git repository/project (previously it was a part of DCell): https://github.com/celluloid/celluloid-zmq Enjoy! -- Tony Arcieri --0015175cd0e0138e1e04bcb4e31d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Now with a snazzy new web site!

http://celluloid.io

Celluloid provides a concurren= t object oriented programming framework for Ruby which lets you build multi= threaded programs out of concurrent objects just as easily as you build seq= uential programs out of regular objects

You may remember Celluloid from such projects as Sidekiq, a nifty multi= threaded background worker system which acts as a drop-in replacement for R= esque.

A distributed extension to Celluloid is also avai= lable, however as there are a few more features I want to get into its rele= ase, I am not shipping DCell 0.10.0 yet. But please check it out anyway!

http://github.com/celluloid/dcell

--<= /div>

Celluloid::IO is probably the star of this release= . While previous releases shipped a half-baked client API that used blockin= g connects and blocking DNS resolution, this is no longer the case. The cli= ent API is now fully nonblocking, including DNS resolution, which effective= ly makes Celluloid::IO feature complete as a nonblocking I/O system:

http://github.com/celluloid/celluloid-io

=
Celluloid::IO 0.10.0 also fixes a bug where data would get inter= leaved/corrupted when multiple tasks were doing writes to the same socket s= imultaneously. Several tasks can now write to the same socket, and each wri= te operation is now "atomic".

--

Celluloid 0.10.0 includes s= ome unannounced features which were silently shipped in 0.9.1. Below is the= combined 0.10.0+0.9.1 change history:

* Celluloid::Actor.current is now the de facto way= to obtain the current actor
* #terminate now uses system message= s, making termination take priority over
=A0 other pending method= s
* #terminate! provides asynchronous termination
* Recurring = timers with Celluloid#every(n) { ... }
* Obtain UUIDs with Cellul= oid.uuid (fastest thread-safe Ruby UUID generator evar?)
* Obtain= the number of CPU cores available with Celluloid.cores
* Celluloid::Pool defaults to one actor per CPU core max by default

Celluloid::ZMQ has now been spun off as a separate g= it repository/project (previously it was a part of DCell):


Enjoy!

--
Tony Arcieri

--0015175cd0e0138e1e04bcb4e31d--