Painless multi-threaded multi-core programming for Ruby.

Technologies
ruby, multi-threading, multi-core, zeromq, high-resolution timers
Topics
concurrency, parallel, evented, distributed, actor model
Painless multi-threaded multi-core programming for Ruby.

Do multi-threaded multi-core programming in Ruby.

Instead of resorting to Erlang, Elixr, Rust, Go, and Akka to use the Actor Model or do Event-driven Programming, keep writing more and more powerful Ruby code in new ways. With Celluloid, anyone can write their own high-performance, light-weight server applications. But it doesn't stop at server applications...

Celluloid is a Ruby gem that lets you turn any object into an Actor.

The joy of writing Ruby code doesn't end at high-performance concurrent, parallel, asynchronous, and distributed programming. Using the beautiful Ruby language and Celluloid, any kind of application can take full advantage of modern CPU's and cloud computing platforms, using the Actor model and Evented programming.

There are several gems in the Celluloid suite, and together they provide a complete toolset for actor-based evented multi-threaded, multi-core programming in Ruby:

Some examples of Celluloid uses...

  • HTTP/S and WebSocket Servers like those based on Reel.
  • Custom Domain Specific Languages like Angelo, for the web.
  • Background processing backends like Sidekiq and Sucker Punch.
  • High-performance protocol servers like Celluloid::DNS.
  • Distributed computing systems like DCell.
  • Telephone systems like Adhearsion.
  • Process monitoring tools like Eye.
  • Countless uses outside server applications, like:
    • IRC/Slack Bots, linking API Integrations.
    • Controlling multiple aerial drones and robots simultaneously.
    • High-fidelity transaction data and financial information processing using ZeroMQ.
    • Turning any program into a multi-threaded, evented, multi-core actor system.
2016 Program

Successful Projects

Contributor
Prathmesh Ranaut
Mentor
chuckremes, //de, ioquatix, Dmytro Milinevskyi
Organization
Celluloid
Celluloid - Benchmarking and Performance Improvements
Celluloid has gone through a lot of improvements since v0.13. This has somehow affected the performance. The aim of my project primarily is to create...
Contributor
Pulkit Bhatia
Mentor
Kenichi, //de
Organization
Celluloid
Celluloid - Adding new features to Reel
Reel is Celluloid::IO native, evented server which serves as bare-bones for http and webSocket server providing functionality such as Connection...
Contributor
benzrf
Mentor
//de
Organization
Celluloid
Extract ECell
Prepare the existing ECell code for public release.