rtx 0.1.0

RTx is a zero-cost runtime-abstraction intended for use by Rust libraries to enable the Freedom of Choice between asynchronous runtimes.
docs.rs failed to build rtx-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

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 using rtx with only tokio enabled.

Install

For Library Authors

rtx = { version = "0.1.0", features = [ "async" ] }
  • async - Enable the abstract asynchronous interface.

  • blocking - Enable the synchronous interface (using std).

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

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.