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
- Scalable event-driven I/O for Ruby. Thousands of clients per process!
- Light weight fiber-based concurrency. No need for callbacks!
- Multi-thread/process containers for parallelism.
- Growing eco-system of event-driven components.
Please see the 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.
We welcome contributions to this project.
- Fork it.
- Create your feature branch (
git checkout -b my-new-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin my-new-feature
). - Create new Pull Request.
- async-io — Asynchronous networking and sockets.
- async-http — Asynchronous HTTP client/server.
- async-process — Asynchronous process spawning/waiting.
- async-websocket — Asynchronous client and server websockets.
- async-dns — Asynchronous DNS resolver and server.
- async-rspec — Shared contexts for running async specs.
- 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.