Stability and SemVer

async-std follows

In short: we are versioning our software as MAJOR.MINOR.PATCH. We increase the:

  • MAJOR version when there are incompatible API changes,
  • MINOR version when we introduce functionality in a backwards-compatible manner
  • PATCH version when we make backwards-compatible bug fixes

We will provide migration documentation between major versions.

Future expectations

async-std uses its own implementations of the following concepts:

  • Read
  • Write
  • Seek
  • BufRead
  • Stream

For integration with the ecosystem, all types implementing these traits also have an implementation of the corresponding interfaces in the futures-rs library. Please note that our SemVer guarantees don't extend to usage of those interfaces. We expect those to be conservatively updated and in lockstep.

Minimum version policy

The current tentative policy is that the minimum Rust version required to use this crate can be increased in minor version updates. For example, if async-std 1.0 requires Rust 1.37.0, then async-std 1.0.z for all values of z will also require Rust 1.37.0 or newer. However, async-std 1.y for y > 0 may require a newer minimum version of Rust.

In general, this crate will be conservative with respect to the minimum supported version of Rust. With async/await being a new feature though, we will track changes in a measured pace initially.

Security fixes

Security fixes will be applied to all minor branches of this library in all supported major revisions. This policy might change in the future, in which case we give a notice at least 3 months ahead.


This policy is based on BurntSushi's regex crate.