
Security News
Nx npm Packages Compromised in Supply Chain Attack Weaponizing AI CLI Tools
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Async is a composable asynchronous I/O framework for Ruby based on io-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 really beautifully designed." – janko
Please see the project 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 the project releases for all releases.
Traces.current_context
and Traces.with_context
for better integration with OpenTelemetry.Async::Scheduler#async
.context/index.yaml
schema.Async::Task#stop
supports an optional cause:
argument (that defaults to $!
), which allows you to specify the cause (exception) for stopping the task.Async::Notification#signal
now returns true
if a task was signaled, false
otherwise, providing better feedback for notification operations.require "async/limited_queue"
is required to use Async::LimitedQueue
without a deprecation warning. Async::LimitedQueue
is not deprecated, but it's usage via async/queue
is deprecated.Async::Task#sleep
is deprecated with no replacement.Async::Task.yield
is deprecated with no replacement.Async::Scheduler#async
is deprecated, use Async{}
, Sync{}
or Async::Task#async
instead.agent-context
gem.Async::Barrier
ImprovementsAsync::Queue#close
io_select
hook in the fiber scheduler, allowing non-blocking IO.select
operations. This enables better integration with code that uses IO.select
for multiplexing IO operations.IO::Event::WorkerPool
for Blocking OperationsIO#close
using fiber_interrupt
Async::Wrapper
which was previously deprecated, is now removed.ASYNC_SCHEDULER_DEFAULT_WORKER_POOL
to ASYNC_SCHEDULER_WORKER_POOL
.async-http
.We welcome contributions to this project.
git checkout -b my-new-feature
).git commit -am 'Add some feature'
).git push origin my-new-feature
).In order to protect users of this project, we require all contributors to comply with the Developer 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.
FAQs
Unknown package
We found that async demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 34 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.