v0.99.10
This patch stabilizes several core concurrency macros, introduces async versions
of Path
and PathBuf
, and adds almost 100 other commits.
Examples
Asynchronously read directories from the filesystem
use async_std::fs;
use async_std::path::Path;
use async_std::prelude::*;
let path = Path::new("/laputa");
let mut dir = fs::read_dir(&path).await.unwrap();
while let Some(entry) = dir.next().await {
if let Ok(entry) = entry {
println!("{:?}", entry.path());
}
}
Cooperatively reschedule the current task on the executor
use async_std::prelude::*;
use async_std::task;
task::spawn(async {
let x = fibonnacci(1000); // Do expensive work
task::yield_now().await; // Allow other tasks to run
x + fibonnacci(100) // Do more work
})
Create an interval stream
use async_std::prelude::*;
use async_std::stream;
use std::time::Duration;
let mut interval = stream::interval(Duration::from_secs(4));
while let Some(_) = interval.next().await {
println!("prints every four seconds");
}
Added
- Added
FutureExt
to theprelude
, allowing us to extendFuture
- Added
Stream::cmp
- Added
Stream::ge
- Added
Stream::last
- Added
Stream::le
- Added
Stream::lt
- Added
Stream::merge
as "unstable", replacingstream::join!
- Added
Stream::partial_cmp
- Added
Stream::take_while
- Added
Stream::try_fold
- Added
future::IntoFuture
as "unstable" - Added
io::BufRead::split
- Added
io::Write::write_fmt
- Added
print!
,println!
,eprint!
,eprintln!
macros as "unstable" - Added
process
as "unstable", re-exporting std types only for now - Added
std::net
re-exports to thenet
submodule - Added
std::path::PathBuf
with all associated methods - Added
std::path::Path
with all associated methods - Added
stream::ExactSizeStream
as "unstable" - Added
stream::FusedStream
as "unstable" - Added
stream::Product
- Added
stream::Sum
- Added
stream::from_fn
- Added
stream::interval
as "unstable" - Added
stream::repeat_with
- Added
task::spawn_blocking
as "unstable", replacingtask::blocking
- Added
task::yield_now
- Added
write!
andwriteln!
macros as "unstable" - Stabilized
future::join!
andfuture::try_join!
- Stabilized
future::timeout
- Stabilized
path
- Stabilized
task::ready!
Changed
- Fixed
BufWriter::into_inner
so it callsflush
before yielding - Refactored
io::BufWriter
internals - Refactored
net::ToSocketAddrs
internals - Removed Travis CI entirely
- Rewrote the README.md
- Stabilized
io::Cursor
- Switched bors over to use GitHub actions
- Updated the
io
documentation to match std'sio
docs - Updated the
task
documentation to match std'sthread
docs
Removed
- Removed the "unstable"
stream::join!
in favor ofStream::merge
- Removed the "unstable"
task::blocking
in favor oftask::spawn_blocking