1 unstable release
0.1.0 | Feb 18, 2022 |
---|
#1503 in Asynchronous
80 downloads per month
52KB
1K
SLoC
RTx
Built with ❤️ by The LaunchBadge team
RTx is a zero-cost runtime-abstraction intended for use by Rust libraries to enable the Freedom of Choice.
A library that takes advantage of RTx will implement asynchronous operations around a zero-cost and ergonomic API.
An application that uses one or more runtime-abstract libraries will act on their Freedom of Choice and pick their runtime, which will be reflected throughout the dependency tree.
-
Asynchronous or Synchronous. Construct and use types from RTx with an abstract asynchronous runtime, or use synchronous IO with
std
. -
Freedom of Choice. Be free to enable your downstream usage to use your library with the asynchronous runtime of their choice.
-
Zero Cost. RTx remains zero-cost as long as only 1 runtime is enabled. In other words, there is no operational difference between using
tokio
or usingrtx
with onlytokio
enabled.
Install
For Library Authors
rtx = { version = "0.1.0", features = [ "async" ] }
-
async
- Enable the abstract asynchronous interface. -
blocking
- Enable the synchronous interface (usingstd
).
For Application Developers
# use * to let the version be constrained elsewhere in your tree
rtx = { version = "*", features = [ "tokio" ] }
-
tokio
- Use the tokio runtime, when available. -
async-std
- Use the async-std runtime.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~0–11MB
~117K SLoC