3 stable releases
1.2.1 | Jul 10, 2024 |
---|---|
1.2.0 | Jun 3, 2024 |
1.1.0 | Apr 2, 2024 |
#464 in Asynchronous
2,541 downloads per month
Used in 2 crates
67KB
1K
SLoC
What is this?
This crate exports four things:
- A compatibility/abstraction layer for writing async-executor agnostic code. We support two async executors: async-std and tokio. Each may be toggled with a configuration flag.
- A compatibility/abstraction layer for writing async channel agnostic code. We support three async channel implementations: async-std, tokio and flume. Each may be toggled with a configuration flag.
- A library exporting a bunch of useful async primitives.
- A tracing configuration layer optionally supporting console and opentelemetry integration.
Example usage
By default the async-std
executor and channels are used.
To use tokio:
RUSTFLAGS='--cfg async_executor_impl="tokio" --cfg async_channel_impl="tokio"' cargo build
async_executor_impl
may be either tokio
or async-std
. async_channel_impl
may be either tokio
, async-std
, or flume
.
Note that using tokio
channels requires tokio
to be the runtime.
lib.rs
:
Async compatibility layer meant to control abstractions between tokio and async_std with a feature flag toggle while exposing the same interface for general consumption between both
Dependencies
~6–20MB
~280K SLoC