Async

Async is a composable asynchronous I/O framework for Ruby based on io-event and
timers.

> “Lately I’ve been looking into async, as one of my projects –
> tus-ruby-server – would really benefit from non-blocking I/O. It’s really
> beautifully designed.” janko

Development<br>
Status"></a></p>

<h2>Features</h2>

<ul>
<li>Scalable event-driven I/O for Ruby. Thousands of clients per process!</li>
<li>Light weight fiber-based concurrency. No need for callbacks!</li>
<li>Multi-thread/process containers for parallelism.</li>
<li>Growing eco-system of event-driven components.</li>
</ul>

<h2>Usage</h2>

<p>Please see the <a href=project documentation for more details.

  • Getting Started - This guide gives shows how to add
    async to your project and run code asynchronously.

  • Asynchronous Tasks - This guide explains how
    asynchronous tasks work and how to use them.

  • Event Loop - This guide gives an overview of how the
    event loop is implemented.

  • Compatibility - This guide gives an overview of the
    compatibility of Async with Ruby and other frameworks.

  • Best Practices - This guide gives an overview of
    best practices for using Async.

Contributing

We welcome contributions to this project.

  1. Fork it.
  2. Create your feature branch (git checkout -b my-new-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin my-new-feature).
  5. Create new Pull Request.

See Also

Projects Using Async

  • ciri — An Ethereum implementation written in Ruby.
  • falcon — A rack compatible server built on top of async-http.
  • rubydns — An easy to use Ruby DNS server.
  • slack-ruby-bot — A client for making slack bots.