Concurrent Ruby is a concurrency library that provides modern tools including agents, futures, promises, thread pools, and supervisors for Ruby applications.
The library addresses the challenge of writing safe concurrent code in Ruby by offering a collection of abstractions inspired by languages like Erlang, Clojure, Scala, and Java. Rather than prescribing a single concurrency model, it takes an unopinionated approach, providing utilities that developers can combine according to their needs. The design emphasizes thread safety across all three major Ruby interpreters, with each abstraction documented for its specific guarantees. The library implements patterns that make sense for Ruby's semantics while remaining free of external dependencies.
Concurrent Ruby suits projects where you need reliable concurrent primitives without committing to a particular framework or philosophy. It works well for applications requiring thread-safe data structures, asynchronous task execution, or actor-like patterns. The library is particularly valuable if you work across multiple Ruby implementations and need consistent behavior. Developers should understand that while Concurrent Ruby provides safe abstractions and encourages good practices through patterns like message-passing, it cannot prevent all threading mistakes—shared mutable state modified across threads or incorrect lock usage remain the developer's responsibility.
Maintainers respond to issues and pull requests within hours. The project actively seeks community contributions, with work in the issue tracker centered on enhancements and medium-priority improvements, and many issues explicitly labeled as looking for contributors.