
Announcing Async-Std 1.0 - Argorak
https://async.rs/blog/announcing-async-std-1-0/
======
gaunab
Congratulations on releasing 1.0. This will be a huge milestone in making
async programming very approachable to newer Rust devs and a solid base to
build upon. There's a lot to like about async-std: It keeps things as similar
as possible to std, and the general focus on a well-designed public API,
relies on small and shared abstractions for library authors (through futures-
rs), good documentation from the start, and a very encouraging community
attitude. Keep it going :-)

~~~
MuffinFlavored
Do you use `tokio` with async-std or does it come with its own task
spawner/executor?

~~~
yoshuaw
async-std comes with its own work-stealing executor built on the async-task
and crossbeam-deque crates by the same author.

\- [https://docs.rs/async-task](https://docs.rs/async-task)

\- [https://docs.rs/crossbeam-deque](https://docs.rs/crossbeam-deque)

------
ecnahc515
First, congrats!

The first example of reading a file in sync vs async really makes me feel like
you could have a macro of sorts that just lets you write the sync version and
have it generate the async version (assuming you only use the stdlib IO based
APIs). Usage of threads could even be converted to tasks, etc.

I'm sure it falls apart in various places, but it would really make async (in
Rust) a lot more approachable. At which point you have something very similar
to how Go does things, which I think is potentially very nice.

~~~
Matthias247
> you could have a macro of sorts that just lets you write the sync version
> and have it generate the async version

That sounds like a good idea in theory. In practice you will discover that
async is a bit different. E.g. you can't have recursive functions, some new
lifetime effects will come into play (an async fn returns a Future, and
everything that generated Future captures lifetimes of other things).

async/await made async programming in rust definitely a lot more accessible!
But at some times the lower layers still leak through and cause some
unexpected compilation errors.

~~~
ecnahc515
Thanks for the explanation. I was curious what specific flaws there would be
in such a design, and what you said makes sense. Perhaps something doable with
more thought and features to support it in the future!

