@@ -5,17 +5,78 @@ All notable changes to async-std will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://book.async.rs/overview/stability-guarantees.html ) .
77
8- ## [ Unreleased]
8+ # [ Unreleased]
99
10- The new ` async_std::channel ` submodule, introduced in 1.8.0, has been stabilized. You no longer need the ` unstable ` feature to use it.
10+ ## Added
11+ ## Removed
12+ ## Changed
13+
14+ # [ 1.9.0] - 2021-01-15
15+
16+ This patch stabilizes the ` async_std::channel ` submodule, removes the
17+ deprecated ` sync::channel ` types, and introduces the ` tokio1 ` feature.
18+
19+ ## New Channels
20+
21+ As part of our ` 1.8.0 ` release last month we introduced the new
22+ ` async_std::channel ` submodule and deprecated the unstable
23+ ` async_std::sync::channel ` types. You can read our full motiviation for this
24+ change in the last patch notes. But the short version is that the old
25+ channels had some fundamental problems, and the ` sync ` submodule is a bit of
26+ a mess.
27+
28+ This release of ` async-std ` promotes ` async_std::channel ` to stable, and
29+ fully removes the ` async_std::sync::channel ` types. In practice many
30+ libraries have already been upgraded to the new channels in the past month,
31+ and this will enable much of the ecosystem to switch off "unstable" versions
32+ of ` async-std ` .
33+
34+ ``` rust
35+ use async_std :: channel;
36+
37+ let (sender , receiver ) = channel :: unbounded ();
38+
39+ assert_eq! (sender . send (" Hello" ). await , Ok (()));
40+ assert_eq! (receiver . recv (). await , Ok (" Hello" ));
41+ ```
42+
43+ ## Tokio 1.0 compat
44+
45+ The Tokio project recently released version 1.0 of their runtime, and the
46+ async-std team would like to congratulate the Tokio team on achieving this
47+ milestone.
48+
49+ This release of ` async-std ` adds the ` tokio1 ` feature flag, enabling Tokio's
50+ TLS constructors to be initialized within the ` async-std ` runtime. This is in
51+ addition to the ` tokio02 ` and ` tokio03 ` feature flags which we were already
52+ exposing.
53+
54+ In terms of stability it's worth noting that we will continue to provide
55+ support for the ` tokio02 ` , ` tokio03 ` , and ` tokio1 ` on the current major
56+ release line of ` async-std ` . These flags are part of our public API, and
57+ removing compat support for older Tokio versions is considered a breaking
58+ change.
1159
1260## Added
1361
14- - Add ` tokio1 ` feature ([ #924 ] ( https://github.com/async-rs/async-std/pull/924 ) )
62+ - Added the ` tokio1 ` feature ([ #924 ] ( https://github.com/async-rs/async-std/pull/924 ) )
63+ - Stabilized the ` async_std::channel ` submodule ([ #934 ] ( https://github.com/async-rs/async-std/pull/934 ) )
1564
1665## Removed
1766
18- - Removed deprecated ` sync::channel `
67+ - Removed deprecated ` sync::channel ` ([ #933 ] ( https://github.com/async-rs/async-std/pull/933 ) )
68+
69+ ## Fixed
70+
71+ - Fixed a typo for [ sic] ` FuturesExt ` trait ([ #930 ] ( https://github.com/async-rs/async-std/pull/930 ) )
72+ - Update the link to ` cargo-edit ` in the installation section of the docs ([ #932 ] ( https://github.com/async-rs/async-std/pull/932 ) )
73+ - Fixed a small typo for stream ([ #926 ] ( https://github.com/async-rs/async-std/pull/926 ) )
74+
75+ ## Internal
76+
77+ - Updated ` rand ` to 0.8 ([ #923 ] ( https://github.com/async-rs/async-std/pull/923 ) )
78+ - Migrated ` RwLock ` and ` Barrier ` to use the ` async-lock ` crate internally ([ #925 ] ( https://github.com/async-rs/async-std/pull/925 ) )
79+ - Replaced uses of deprecated the ` compare_and_swap ` method with ` compare_exchange ` ([ #927 ] ( https://github.com/async-rs/async-std/pull/927 ) )
1980
2081# [ 1.8.0] - 2020-12-04
2182
0 commit comments