|
|
|
@@ -1,3 +1,69 @@
|
|
|
|
|
# 0.3.0 (October 15, 2020)
|
|
|
|
|
|
|
|
|
|
This represents a 1.0 beta release. APIs are polished and future-proofed. APIs
|
|
|
|
|
not included for 1.0 stabilization have been removed.
|
|
|
|
|
|
|
|
|
|
Biggest changes are:
|
|
|
|
|
|
|
|
|
|
- I/O driver internal rewrite. The windows implementation includes significant
|
|
|
|
|
changes.
|
|
|
|
|
- Runtime API is polished, especially with how it interacts with feature flag
|
|
|
|
|
combinations.
|
|
|
|
|
- Feature flags are simplified
|
|
|
|
|
- `rt-core` and `rt-util` are combined to `rt`
|
|
|
|
|
- `rt-threaded` is renamed to `rt-multi-thread` to match builder API
|
|
|
|
|
- `tcp`, `udp`, `uds`, `dns` are combied to `net`.
|
|
|
|
|
- `parking_lot` is included with `full`
|
|
|
|
|
|
|
|
|
|
### Changes
|
|
|
|
|
- meta: Minimum supported Rust version is now 1.45.
|
|
|
|
|
- io: `AsyncRead` trait now takes `ReadBuf` in order to safely handle reading
|
|
|
|
|
into uninitialized memory (#2758).
|
|
|
|
|
- io: Internal I/O driver storage is now able to compact (#2757).
|
|
|
|
|
- rt: `Runtime::block_on` now takes `&self` (#2782).
|
|
|
|
|
- sync: `watch` reworked to decouple receiving a change notification from
|
|
|
|
|
receiving the value (#2814, #2806).
|
|
|
|
|
- sync: `Notify::notify` is renamed to `notify_one` (#2822).
|
|
|
|
|
- process: `Child::kill` is now an `async fn` that cleans zombies (#2823).
|
|
|
|
|
- sync: use `const fn` constructors as possible (#2833, #2790)
|
|
|
|
|
- signal: reduce cross-thread notification (#2835).
|
|
|
|
|
- net: tcp,udp,uds types support operations with `&self` (#2828, #2919, #2934).
|
|
|
|
|
- sync: blocking `mpsc` channel supports `send` with `&self` (#2861).
|
|
|
|
|
- time: rename `delay_for` and `delay_until` to `sleep` and `sleep_until` (#2826).
|
|
|
|
|
- io: upgrade to `mio` 0.7 (#2893).
|
|
|
|
|
- io: `AsyncSeek` trait is tweaked (#2885).
|
|
|
|
|
- fs: `File` operations take `&self` (#2930).
|
|
|
|
|
- rt: runtime API, and `#[tokio::main]` macro polish (#2876)
|
|
|
|
|
- rt: `Runtime::enter` uses an RAII guard instead of a closure (#2954).
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
- sync: `map` function to lock guards (#2445).
|
|
|
|
|
- sync: `blocking_recv` and `blocking_send` fns to `mpsc` for use outside of Tokio (#2685).
|
|
|
|
|
- rt: `Builder::thread_name_fn` for configuring thread names (#1921).
|
|
|
|
|
- fs: impl `FromRawFd` and `FromRawHandle` for `File` (#2792).
|
|
|
|
|
- process: `Child::wait` and `Child::try_wait` (#2796).
|
|
|
|
|
- rt: support configuring thread keep-alive duration (#2809).
|
|
|
|
|
- rt: `task::JoinHandle::abort` forcibly cancels a spawned task (#2474).
|
|
|
|
|
- sync: `RwLock` write guard to read guard downgrading (#2733).
|
|
|
|
|
- net: add `poll_*` functions that take `&self` to all net types (#2845)
|
|
|
|
|
- sync: `get_mut()` for `Mutex`, `RwLock` (#2856).
|
|
|
|
|
- sync: `mpsc::Sender::closed()` waits for `Receiver` half to close (#2840).
|
|
|
|
|
- sync: `mpsc::Sender::is_closed()` returns true if `Receiver` half is closed (#2726).
|
|
|
|
|
- stream: `iter` and `iter_mut` to `StreamMap` (#2890).
|
|
|
|
|
- net: implement `AsRawSocket` on windows (#2911).
|
|
|
|
|
- net: `TcpSocket` creates a socket without binding or listening (#2920).
|
|
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
- io: vectored ops are removed from `AsyncRead`, `AsyncWrite` traits (#2882).
|
|
|
|
|
- io: `mio` is removed from the public API. `PollEvented` and` Registration` are
|
|
|
|
|
removed (#2893).
|
|
|
|
|
- io: remove `bytes` from public API. `Buf` and `BufMut` implementation are
|
|
|
|
|
removed (#2908).
|
|
|
|
|
- time: `DelayQueue` is moved to `tokio-util` (#2897).
|
|
|
|
|
|
|
|
|
|
### Fixed
|
|
|
|
|
- io: `stdout` and `stderr` buffering on windows (#2734).
|
|
|
|
|
|
|
|
|
|
# 0.2.22 (July 21, 2020)
|
|
|
|
|
|
|
|
|
|
### Fixes
|
|
|
|
|