Skip to content

v0.99.11

Compare
Choose a tag to compare
@yoshuawuyts yoshuawuyts released this 29 Oct 11:47
da795de

API Documentation

This patch introduces async_std::sync::channel, a novel asynchronous port of
the ultra-fast Crossbeam channels. This has been one of the most anticipated
features for async-std, and we're excited to be providing a first version of
this!

In addition to channels, this patch has the regular list of new methods, types,
and doc fixes.

Examples

Send and receive items from a channel

// Create a bounded channel with a max-size of 1
let (s, r) = channel(1);

// This call returns immediately because there is enough space in the channel.
s.send(1).await;

task::spawn(async move {
    // This call blocks the current task because the channel is full.
    // It will be able to complete only after the first message is received.
    s.send(2).await;
});

// Receive items from the channel
task::sleep(Duration::from_secs(1)).await;
assert_eq!(r.recv().await, Some(1));
assert_eq!(r.recv().await, Some(2));

Added

  • Added Future::delay as "unstable"
  • Added Stream::flat_map as "unstable"
  • Added Stream::flatten as "unstable"
  • Added Stream::max_by
  • Added Stream::min_by_key
  • Added Stream::product as "unstable"
  • Added Stream::sum as "unstable"
  • Added Stream::timeout as "unstable"
  • Added sync::channel as "unstable".
  • Added doc links from instantiated structs to the methods that create them.
  • Implemented Extend + FromStream for PathBuf.

Changed

  • Fixed an issue with block_on so it works even when nested.
  • Fixed issues with our Clippy check on CI.
  • Replaced our uses of cfg_if with our own macros, simplifying the codebase.
  • Updated the homepage link in Cargo.toml to point to async.rs.
  • Updated the module-level documentation for stream and sync.
  • Various typos and grammar fixes.
  • Removed redundant file flushes, improving the performance of File operations

Removed

Nothing was removed in this release.