Update Rust crate async-std to 1.12.0 #12
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.6.0
->1.12.0
Release Notes
async-rs/async-std
v1.12.0
Compare Source
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.TryFrom
implementations to convertTcpListener
,TcpStream
,UdpSocket
,UnixDatagram
,UnixListener
, andUnixStream
to their synchronous equivalents, including putting them back into blocking mode.Changed
num_cpus
; it uses functionality in the standard library instead (viaasync-global-executor
).v1.11.0
Compare Source
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 aTcpListener
into a stream of incoming TCP connectionsRemoved
extension_trait
macro had been removed. This drastically improves compile times forasync-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
Docs
v1.10.0
Compare Source
This release comes with an assortment of small features and fixes.
Added
File
now implementsClone
so thatFile
s can be passed into closures for use inspawn_blocking
.File
's contents are already wrapped inArc
s, so the implementation ofClone
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-exportsWriteExt
directly.Fixed
write!
now takes already written bytes into account onFile
.Internal
TcpStream
now properly makes use of vectored IO.net::*::Incoming
implementations now do less allocation.Docs
v1.9.0
Compare Source
This patch stabilizes the
async_std::channel
submodule, removes thedeprecated
sync::channel
types, and introduces thetokio1
feature.New Channels
As part of our
1.8.0
release last month we introduced the newasync_std::channel
submodule and deprecated the unstableasync_std::sync::channel
types. You can read our full motivation for thischange 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 ofa mess.
This release of
async-std
promotesasync_std::channel
to stable, andfully removes the
async_std::sync::channel
types. In practice manylibraries 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
.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 thetokio1
feature flag, enabling Tokio'sTLS constructors to be initialized within the
async-std
runtime. This is inaddition to the
tokio02
andtokio03
feature flags which we were alreadyexposing.
In terms of stability it's worth noting that we will continue to provide
support for the
tokio02
,tokio03
, andtokio1
on the current majorrelease line of
async-std
. These flags are part of our public API, andremoving compat support for older Tokio versions is considered a breaking
change.
Added
tokio1
feature (#924)async_std::channel
submodule (#934)Removed
sync::channel
(#933)Fixed
FuturesExt
trait (#930)cargo-edit
in the installation section of the docs (#932)Internal
rand
to 0.8 (#923)RwLock
andBarrier
to use theasync-lock
crate internally (#925)compare_and_swap
method withcompare_exchange
(#927)v1.8.0
Compare Source
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 theasync-channel
crate, and we're marking the older unstableasync_std::sync::channel
API as "deprecated". This release includes both APIs, but we intend to stabilizeasync_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 extendingsync
is that thestd::sync
andasync_std::sync
submodule are a bit of a mess, and the libs teamhttps://togithub.com/rust-lang/rfcs/pull/2788#discussion_r339092478b.com/rust-lang/rfcs/pull/2788#discussion_r339092478)) into separate modules. The stdlib has to guarantee it'll forever be backwards compatible, butasync-std
does not (we fully expect a 2.0 once we have async closures & traits). So we're experimenting with this change beforestd
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" #915async_std::process
as "unstable" #916Fixed
tokio03
flags in the docs #909StreamExt::cycle
#903Internal
pin-project
tov0.2.0
v1.7.0
Compare Source
This patch adds a feature to enable compatibility with the new
tokio
0.3.0release, and updates internal dependencies.
Added
tokio03
feature (#895)Internal
v1.6.5
Compare Source
Fixed
TcpListener::incoming
. (#889)v1.6.4
Compare Source
Added
UdpSocket::peek
andUdpSocket::peek_from
(#853)Changed
Extracted the executor into async-global-executor (#867)
Updated various dependencies
Fixed
UnixStream::into_raw_fd
doesn't close the file descriptor (#855)v1.6.3
Added
Changed
Mutex
implementation withasync-mutex
. (#822)Fixed
Send
guards toStream::collect
. (#665)v1.6.2
Added
UdpSocket::peer_addr
(#816)Changed
Fixed
flatten
andflat_map
(#701)v1.6.1
Compare Source
Added
tokio02
feature flag, to allow compatibility usage with tokio@0.2 (#804).Changed
stdio
lock methods, due to their unsoundness (#807).Fixed
block_on
(#799) and (#809).default
feature requirement for theunstable
feature (#806).Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.