Changelog History
Page 2
-
v1.6.1 Changes
June 11, 2020โ Added
- โ Added
tokio02
feature flag, to allow compatability usage with [email protected] (#804).
๐ Changed
- โ Removed unstable
stdio
lock methods, due to their unsoundness (#807).
๐ Fixed
- โ Added
-
v1.6.0 Changes
May 22, 2020๐ See
1.6.0-beta.1
and1.6.0-beta.2
. -
v1.6.0-beta.2 Changes
May 19, 2020โ Added
- โ Added an environment variable to configure the thread pool size of the runtime. (#774)
- ๐ฏ Implement
Clone
forUnixStream
(#772)
๐ Changed
- For
wasm
, switched underlyingTimer
implementation tofutures-timer
. (#776)
๐ Fixed
- ๐ Use
smol::block_on
to handle drop ofFile
, avoiding nested executor panic. (#768)
-
v1.6.0-beta.1 Changes
May 07, 2020โ Added
- โ Added
task::spawn_local
. (#757) - โ Added out of the box support for
wasm
. (#757) - โ Added
JoinHandle::cancel
(#757) - โ Added
sync::Condvar
(#369) - ๐ Added
sync::Sender::try_send
andsync::Receiver::try_recv
(#585) - โ Added
no_std
support fortask
,future
andstream
(#680)
๐ Changed
- Switched underlying runtime to
smol
. (#757) - ๐ Switched implementation of
sync::Barrier
to usesync::Condvar
likestd
does. (#581)
๐ Fixed
- ๐ Allow compilation on 32 bit targets, by using
AtomicUsize
forTaskId
. (#756)
- โ Added
-
v1.5.0 Changes
February 03, 2020๐ 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
- โ Added links to various ecosystem projects from the README (#660)
- โ Added an example on
FromStream
forResult<T, E>
(#643) - โ Added
stream::pending
as "unstable" (#615) - โ Added an example of
stream::timeout
to document the error flow (#675) - ๐ฏ Implement
Clone
forDirEntry
(#682) - ๐ฏ Implement
Clone
forTcpStream
(#689)
๐ Changed
- โ Removed internal comment on
stream::Interval
(#645) - 0๏ธโฃ The "unstable" feature can now be used without requiring the "default" feature (#647)
- โ Removed unnecessary trait bound on
stream::FlatMap
(#651) - โก๏ธ Updated the "broadcaster" dependency used by "unstable" to
1.0.0
(#681) - โก๏ธ Updated
async-task
to 1.2.1 (#676) - ๐
task::block_on
now parks after a single poll, improving performance in many cases (#684) - ๐ Improved reading flow of the "client" part of the async-std tutorial (#550)
- ๐ Use
take_while
instead ofscan
inimpl
ofProduct
,Sum
andFromStream
(#667) - ๐
TcpStream::connect
no longer uses a thread from the threadpool, improving performance (#687)
๐ Fixed
- ๐ Fixed crate documentation typo (#655)
- ๐ Fixed documentation for
UdpSocket::recv
(#648) - ๐ Fixed documentation for
UdpSocket::send
(#671) - ๐ Fixed typo in stream documentation (#650)
- ๐ Fixed typo on
sync::JoinHandle
documentation (#659) - โ Removed use of
std::error::Error::description
which failed CI (#661) - Removed the use of rustfmt's unstable
format_code_in_doc_comments
option which failed CI (#685) - ๐ Fixed a code typo in the
task::sleep
example (#688)
-
v1.4.0 Changes
December 20, 2019๐ API Documentation
โฑ This patch adds
Future::timeout
, providing a method counterpart to the ๐future::timeout
free function. And includes several bug fixes around missing APIs. Notably we're not shipping our new executor yet, first announced on our blog.Examples
use async_std::prelude::*; use async_std::future; use std::time::Duration; let fut = future::pending::<()>(); // This future will never resolve. let res = fut.timeout(Duration::from_millis(100)).await; assert!(res.is_err()); // The future timed out, returning an err.
โ Added
- โ Added
Future::timeout
as "unstable" (#600)
๐ Fixes
- ๐ Fixed a doc test and enabled it on CI (#597)
- ๐ Fixed a rendering issue with the
stream
submodule documentation (#621) Write::write_fmt
's future is now correctly marked as#[must_use]
(#628)- ๐ Fixed the missing
io::Bytes
export (#633) - ๐ Fixed the missing
io::Chain
export (#633) - ๐ Fixed the missing
io::Take
export (#633)
- โ Added
-
v1.3.0 Changes
December 12, 2019๐ API Documentation
This patch introduces
Stream::delay
, more methods onDoubleEndedStream
, and improves compile times.Stream::delay
is a new API that's similar to ๐task::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
let start = Instant::now(); let mut s = stream::from_iter(vec![0u8, 1]).delay(Duration::from_millis(200)); // The first time will take more than 200ms due to delay. s.next().await; assert!(start.elapsed().as_millis() >= 200); // There will be no delay after the first time. s.next().await; assert!(start.elapsed().as_millis() <= 210);
โ Added
- โ Added
Stream::delay
as "unstable" (#309) - โ Added
DoubleEndedStream::next_back
as "unstable" (#562) - โ Added
DoubleEndedStream::nth_back
as "unstable" (#562) - โ Added
DoubleEndedStream::rfind
as "unstable" (#562) - โ Added
DoubleEndedStream::rfold
as "unstable" (#562) - โ Added
DoubleEndedStream::try_rfold
as "unstable" (#562) stream::Once
now implementsDoubleEndedStream
(#562)stream::FromIter
now implementsDoubleEndedStream
(#562)
๐ Changed
- โ Removed our dependency on
async-macros
, speeding up compilation (#610)
๐ Fixes
- ๐ Fixed a link in the task docs (#598)
- ๐ Fixed the
UdpSocket::recv
example (#603) - ๐ Fixed a link to
task::block_on
(#608) - ๐ Fixed an incorrect API mention in
task::Builder
(#612) - ๐ Fixed leftover mentions of
futures-preview
(#595) - ๐ Fixed a typo in the tutorial (#614)
<TcpStream as Write>::poll_close
now closes the write half of the stream (#618)
- โ Added
-
v1.2.0 Changes
November 27, 2019๐ 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:
use async_std::prelude::*; use async_std::stream; let s = stream::from_iter(vec![(1,2), (3,4)]); let (left, right): (Vec<_>, Vec<_>) = s.unzip().await; assert_eq!(left, [1, 3]); assert_eq!(right, [2, 4]);
โ Added
- โ Added
Stream::unzip
as "unstable". - โ Added verbose errors to the networking types.
๐ Changed
- ๐ท Enabled CI on master branch.
Future::join
andFuture::try_join
can now join futures with different output types.
๐ Fixed
- ๐ Fixed the docs and
Debug
output ofBufWriter
. - ๐ Fixed a bug in
Stream::throttle
that made it consume too much CPU.
- โ Added
-
v1.1.0 Changes
November 21, 2019๐ API Documentation
โฑ This patch introduces a faster scheduler algorithm,
Stream::throttle
, and stabilizestask::yield_now
. Additionally we're introducing several more stream APIs, bringing us to almost complete parity with the standard library.Furthermore our
path
submodule now returns more context in errors. So if opening a file fails, async-std will tell you which file was failed to open, making it easier to write and debug programs.Examples
let start = Instant::now(); let mut s = stream::interval(Duration::from_millis(5)) .throttle(Duration::from_millis(10)) .take(2); s.next().await; assert!(start.elapsed().as_millis() >= 5); s.next().await; assert!(start.elapsed().as_millis() >= 15); s.next().await; assert!(start.elapsed().as_millis() >= 25);
โ Added
- โ Added
Stream::throttle
as "unstable". - โ Added
Stream::count
as "unstable". - โ Added
Stream::max
as "unstable". - โ Added
Stream::successors
as "unstable". - โ Added
Stream::by_ref
as "unstable". - โ Added
Stream::partition
as "unstable". - โ Added contextual errors to the
path
submodule. - โ Added
os::windows::symlink_dir
as "unstable". - โ Added
os::windows::symlink_file
as "unstable". - Stabilized
task::yield_now
.
๐ Fixes
- ๐ We now ignore seek errors when rolling back failed
read
calls onFile
. - Fixed a bug where
Stream::max_by_key
was returning the wrong result. - Fixed a bug where
Stream::min_by_key
was returning the wrong result.
๐ Changed
- ๐ Applied various fixes to the tutorial.
- ๐ Fixed an issue with Clippy.
- โก๏ธ Optimized an internal code generation macro, improving compilation speeds.
- โ Removed an
Unpin
bound fromstream::Once
. - โ Removed various extra internal uses of
pin_mut!
. - Simplified
Stream::any
andStream::all
's internals. - The
surf
example is now enabled again. - ๐ Tweaked some streams internals.
- โก๏ธ Updated
futures-timer
to 2.0.0, improving compilation speed. - โฌ๏ธ Upgraded
async-macros
to 2.0.0. - ๐ค
Stream::merge
now uses randomized ordering to reduce overall latency. - โฑ The scheduler is now more efficient by keeping a slot for the next task to run. This is similar to Go's scheduler, and Tokio's scheduler.
- ๐ Fixed the documentation of the
channel
types to link back to thechannel
function.
- โ Added
-
v1.0.1 Changes
November 12, 2019๐ 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
- ๐ Improved thread startup/shutdown algorithm in
task::spawn_blocking
. - ๐ Fixed a typo in the tutorial.
- ๐ Improved thread startup/shutdown algorithm in