Update Rust crate async-std to ^1.12.0 #28
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
->^1.12.0
Release Notes
async-rs/async-std (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://github.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 [email protected] (#804).Changed
stdio
lock methods, due to their unsoundness (#807).Fixed
block_on
(#799) and (#809).default
feature requirement for theunstable
feature (#806).v1.6.0
Compare Source
See
1.6.0-beta.1
and1.6.0-beta.2
.v1.5.0
Compare Source
API Documentation
This patch includes various quality of life improvements to async-std.
Including improved performance, stability, and the addition of various
Clone
impls that replace the use ofArc
in many cases.Added
FromStream
forResult<T, E>
(#643)stream::pending
as "unstable" (#615)stream::timeout
to document the error flow (#675)Clone
forDirEntry
(#682)Clone
forTcpStream
(#689)Changed
stream::Interval
(#645)stream::FlatMap
(#651)1.0.0
(#681)async-task
to 1.2.1 (#676)task::block_on
now parks after a single poll, improving performance in many cases (#684)take_while
instead ofscan
inimpl
ofProduct
,Sum
andFromStream
(#667)TcpStream::connect
no longer uses a thread from the threadpool, improving performance (#687)Fixed
UdpSocket::recv
(#648)UdpSocket::send
(#671)sync::JoinHandle
documentation (#659)std::error::Error::description
which failed CI (#661)format_code_in_doc_comments
option which failed CI (#685)task::sleep
example (#688)v1.4.0
Compare Source
API Documentation
This patch adds
Future::timeout
, providing a method counterpart to thefuture::timeout
free function. And includes several bug fixes around missingAPIs. Notably we're not shipping our new executor yet, first announced on our
blog.
Examples
Added
Future::timeout
as "unstable" (#600)Fixes
stream
submodule documentation (#621)Write::write_fmt
's future is now correctly marked as#[must_use]
(#628)io::Bytes
export (#633)io::Chain
export (#633)io::Take
export (#633)v1.3.0
Compare Source
API Documentation
This patch introduces
Stream::delay
, more methods onDoubleEndedStream
,and improves compile times.
Stream::delay
is a new API that's similar totask::sleep
,but can be passed as part of as stream, rather than as a separate block. This is
useful for examples, or when manually debugging race conditions.
Examples
Added
Stream::delay
as "unstable" (#309)DoubleEndedStream::next_back
as "unstable" (#562)DoubleEndedStream::nth_back
as "unstable" (#562)DoubleEndedStream::rfind
as "unstable" (#562)DoubleEndedStream::rfold
as "unstable" (#562)DoubleEndedStream::try_rfold
as "unstable" (#562)stream::Once
now implementsDoubleEndedStream
(#562)stream::FromIter
now implementsDoubleEndedStream
(#562)Changed
async-macros
, speeding up compilation (#610)Fixes
UdpSocket::recv
example (#603)task::block_on
(#608)task::Builder
(#612)futures-preview
(#595)<TcpStream as Write>::poll_close
now closes the write half of the stream (#618)v1.2.0
Compare Source
API Documentation
This patch includes some minor quality-of-life improvements, introduces a
new
Stream::unzip
API, and adds verbose errors to our networking types.This means if you can't connect to a socket, you'll never have to wonder again
which address it was you couldn't connect to, instead of having to go through
the motions to debug what the address was.
Example
Unzip a stream of tuples into two collections:
Added
Stream::unzip
as "unstable".Changed
Future::join
andFuture::try_join
can now join futures with differentoutput types.
Fixed
Debug
output ofBufWriter
.Stream::throttle
that made it consume too much CPU.v1.1.0
Compare Source
API Documentation
This patch introduces a faster scheduler algorithm,
Stream::throttle
, andstabilizes
task::yield_now
. Additionally we're introducing several more streamAPIs, bringing us to almost complete parity with the standard library.
Furthermore our
path
submodule now returns more context in errors. So ifopening a file fails, async-std will tell you which file was failed to open,
making it easier to write and debug programs.
Examples
Added
Stream::throttle
as "unstable".Stream::count
as "unstable".Stream::max
as "unstable".Stream::successors
as "unstable".Stream::by_ref
as "unstable".Stream::partition
as "unstable".path
submodule.os::windows::symlink_dir
as "unstable".os::windows::symlink_file
as "unstable".task::yield_now
.Fixes
read
calls onFile
.Stream::max_by_key
was returning the wrong result.Stream::min_by_key
was returning the wrong result.Changed
Unpin
bound fromstream::Once
.pin_mut!
.Stream::any
andStream::all
's internals.surf
example is now enabled again.futures-timer
to 2.0.0, improving compilation speed.async-macros
to 2.0.0.Stream::merge
now uses randomized ordering to reduce overall latency.run. This is similar to Go's scheduler, and Tokio's scheduler.
channel
types to link back to thechannel
function.
v1.0.1
Compare Source
API Documentation
We were seeing a regression in our fs performance, caused by too many
long-running tasks. This patch fixes that regression by being more proactive
about closing down idle threads.
Changes
task::spawn_blocking
.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.