Polyphony is a library for building concurrent applications in Ruby. Polyphony harnesses the power of Ruby fibers to provide a cooperative, sequential coroutine-based concurrency model. Under the hood, Polyphony uses libev as a high-performance event reactor that provides timers, I/O watchers and other asynchronous event primitives.
Polyphony alternatives and similar gems
Based on the "Concurrency" category.
Alternatively, view Polyphony alternatives based on common mentions on social networks and blogs.
EventMachine9.0 0.0 L5 Polyphony VS EventMachineEventMachine: fast, simple event-processing library for Ruby programs
Celluloid8.8 0.0 L2 Polyphony VS CelluloidActor-based concurrent object framework for Ruby
async7.1 5.1 Polyphony VS asyncAn awesome asynchronous event-driven reactor for Ruby.
render_async6.0 0.0 Polyphony VS render_asyncrender_async lets you include pages asynchronously with AJAX
Opal-Async0.6 0.0 Polyphony VS Opal-AsyncNon-blocking tasks and enumerators for Opal.
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Polyphony or a related project?
Fine-Grained Concurrency for Ruby
DOCS | [EXAMPLES](examples)
Polyphony | pəˈlɪf(ə)ni |
- Music the style of simultaneously combining a number of parts, each forming an individual melody and harmonizing with each other.
- Programming a Ruby gem for concurrent programming focusing on performance and developer happiness.
What is Polyphony
Polyphony is a library for building concurrent applications in Ruby. Polyphony harnesses the power of Ruby fibers to provide a cooperative, sequential coroutine-based concurrency model. Under the hood, Polyphony uses io_uring or libev to maximize I/O performance.
- Co-operative scheduling of concurrent tasks using Ruby fibers.
- High-performance event reactor for handling I/O events and timers.
- Natural, sequential programming style that makes it easy to reason about concurrent code.
- Abstractions and constructs for controlling the execution of concurrent code: supervisors, cancel scopes, throttling, resource pools etc.
- Code can use native networking classes and libraries, growing support for
third-party gems such as
- Use stdlib classes such as
- Competitive performance and scalability characteristics, in terms of both throughput and memory consumption.
The complete documentation for Polyphony could be found on the Polyphony website.
Contributing to Polyphony
Issues and pull requests will be gladly accepted. Please use the Polyphony git repository as your primary point of departure for contributing.
*Note that all licence references and agreements mentioned in the Polyphony README section above are relevant to that project's source code only.