Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork104
An awesome asynchronous event-driven reactor for Ruby.
License
socketry/async
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Async is a composable asynchronous I/O framework for Ruby based onio-event.
"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 reallybeautifully 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 theproject documentation for more details.
Getting Started - This guide shows how to add async to your project and run code asynchronously.
Scheduler - This guide gives an overview of how the scheduler is implemented.
Tasks - This guide explains how asynchronous tasks work and how to use them.
Best Practices - This guide gives an overview of best practices for using Async.
Debugging - This guide explains how to debug issues with programs that use Async.
Thread safety - This guide explains thread safety in Ruby, focusing on fibers and threads, common pitfalls, and best practices to avoid problems like data corruption, race conditions, and deadlocks.
Please see theproject releases for all releases.
- Introduce
Async::Promise.fulfillfor optional promise resolution.
- Fix typo in documentation.
- Introduce
Queue#waiting_countandPriorityQueue#waiting_count. Generally for statistics/testing purposes only.
- Introduce
Async::Deadlinefor precise timeout management in compound operations.
- Add timeout support to
Async::Queue#dequeueandAsync::Queue#popmethods. - Add timeout support to
Async::PriorityQueue#dequeueandAsync::PriorityQueue#popmethods. - Add
closed?method toAsync::PriorityQueuefor full queue interface compatibility. - Support non-blocking operations using
timeout: 0parameter.
This release introduces thread-safety as a core concept of Async. Many core classes now have thread-safe guarantees, allowing them to be used safely across multiple threads.
- Thread-safe
Async::ConditionandAsync::Notification, implemented usingThread::Queue. - Thread-safe
Async::QueueandAsync::LimitedQueue, implemented usingThread::QueueandThread::LimitedQueuerespectively. Async::Variableis deprecated in favor ofAsync::Promise.- Introduce
Async::Promise - Introduce
Async::PriorityQueue
- Fix race condition between
Async::Barrier#stopand finish signalling.
- Use
Traces.current_contextandTraces.with_contextfor better integration with OpenTelemetry.
- Suppress excessive warning in
Async::Scheduler#async.
- async-http — Asynchronous HTTP client/server.
- async-websocket — Asynchronous client and server websockets.
- async-dns — Asynchronous DNS resolver and server.
- 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.
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.
In order to protect users of this project, we require all contributors to comply with theDeveloper Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
This project is best served by a collaborative and respectful environment. Treat each other professionally, respect differing viewpoints, and engage constructively. Harassment, discrimination, or harmful behavior is not tolerated. Communicate clearly, listen actively, and support one another. If any issues arise, please inform the project maintainers.
About
An awesome asynchronous event-driven reactor for Ruby.
Topics
Resources
License
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
