@@ -7,6 +7,130 @@ and this project adheres to [Semantic Versioning](https://book.async.rs/overview
77
88## [ Unreleased]
99
10+ # [ 1.5.0] - 2020-02-03
11+
12+ [ API Documentation] ( https://docs.rs/async-std/1.5.0/async-std )
13+
14+ This patch includes various quality of life improvements to async-std.
15+ Including improved performance, stability, and the addition of various
16+ ` Clone ` impls that replace the use of ` Arc ` in many cases.
17+
18+ ## Added
19+
20+ - Added links to various ecosystem projects from the README ([ #660 ] ( https://github.com/async-rs/async-std/pull/660 ) )
21+ - Added an example on ` FromStream ` for ` Result<T, E> ` ([ #643 ] ( https://github.com/async-rs/async-std/pull/643 ) )
22+ - Added ` stream::pending ` as "unstable" ([ #615 ] ( https://github.com/async-rs/async-std/pull/615 ) )
23+ - Added an example of ` stream::timeout ` to document the error flow ([ #675 ] ( https://github.com/async-rs/async-std/pull/675 ) )
24+ - Implement ` Clone ` for ` DirEntry ` ([ #682 ] ( https://github.com/async-rs/async-std/pull/682 ) )
25+ - Implement ` Clone ` for ` TcpStream ` ([ #689 ] ( https://github.com/async-rs/async-std/pull/689 ) )
26+
27+ ## Changed
28+
29+ - Removed internal comment on ` stream::Interval ` ([ #645 ] ( https://github.com/async-rs/async-std/pull/645 ) )
30+ - The "unstable" feature can now be used without requiring the "default" feature ([ #647 ] ( https://github.com/async-rs/async-std/pull/647 ) )
31+ - Removed unnecessary trait bound on ` stream::FlatMap ` ([ #651 ] ( https://github.com/async-rs/async-std/pull/651 ) )
32+ - Updated the "broadcaster" dependency used by "unstable" to ` 1.0.0 ` ([ #681 ] ( https://github.com/async-rs/async-std/pull/681 ) )
33+ - Updated ` async-task ` to 1.2.1 ([ #676 ] ( https://github.com/async-rs/async-std/pull/676 ) )
34+ - ` task::block_on ` now parks after a single poll, improving performance in many cases ([ #684 ] ( https://github.com/async-rs/async-std/pull/684 ) )
35+ - Improved reading flow of the "client" part of the async-std tutorial ([ #550 ] ( https://github.com/async-rs/async-std/pull/550 ) )
36+ - Use ` take_while ` instead of ` scan ` in ` impl ` of ` Product ` , ` Sum ` and ` FromStream ` ([ #667 ] ( https://github.com/async-rs/async-std/pull/667 ) )
37+ - ` TcpStream::connect ` no longer uses a thread from the threadpool, improving performance ([ #687 ] ( https://github.com/async-rs/async-std/pull/687 ) )
38+
39+ ## Fixed
40+
41+ - Fixed crate documentation typo ([ #655 ] ( https://github.com/async-rs/async-std/pull/655 ) )
42+ - Fixed documentation for ` UdpSocket::recv ` ([ #648 ] ( https://github.com/async-rs/async-std/pull/648 ) )
43+ - Fixed documentation for ` UdpSocket::send ` ([ #671 ] ( https://github.com/async-rs/async-std/pull/671 ) )
44+ - Fixed typo in stream documentation ([ #650 ] ( https://github.com/async-rs/async-std/pull/650 ) )
45+ - Fixed typo on ` sync::JoinHandle ` documentation ([ #659 ] ( https://github.com/async-rs/async-std/pull/659 ) )
46+ - Removed use of ` std::error::Error::description ` which failed CI ([ #661 ] ( https://github.com/async-rs/async-std/pull/662 ) )
47+ - Removed the use of rustfmt's unstable ` format_code_in_doc_comments ` option which failed CI ([ #685 ] ( https://github.com/async-rs/async-std/pull/685 ) )
48+ - Fixed a code typo in the ` task::sleep ` example ([ #688 ] ( https://github.com/async-rs/async-std/pull/688 ) )
49+
50+ # [ 1.4.0] - 2019-12-20
51+
52+ [ API Documentation] ( https://docs.rs/async-std/1.4.0/async-std )
53+
54+ This patch adds ` Future::timeout ` , providing a method counterpart to the
55+ ` future::timeout ` free function. And includes several bug fixes around missing
56+ APIs. Notably we're not shipping our new executor yet, first announced [ on our
57+ blog] ( https://async.rs/blog/stop-worrying-about-blocking-the-new-async-std-runtime/ ) .
58+
59+ ## Examples
60+
61+ ``` rust
62+ use async_std :: prelude :: * ;
63+ use async_std :: future;
64+ use std :: time :: Duration ;
65+
66+ let fut = future :: pending :: <()>(); // This future will never resolve.
67+ let res = fut . timeout (Duration :: from_millis (100 )). await ;
68+ assert! (res . is_err ()); // The future timed out, returning an err.
69+ ```
70+
71+ ## Added
72+
73+ - Added ` Future::timeout ` as "unstable" [ (#600 )] ( https://github.com/async-rs/async-std/pull/600 )
74+
75+ ## Fixes
76+
77+ - Fixed a doc test and enabled it on CI [ (#597 )] ( https://github.com/async-rs/async-std/pull/597 )
78+ - Fixed a rendering issue with the ` stream ` submodule documentation [ (#621 )] ( https://github.com/async-rs/async-std/pull/621 )
79+ - ` Write::write_fmt ` 's future is now correctly marked as ` #[must_use] ` [ (#628 )] ( https://github.com/async-rs/async-std/pull/628 )
80+ - Fixed the missing ` io::Bytes ` export [ (#633 )] ( https://github.com/async-rs/async-std/pull/633 )
81+ - Fixed the missing ` io::Chain ` export [ (#633 )] ( https://github.com/async-rs/async-std/pull/633 )
82+ - Fixed the missing ` io::Take ` export [ (#633 )] ( https://github.com/async-rs/async-std/pull/633 )
83+
84+ # [ 1.3.0] - 2019-12-12
85+
86+ [ API Documentation] ( https://docs.rs/async-std/1.3.0/async-std )
87+
88+ This patch introduces ` Stream::delay ` , more methods on ` DoubleEndedStream ` ,
89+ and improves compile times. ` Stream::delay ` is a new API that's similar to
90+ [ ` task::sleep ` ] ( https://docs.rs/async-std/1.2.0/async_std/task/fn.sleep.html ) ,
91+ but can be passed as part of as stream, rather than as a separate block. This is
92+ useful for examples, or when manually debugging race conditions.
93+
94+ ## Examples
95+
96+ ``` rust
97+ let start = Instant :: now ();
98+ let mut s = stream :: from_iter (vec! [0u8 , 1 ]). delay (Duration :: from_millis (200 ));
99+
100+ // The first time will take more than 200ms due to delay.
101+ s . next (). await ;
102+ assert! (start . elapsed (). as_millis () >= 200 );
103+
104+ // There will be no delay after the first time.
105+ s . next (). await ;
106+ assert! (start . elapsed (). as_millis () <= 210 );
107+ ```
108+
109+ ## Added
110+
111+ - Added ` Stream::delay ` as "unstable" [ (#309 )] ( https://github.com/async-rs/async-std/pull/309 )
112+ - Added ` DoubleEndedStream::next_back ` as "unstable" [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
113+ - Added ` DoubleEndedStream::nth_back ` as "unstable" [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
114+ - Added ` DoubleEndedStream::rfind ` as "unstable" [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
115+ - Added ` DoubleEndedStream::rfold ` as "unstable" [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
116+ - Added ` DoubleEndedStream::try_rfold ` as "unstable" [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
117+ - ` stream::Once ` now implements ` DoubleEndedStream ` [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
118+ - ` stream::FromIter ` now implements ` DoubleEndedStream ` [ (#562 )] ( https://github.com/async-rs/async-std/pull/562 )
119+
120+ ## Changed
121+
122+ - Removed our dependency on ` async-macros ` , speeding up compilation [ (#610 )] ( https://github.com/async-rs/async-std/pull/610 )
123+
124+ ## Fixes
125+
126+ - Fixed a link in the task docs [ (#598 )] ( https://github.com/async-rs/async-std/pull/598 )
127+ - Fixed the ` UdpSocket::recv ` example [ (#603 )] ( https://github.com/async-rs/async-std/pull/603 )
128+ - Fixed a link to ` task::block_on ` [ (#608 )] ( https://github.com/async-rs/async-std/pull/608 )
129+ - Fixed an incorrect API mention in ` task::Builder ` [ (#612 )] ( https://github.com/async-rs/async-std/pull/612 )
130+ - Fixed leftover mentions of ` futures-preview ` [ (#595 )] ( https://github.com/async-rs/async-std/pull/595 )
131+ - Fixed a typo in the tutorial [ (#614 )] ( https://github.com/async-rs/async-std/pull/614 )
132+ - ` <TcpStream as Write>::poll_close ` now closes the write half of the stream [ (#618 )] ( https://github.com/async-rs/async-std/pull/618 )
133+
10134# [ 1.2.0] - 2019-11-27
11135
12136[ API Documentation] ( https://docs.rs/async-std/1.2.0/async-std )
@@ -553,7 +677,10 @@ task::blocking(async {
553677
554678- Initial beta release
555679
556- [ Unreleased ] : https://github.com/async-rs/async-std/compare/v1.2.0...HEAD
680+ [ Unreleased ] : https://github.com/async-rs/async-std/compare/v1.5.0...HEAD
681+ [ 1.5.0 ] : https://github.com/async-rs/async-std/compare/v1.4.0...v1.5.0
682+ [ 1.4.0 ] : https://github.com/async-rs/async-std/compare/v1.3.0...v1.4.0
683+ [ 1.3.0 ] : https://github.com/async-rs/async-std/compare/v1.2.0...v1.3.0
557684[ 1.2.0 ] : https://github.com/async-rs/async-std/compare/v1.1.0...v1.2.0
558685[ 1.1.0 ] : https://github.com/async-rs/async-std/compare/v1.0.1...v1.1.0
559686[ 1.0.1 ] : https://github.com/async-rs/async-std/compare/v1.0.0...v1.0.1
0 commit comments