Category: Concurrent Processing - The Ruby Toolbox

Category

Tools that simplify the writing of concurrent Ruby programs

Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more. Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency patterns.

EventMachine implements a fast, single-threaded engine for arbitrary network communications. It's extremely easy to use in Ruby. EventMachine wraps all interactions with IP sockets, allowing programs to concentrate on the implementation of network protocols. It can be used to create both network servers and clients. To create a server or client, a Ruby program only needs to specify the IP address and port, and provide a Module that implements the communications protocol. Implementations of several standard network protocols are provided with the package, primarily to serve as examples. The real goal of EventMachine is to enable programs to easily interface with other programs using TCP/IP, especially if custom protocols are required.

Celluloid enables people to build concurrent programs out of concurrent objects just as easily as they build sequential programs out of sequential objects

A concurrency framework for Ruby.

Cool.io provides a high performance event framework for Ruby which uses the libev C library

A Ruby gem for performing work in background threads.

Dataflow concurrency for Ruby (inspired by the Oz language)

Eventbox is a model of concurrent computation that is used to build thread-safe objects with arbitrary interfaces. It is [kind of advancement](#comparison-threading-abstractions) of the well known [actor model](https://en.wikipedia.org/wiki/Actor_model) leveraging the possibilities of the ruby language. It is a small, consistent but powerful threading abstraction which **integrates well into existing environments**.

Actors based concurrency library for Ruby.

A lightweight, extensible asynchronous event routing framework in Ruby.