Celluloid is a concurrent object oriented programming framework for Ruby
which lets you build multithreaded programs out of concurrent objects,
a.k.a. "cells", in a similar manner to how you build sequential programs
out of plain old Ruby objects.

Web sites:

http://celluloid.io/
https://github.com/celluloid/celluloid
https://github.com/celluloid/celluloid-io
https://github.com/celluloid/celluloid-zmq
https://github.com/celluloid/dcell

Twitter:

https://twitter.com/celluloidrb

Celluloid 0.16 is a major release containing some sweeping changes and
represents a year's worth of development effort, much of which has been
spent trying to stabilize it prior to release. That said, there are still a
handful of issues (see https://github.com/celluloid/celluloid/issues/457),
so users should upgrade with caution.

Previously, Celluloid used the term "actor" to describe its concurrent
objects, however concurrent objects, even when built on actors, are a
higher level abstraction than what the actor model's creator, Carl Hewitt,
originally formulated, and much closer to what Erlang calls a "gen_server".

Celluloid 0.16 splits out concurrent objects from a much more minimal,
Erlangy core actor type. We're now using the term "cell" to refer to
concurrent objects to differentiate them from the core actors on which
cells are built. I'd like to thank Tim Carey-Smith for all his hard work
making this happen.

We expect 0.16 will be the last major release before 1.0 and would like to
spend the remaining time prior to a 1.0 release stabilizing the codebase
and finalizing any changes to the API. We also plan on merging the git
repositories for celluloid, celluloid-io, celluloid-zmq, and dcell into a
single omnirepo ala Rails.

Full Celluloid 0.16 changelog below:

* Factor apart Celluloid::Cell (concurrent objects) from Celluloid::Actor
* Introduce Celluloid::ActorSystem as an abstraction around the backend
actor implementation (idea borrowed from Akka)
* Celluloid::Probe system for monitoring system behavior
* Fix handling of timeouts with Celluloid::EventedMailbox (i.e.
Celluloid::IO and Celluloid::ZMQ)
* Add timeout support to Celluloid::Condition
* Obtain actor names via Celluloid::Actor.registered_name and
#registered_name to avoid conflicts with the built-in Ruby Class.name method
* Update to timers 4.0.0 (uses hitimes for monotonic time)
* Dynamically resizable pools
* Remove use of core Ruby ThreadGroups (they're broken and aren't thread
safe)
* Simplified CPU core detector

Celluloid::IO 0.16 changelog:

* Fix handling of simultaneous read/write interests
* Use Resolv::DNS::Config to obtain nameservers
* Celluloid::IO.copy_stream support (uses a background thread)

Celluloid::ZMQ 0.16 changelog:

* Support for adding socket options
* More tests!

DCell 0.16 changelog:

* Timeouts for cell discovery
* Update Explorer to use new Reel API

--
Tony Arcieri