All Versions
31
Latest Version
Avg Release Cycle
42 days
Latest Release
671 days ago

Changelog History
Page 1

  • v1.12.0 Changes

    June 18, 2022

    โž• Added

    • std::task::spawn_blocking is now stabilized. We consider it a fundamental API for bridging between blocking code and async code, and we widely use it within async-std's own implementation.
    • โž• Add TryFrom implementations to convert TcpListener, TcpStream, UdpSocket, UnixDatagram, UnixListener, and UnixStream to their synchronous equivalents, including putting them back into blocking mode.

    ๐Ÿ”„ Changed

    • async-std no longer depends on num_cpus; it uses functionality in the standard library instead (via async-global-executor).
    • ๐Ÿ“š Miscellaneous documentation fixes and cleanups.
  • v1.11.0 Changes

    March 22, 2022

    ๐Ÿš€ This release improves compile times by up to 55% on initial builds, and up to 75% on recompilation. Additionally we've added a few new APIs and made some tweaks.

    โž• Added

    • TcpListener::into_incoming to convert a TcpListener into a stream of incoming TCP connections

    โœ‚ Removed

    • ๐Ÿ“š The internal extension_trait macro had been removed. This drastically improves compile times for async-std, but changes the way our documentation is rendered. This is a cosmetic change only, and all existing code should continue to work as it did before.

    ๐Ÿ”„ Changed

    • Some internal code has been de-macro-ified, making for quicker compile times.
    • 0๏ธโƒฃ We now use the default recursion limit.

    ๐Ÿ“„ Docs

    • ๐Ÿ›  Several docs improvements / fixes.
  • v1.10.0 Changes

    August 25, 2021

    ๐Ÿš€ This release comes with an assortment of small features and fixes.

    โž• Added

    • ๐Ÿ‘ฏ File now implements Clone so that Files can be passed into closures for use in spawn_blocking.
      • File's contents are already wrapped in Arcs, so the implementation of Clone is straightforward.
    • task::try_current() which returns a handle to the current task if called within the context of a task created by async-std.
    • async_std::io now re-exports WriteExt directly.

    ๐Ÿ›  Fixed

    • write! now takes already written bytes into account on File.

    Internal

    • TcpStream now properly makes use of vectored IO.
    • The net::*::Incoming implementations now do less allocation.

    ๐Ÿ“„ Docs

    • ๐Ÿ›  Several docs improvements / fixes.
  • v1.9.0 Changes

    January 15, 2021

    ๐Ÿšš This patch stabilizes the async_std::channel submodule, removes the ๐Ÿ”€ deprecated sync::channel types, and introduces the tokio1 feature.

    ๐Ÿ†• New Channels

    ๐Ÿš€ As part of our 1.8.0 release last month we introduced the new ๐Ÿ—„ async_std::channel submodule and deprecated the unstable ๐Ÿ”€ async_std::sync::channel types. You can read our full motiviation for this ๐Ÿ”„ change in the last patch notes. But the short version is that the old ๐Ÿ”€ channels had some fundamental problems, and the sync submodule is a bit of a mess.

    ๐Ÿš€ This release of async-std promotes async_std::channel to stable, and ๐Ÿ”€ fully removes the async_std::sync::channel types. In practice many โฌ†๏ธ libraries have already been upgraded to the new channels in the past month, and this will enable much of the ecosystem to switch off "unstable" versions of async-std.

    use async_std::channel;
    
    let (sender, receiver) = channel::unbounded();
    
    assert_eq!(sender.send("Hello").await, Ok(()));
    assert_eq!(receiver.recv().await, Ok("Hello"));
    

    Tokio 1.0 compat

    ๐Ÿš€ The Tokio project recently released version 1.0 of their runtime, and the async-std team would like to congratulate the Tokio team on achieving this milestone.

    ๐Ÿš€ This release of async-std adds the tokio1 feature flag, enabling Tokio's TLS constructors to be initialized within the async-std runtime. This is in โž• addition to the tokio02 and tokio03 feature flags which we were already exposing.

    In terms of stability it's worth noting that we will continue to provide ๐Ÿ‘Œ support for the tokio02, tokio03, and tokio1 on the current major ๐Ÿš€ release line of async-std. These flags are part of our public API, and ๐Ÿ‘ removing compat support for older Tokio versions is considered a breaking ๐Ÿ”„ change.

    โž• Added

    • โž• Added the tokio1 feature (#924)
    • Stabilized the async_std::channel submodule (#934)

    โœ‚ Removed

    • โœ‚ Removed deprecated sync::channel (#933)

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed a typo for [sic] FuturesExt trait (#930)
    • โšก๏ธ Update the link to cargo-edit in the installation section of the docs (#932)
    • ๐Ÿ›  Fixed a small typo for stream (#926)

    Internal

    • โšก๏ธ Updated rand to 0.8 (#923)
    • ๐Ÿ”’ Migrated RwLock and Barrier to use the async-lock crate internally (#925)
    • Replaced uses of deprecated the compare_and_swap method with compare_exchange (#927)
  • v1.8.0 Changes

    December 04, 2020

    This patch introduces async_std::channel, a new submodule for our async channels implementation. channels have been one of async-std's most requested features, and have existed as "unstable" for the past year. We've been cautious about stabilizing channels, and this caution turned out to be warranted: we realized our channels could hang indefinitely under certain circumstances, and people ended up expressing a need for unbounded channels.

    So today we're introducing the new async_std::channel submodule which exports the async-channel crate, and we're marking the older unstable async_std::sync::channel API as "deprecated". This release includes both APIs, but we intend to stabilize async_std::channel and remove the older API in January. This should give dependent projects a month to upgrade, though we can extend that if it proves to be too short.

    ๐Ÿ”€ The rationale for adding a new top-level channel submodule, rather than extending sync is that the std::sync and async_std::sync submodule are a bit of a mess, and the libs team [has been talking about splitting std::sync up](https://github.com/rust-lang/rfcs/pull/2788#discussion_r339092478) into separate modules. The stdlib has to guarantee it'll forever be backwards compatible, but async-std does not (we fully expect a 2.0 once we have async closures & traits). So we're experimenting with this change before std does, with the expectation that this change can serve as a data point when the libs team decides how to proceed in std.

    โž• Added

    • async_std::channel as "unstable" #915
    • async_std::process as "unstable" #916

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fixed mentions of the tokio03 flags in the docs #909
    • ๐Ÿ›  Fixed a double drop issue in StreamExt::cycle #903

    Internal

    • โšก๏ธ updated pin-project to v0.2.0
  • v1.7.0 Changes

    October 30, 2020

    This patch adds a feature to enable compatibility with the new tokio 0.3.0 ๐Ÿš€ release, and updates internal dependencies.

    โž• Added

    • โž• Add tokio03 feature (#895)

    Internal

    • โšก๏ธ chore: update dependencies (#897)
  • v1.6.5 Changes

    September 28, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix TcpListener::incoming. (#889)
    • ๐Ÿ›  Fix tokio compatability flag. (#882)
  • v1.6.4 Changes

    September 16, 2020

    โž• Added

    • โž• Added UdpSocket::peek and UdpSocket::peek_from (#853)

    ๐Ÿ”„ Changed

    ๐Ÿ›  Fixed

    • Ensure UnixStream::into_raw_fd doesn't close the file descriptor (#855)
    • ๐Ÿ›  Fixed wasm builds and ensured better dependency management depending on the compile target (#863)
  • v1.6.3 Changes

    July 31, 2020

    โž• Added

    ๐Ÿ”„ Changed

    • Switched from smol to individual executor parts. (#836)
    • Replaced internal Mutex implementation with async-mutex. (#822)

    ๐Ÿ›  Fixed

    • โž• Added missing Send guards to Stream::collect. (#665)
  • v1.6.2 Changes

    June 19, 2020

    โž• Added

    • โž• Add UdpSocket::peer_addr (#816)

    ๐Ÿ”„ Changed

    ๐Ÿ›  Fixed

    • Ensure the reactor is running for sockets and timers (#819).
    • Avoid excessive polling in flatten and flat_map (#701)