この記事は 2018 年の非同期 Rust の動向調査 の続報です。
TL;DR
-
- Rust 1.39.0 以降で async/await 構文が使えるようになりました
-
- Future を実行するためのランタイムはいままで tokio だけでしたが、別に async-std というのができました
-
- async/await を使うライブラリを選ぶときはこの2つのランタイムのどちらで動くのかを確認しましょう。
- 特に理由がなければ tokio を使うのがいいでしょう。
2018 年からの差分
一年前から非同期 Rust を追いかけている人向けの情報です。
組織の再編
昨年は async/await を stabilize させるための async-foundations とツールチェーンを調査する web-foundations というグループが発足しました。 しかし諸事情により Async Foundations WG と Async Ecosystem WG (rustasync) に再編されました。役割はほぼ同じです。 async/await stabilize されたのち Async Ecosystem WG は解散、 Async Foundations WG は async-book の編纂をしているようです。
rustasync から async-rs へ
rustasync チームは Web フレームワーク Tide や非同期ランタイムの romio と julix 、その上に構築した非同期ランタイムの抽象 rustasync/runtime および runtime-native と runtime-tokio 、 runtime-wasm を作るなど、 std 相当の安定した非同期ツールチェーンの整備に向けて活動していました。 ところが 方針が変わり runtime クレートによる抽象化をやめて tokio とはまったく別の非同期ランタイムの async-std を開発しました。 rustasync チーム は Async Ecosystem WG 亡き後も async-rs と http-rs に名前を変えて 非同期 rust 環境の整備に向けて活動しています。
tokio と async-std の違い
tokio と async-std は TcpStream 、 UdpStream、 Timer などの実装方式が違うため、互換性がありません。
現在は tokio、async-std、および tokio ベースの actix-net ランタイムに基づく3つのエコシステムが並立しています。
(tokio)schedulerwork-stealingwork-stealingactor & worker-poolmaintokio::main,
tokio::testasync_std::main,
async_std::testactix_rt::main,
actix_rt::testblock_ontokio::runtime::Runtime::block_onasync_std::block_onactix_rt::SystemRunner::block_on,
actix_rt::Runtime::block_onhttp traittower,
tower-http,
tower-http-servicehttp-service,
http-clientactix-httphttp-clientreqwestsurfawchttp-serverhyperhttp-service-hyperactix-httpweb frameworkwarptideactix-webloggertracingasync-logactix-tracingtimertokio::timefutures-timer,
async_std::future::timeoutactix_rt::time
(tokio)tlstokio-tls,
tokio-rustlsasync-tls,
async-native-tlsactix-tlstcp & udptokioasync-stdactix-net
(tokio)
もともとこのような事態を避けるために runtime クレートが開発されてたのですが、 runtime は rustasync の解散とともに開発終了 しました。また rustasync チームの「std 相当の安定したAPIを持つ非同期ランタイムを提供したい」という思惑と tokio チームの開発方針が一致しなかったことが rustasync チームが tokio とは別に async-std を開発した原因のようです。
※ #[main] async main について
Tcp, Udp, tokio-timer などのランタイム固有の機能を使っている場合、それぞれのランタイム固有の #[main] を使う必要があります。
async-std の中で requwest (tokio::net) を使うと……
#[async_std::main]
async fn main() -> Result<(), reqwest::Error> {
reqwest::get("http://example.com").await?; // thread 'main' panicked at 'not currently running on the Tokio runtime.'
}
tokio の中で surf (async-std) を使うと……
#[tokio::main]
async fn main() -> Result<(), surf::Exception> {
surf::get("http://example.com/").await?.body_string().await?;
}
……パニックしません。実は surf 1.0.3 はデフォルトで ブロッキング IO の libcurl をスレッドで待つことで動かし、 features= [“hyper-client”, “hyper-tls”, “native-tls”] をつけると内部で runtime-tokio を呼ぶ ので動くのです。(おそらく hyper 相当の http ライブラリを tokio とは別に作るのが困難なため)
※ block_on について
Tcp, Udp, tokio-timer などのランタイム固有の機能を使っている場合、 futures::executor::block_on は使うことができません。
それぞれのランタイム固有の block_on を使う必要があります。
futures::executor::block_on で tcp (tokio::net) を使うと……
futures::executor::block_on(async {
reqwest::get("http://example.com/").await.ok(); // thread 'main' panicked at 'not currently running on the Tokio runtime.'
});
パニックします。
futures::executor::block_on で timer (tokio::time) を使うと……
use std::time::Duration;
futures::executor::block_on(async {
tokio::time::delay_for(Duration::from_millis(10)).await; // thread 'main' panicked at 'no current timer'
});
パニックします。
このように現在の rust ではどのライブラリが tokio | async-std で動くのかを見分けるのは大変困難です。
actix-web について
actix-web はもともと tokio-core を使ったアクターライブラリ actix を元に作られた Web フレームワークで、これはシングルスレッドの tokio-core を使ったワーカープールの上にアクターのランタイムを載せるものでした。ところが tokio のマルチスレッド化とともに、マルチスレッド版 tokio とは少し挙動の違う独自ランタイム(actix-rt)となってしまいました。そのため、 actix-rt の上で tokio::blocking などのマルチスレッド tokio 固有の機能を使うことはできません。さらに、 actix-web は actix-http という独自の http ライブラリを使用しており、これも hyper を利用したほかのエコシステムとは一線を画してします。
wasm-bindgen と Promise について
wasm-bindgen をつかうことで JS の Promise を Rust で await できるようになりました。これは wasm ホスト環境の JavaScript インタプリタの setTimeout や Promise などを使った非同期ランタイムとみなせます。例えば reqwest は wasm にコンパイル可能で、 http client の実装は fetch API を使っています。詳細は wasm-pack で JS の Promise を await できる非同期 Rust を書いて node.js で動かす を参照してください。
その他のランタイム
rust の async ランタイムは誰でも作ることができます。 tokio や async-std の他にも組み込み向けのランタイム embrio や Google が開発中の fuchsia OS で使われている ランタイム もあるようです。fuchsia については Async Interview #2: cramertj が詳しいです。
何を使えばいいの?
async-std はエコシステムは登場してまだ半年も経っておらず 2020 年現在まだまだ開発中です。 tokio の上で reqwest と warp (または rweb) を使うのがいいと思います。 AWS では rusoto および aws-lambda-rust-runtime を使うことになります。 どちらも futures-0.3 や tokio 0.2 に未対応(2020-01-26現在) です。 特に rusoto は tokio-compat や futures-compat などを使うことになるでしょう。mysql や postgres を diesel で使いたい人は、diesel はまだ非同期 IO に対応していない ので r2d2 でコネクションプーリングをした上で actix-rt の worker を使うか tokio::blocking を使うなどの工夫が必要です。redis クライアントは redis-rs でいいでしょう。
ただ現時点では actix-web のほうがサンプルコードは充実しています。参考になりそうなリポジトリへのリンクはこちらです。
-
- https://github.com/actix/examples
-
- https://github.com/actix/book
-
- https://github.com/seanmonstar/warp/tree/master/examples
-
- https://github.com/kaj/warp-diesel-ructe-sample
- https://github.com/kud1ing/Warp-Book
とはいえ Rust の非同期環境はようやく core::future と async/await が入った段階で、今後どうなっていくのかはまだまだ不透明です。
2019-01 から 2020-05 までの時系列
太字記事は Rust の async/await についての特にオススメの記事、および影響の大きな記事です。
2020-07
-
- 2020-07-07 – __
-
- Concurrency Patterns in Embedded Rust__ – https://ferrous-systems.com/blog/embedded-concurrency-patterns/
2020-07-09 – Async Interview #8: Stjepan Glavina – https://smallcultfollowing.com/babysteps/blog/2020/07/09/async-interview-8-stjepan-glavina/#bridging-the-sync-vs-sync-worlds
2020-05
-
- 2020-05-06 – Notes on io-uring – https://boats.gitlab.io/blog/post/io-uring/
2020-05-06 – A practical introduction to async programming in Rust – https://jamesmcm.github.io/blog/2020/05/06/a-practical-introduction-to-async-programming-in-rust/
2020-05-09 – no_std async/await – soon on stable – https://ferrous-systems.com/blog/stable-async-on-embedded/
2020-05-09 – io_uringメモ – https://scrapbox.io/ubnt-intrepid-pub/io_uring%E3%83%A1%E3%83%A2
2020-05-10 – blocking 0.2.0 – https://mobile.twitter.com/stjepang/status/1259201346642853892
2020-05-14 – “Safe bindings to io-uring.”
https://twitter.com/withoutboats/status/1260295418132549638 – https://github.com/withoutboats/ringbahn
2020-05-27 – Ringbahn: a safe, ergonomic API for io-uring in Rust – https://boats.gitlab.io/blog/post/ringbahn/
2020-04
-
- 2020-04-01 – Reducing tail latencies with automatic cooperative task yielding – https://tokio.rs/blog/2020-04-preemption/
2020-04-03 – Why I’m building a new async runtime – https://stjepang.github.io/2020/04/03/why-im-building-a-new-async-runtime.html
2020-04-05 – State of Rust Web Frameworks (Server, DB) – https://dev.to/readredready/state-of-rust-web-frameworks-server-3g42
2020-04-09 – Go vs Rust : 特徴量DBに適するのはどっち!? – https://tech-blog.abeja.asia/entry/2020/04/09/115152
2020-04-13 – Wiremock: async HTTP mocking to test Rust applications – https://www.lpalmieri.com/posts/2020-04-13-wiremock-async-http-mocking-for-rust-applications/
2020-04-18 –
Comfy web services in Rust – https://meh.schizofreni.co/2020-04-18/comfy-web-services-in-rust
2020-04-27 – soml 0.1.0 – https://crates.io/crates/smol
2020-04-27 – feat: use smol as runtime #757 – https://github.com/async-rs/async-std/pull/757
2020-04-30 – Async interviews: my take thus far – https://smallcultfollowing.com/babysteps/blog/2020/04/30/async-interviews-my-take-thus-far/
2020-04-29 – Rustのasync/awaitとスケジューラの話 / rust-async-await – https://speakerdeck.com/osuke/rust-async-await
2020-03
-
- 2020-03-09 –
-
- Rewriting the heart of our sync engine – https://dropbox.tech/infrastructure/rewriting-the-heart-of-our-sync-engine
2020-03-10 – Async Interview #7: withoutboats – https://smallcultfollowing.com/babysteps/blog/2020/03/10/async-interview-7-withoutboats/
2020-03-10 – Practical examples of the Rust async ecosystem – https://github.com/benkay86/async-applied
2020-03-12 – waitmap – an async awaitable map -https://boats.gitlab.io/blog/post/waitmap/
2020-03-17 – PARALLEL-STREAM – https://blog.yoshuawuyts.com/parallel-stream/
2020-03-18 – Announcing Rust IPFS, and a call for contributors – https://blog.ipfs.io/2020-03-18-announcing-rust-ipfs/
2020-03-20 – Rust Async and the Terrible, Horrible, No Good, Very Bad Day
My (mis)adventures with async, tokio, and async_std – https://medium.com/@KevinHoffman/rust-async-and-the-terrible-horrible-no-good-very-bad-day-348ebc836274
2020-03-25 – tokio-async-std – https://github.com/wusyong/tokio-async-std
2020-03-27 – Writing an OS in Rust Philipp Oppermann’s blog – Async/Await – https://os.phil-opp.com/async-await/
2020-03-31 – Async HTTP Talk about Async HTTP for the Rust & Tell Berlin meetup – https://speakerdeck.com/yoshuawuyts/async-http
2020-02
-
- 2020-02-01 – Implementing a Copyless Redis Protocol in Rust with Parsing Combinators – https://dpbriggs.ca/blog/Implementing-A-Copyless-Redis-Protocol-in-Rust-With-Parsing-Combinators
2020-02-01 – Writing AWS Lambda Functions with Bastion – https://blog.bastion.rs/2020/02/01/writing-aws-lambda-functions-with-bastion.html
2020-02-01 – How we migrate our framework into async/await – https://medium.com/@pailee.wai/how-we-migrate-our-framework-into-async-await-c67b160e16be
2020-02-05 – Why Discord is switching from Go to Rust – https://blog.discordapp.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
2020-02-07 – The std::future::Future of Rusoto – https://linuxwit.ch/blog/2020/02/the-future-of-rusoto/
2020-02-08 – __Bringing async/await to embedded Rust – https://ferrous-systems.com/blog/embedded-async-await/
2020-02-06 – Futures Explained in 200 lines of Rust – https://cfsamson.github.io/books-futures-explained/
2020-02-11 – Async Interview #6: Eliza Weisman – https://smallcultfollowing.com/babysteps/blog/2020/02/11/async-interview-6-eliza-weisman/
2020-02-11 – A primer to Rust Async – https://omarabid.com/async-rust
2020-02-15 – rusoto が async/.await 対応したのをきっかけにさわってみた雑感 – https://rohki.hatenablog.com/entry/2020/02/15/215157
2020-01
-
- 2020-01-01 – Actix Web: Optimization Amongst Optimizations – https://brandur.org/nanoglyphs/008-actix
2020-01-04 – rust on heroku with async/await and tokio – https://www.ultrasaurus.com/2020/01/rust-on-heroku-with-async-await-and-tokio/
2020-01-07 – Farewell to Rusoto – https://matthewkmayer.github.io/blag/public/post/farewell-rusoto/
rusoto の元の開発者が引退
2020-01-09 – Towards a Rust foundation – https://smallcultfollowing.com/babysteps/blog/2020/01/09/towards-a-rust-foundation/
2020-01-09 – Is there a good read on different async runtimes? – https://users.rust-lang.org/t/is-there-a-good-read-on-different-async-runtimes/36678
2020-01-09 – A simple Telegram bot in Rust with Actix – https://qiita.com/kimagure/items/830924fd5e8e2950b6e4
2020-01-11 – いちばんシンプルな非同期 Rust のランタイムを自作する + Heap Timer – https://qiita.com/legokichi/items/1beb3dce317ef45a927b
2020-01-13 – Async Interview #4: Florian Gilcher – https://smallcultfollowing.com/babysteps/blog/2020/01/13/async-interview-4-florian-gilcher/
2020-01-13 – Building a Microservice with Rust – https://diego-pacheco.blogspot.com/2020/01/building-microservice-with-rust.html
2020-01-13 – The Why, What, and How of Pinning in Rust – https://dev.to/iam_aprogrammer/pinning-asynchronous-programming-in-rust-why-what-and-how-3eal – https://www.youtube.com/watch?v=DwY2KkCX59w
2020-01-14 – hyper-async-std – Attempt at using hyper with the async-std runtime – https://github.com/leo-lb/hyper-async-std
2020-01-14 – Tonic: 0.1 has arrived! – https://luciofran.co/tonic-0-1-release/
2019-01-14 – Understanding Tokio, pt. 2 – https://blog.troutwine.us/2020/01/14/understanding-tokio-pt-2/
2020-01-16 – Can hyper work with async-std instead of Tokio? – https://github.com/hyperium/hyper/issues/2111
2020-01-16 – warp v0.2 – https://seanmonstar.com/post/190293882502/warp-v02
2020-01-16 – __Epoll, Kqueue and IOCP Explained with Rust – Cross Platform Event Queues Explained With __ust – https://cfsamsonbooks.gitbook.io/epoll-kqueue-iocp-explained/
2020-01-17 – Impact of Mozilla layoffs (and future profitability) on Rust’s development and future? – https://users.rust-lang.org/t/impact-of-mozilla-layoffs-and-future-profitability-on-rusts-development-and-future/37011
mozilla のレイオフで Rust 開発者が減った話
2020-01-17 – Smoke-testing Rust HTTP clients – https://medium.com/@shnatsel/smoke-testing-rust-http-clients-b8f2ee5db4e6
2020-01-17 – Actix project postmortem – https://github.com/actix/actix-web-postmortem
2020-01-17 – What is going on? #1 https://github.com/actix/actix-web-postmortem/issues/1
2020-01-17 – A sad day for Rust actix-web is dead. – https://words.steveklabnik.com/a-sad-day-for-rust
2020-01-17 – Actix-net unsoundness patch “is boring” – https://www.reddit.com/r/rust/comments/epszt7/actixnet_unsoundness_patch_is_boring/
2020-01-17 – I am done with open source. – https://mobile.twitter.com/fafhrd91/status/1218135374339301378
2020-01-18 – actix/actix-net#83, actix/actix-net#87 – https://gist.github.com/bb010g/705c8ffe4b9db9550a7782d25e5a53be
2020-01-18 – My experience porting old Rust Futures to async/await – https://medium.com/dwelo-r-d/my-experience-porting-old-rust-futures-to-async-await-744430e9c576
2020-01-19 – My FOSS Story – https://blog.burntsushi.net/foss/
2020-01-19 – Error Handling Examples – https://github.com/seanmonstar/warp/issues/388
2019-01-19 – Synchronized Asynchronous Job Runner in Rust – https://www.zupzup.org/rust-job-runner/
2020-01-20 – Async Interview #5: Steven Fackler – https://smallcultfollowing.com/babysteps/blog/2020/01/20/async-interview-5-steven-fackler/
2020-01-20 – Project future #1289 – https://github.com/actix/actix-web/issues/1289
2020-01-20 – Actix-web is back in the main repo with a note from the Nikolay Kim – https://www.reddit.com/r/rust/comments/erdklb/actixweb_is_back_in_the_main_repo_with_a_note/
2020-01-20 – macros to help using warp – https://github.com/seanmonstar/warp/issues/395
2020-01-21 – Steps forward – https://github.com/actix/actix-web/issues/1291
2020-01-21 – https://twitter.com/JustM0nik4/status/1219302277690748928?s=20
2020-01-21 – The Thank You Thread – https://www.reddit.com/r/rust/comments/ereh5h/the_thank_you_thread/
2020-01-21 – Is this a rewrite of rumqtt? – https://github.com/tekjar/rumq/issues/19
2020-01-22 – Lessons learnt updating a library to std::future – https://cetra3.github.io/blog/mpart-async-0-3-0/
2020-01-22 – Rust 2020 roadmap #2857 – https://github.com/rust-lang/rfcs/pull/2857
2020-01-22 – Returning Trait Objects – http://bryce.fisher-fleig.org/blog/returning-trait-objects/index.html
2020-01-25 – rweb: generate openapi spec file automatically from rust source code – https://www.reddit.com/r/rust/comments/etcev1/rweb_generate_openapi_spec_file_automatically/
2020-01-25 – Build your own block_on() – https://stjepang.github.io/2020/01/25/build-your-own-block-on.html
2020-01-25 – support OpenApi #89 Please check kdy1/rweb – https://github.com/seanmonstar/warp/issues/89#issuecomment-578340768
2020-01-25 – A stack-less Rust coroutine library under 100 LoC – https://blog.aloni.org/posts/a-stack-less-rust-coroutine-100-loc/
2020-01-25 – Actix(Rust) it’s blazing fast – https://diego-pacheco.blogspot.com/2020/01/actixrust-its-blazing-fast.html
2020-01-25 – How to use Rust Warp – https://www.steadylearner.com/blog/read/How-to-use-Rust-Warp
2020-01-25 – Generator Resume Arguments – https://github.com/rust-lang/rust/pull/68524
2020-01-27 – https://mobile.twitter.com/ubnt_intrepid/status/1221750942099337216
2020-01-27 – 500K pps with tokio – https://dwarfhack.com/posts/tech/tokio_pps/
2020-01-29 – TIDE CHANNELS – https://blog.yoshuawuyts.com/tide-channels/
2020-01-30 – New age of Bastion – https://blog.bastion.rs/2020/01/30/new-age-of-bastion.html
2020-01-31 – Build your own executor – https://stjepang.github.io/2020/01/31/build-your-own-executor.html
2019-12
-
- 2019-12-01 – Implementing pid1 with Rust and async/await – https://www.reddit.com/r/rust/comments/e42mio/implementing_pid1_with_rust_and_asyncawait/ – https://tech.fpcomplete.com/rust/pid1
2019-12-01 – Application State – https://github.com/trezm/Thruster/issues/130
2019-12-01 – なぜasyncの中でformat!を使うとエラーが出るのか – https://qiita.com/__pandaman64__/items/2c2864259e0d99be964c
2019-12-01 – Rust Advent Calendar 2019 1日目 Rust の非同期プログラミングモデルはランタイム観点だと Go のそれに似ている – https://keno-ss.hatenadiary.org/entry/2019/12/01/235828
2019-12-02 – Structured Concurrency Support – https://github.com/tokio-rs/tokio/issues/1879
2019-12-02 – http v0.2 – https://seanmonstar.com/post/189439210962/http-v02
2019-12-04 – rust-async-std-tokio-compat – Compatibility layer between async-std and tokio network streams – async-std to tokio streams – https://github.com/jedisct1/rust-async-std-tokio-compat
2019-12-06 – okapi v0.2.0 – https://github.com/GREsau/okapi/releases/tag/v0.2.0
2019-12-08 – Rust Gets Async-Await – https://www.i-programmer.info/news/98-languages/13233-rust-gets-async-await.html
2019-12-09 – Async Interview #2: cramertj – https://smallcultfollowing.com/babysteps/blog/2019/12/09/async-interview-2-cramertj/
2019-12-10 – Async Interview #2: cramertj, part 2 – https://smallcultfollowing.com/babysteps/blog/2019/12/10/async-interview-2-cramertj-part-2/
2019-12-11 – Async Interview #2: cramertj, part 3 – https://smallcultfollowing.com/babysteps/blog/2019/12/11/async-interview-2-cramertj-part-3/
2019-12-10 – rumq v0.1.0-alpha.1 – https://github.com/tekjar/rumq/releases/tag/v0.1.0-alpha.1
2019-12-11 – Actix runtime v1.0.0 – https://github.com/actix/actix-net/releases/tag/rt-1.0.0
2019-12-11 – hyper v0.13.0 – https://github.com/hyperium/hyper/releases/tag/v0.13.0
2019-12-13 – async-std v1.3.0 – https://github.com/async-rs/async-std/releases/tag/v1.3.0
2019-12-14 – wasm-pack で JS の Promise を await できる非同期 Rust を書いて node.js で動かす – https://qiita.com/legokichi/items/dcd7d1ecd6c9b5c877d7
2019-12-16 – Stop worrying about blocking: the new async-std runtime, inspired by Go – https://async.rs/blog/stop-worrying-about-blocking-the-new-async-std-runtime/
2019-12-16 – New scheduler resilient to blocking – https://github.com/async-rs/async-std/pull/631
2019-12-17 – Tokio Roadmap to 1.0 – https://github.com/tokio-rs/tokio/pull/1965
2019-12-17 – Announcing Mio 0.7-alpha.1 – https://tokio.rs/blog/2019-12-mio-v0.7-alpha.1/
2019-12-17 – Rust no-stdのasync完全理解を目指そう! – https://tomo-wait-for-it-yuki.hatenablog.com/entry/2019/12/17/073126
2019-12-18 – http-client 1.1.1 – https://github.com/http-rs/http-client/releases/tag/1.1.1
2019-12-18 – tokio-compat 0.11 – https://github.com/tokio-rs/tokio-compat/releases/tag/0.1.1
2019-12-18 – Announcing Tokio-Compat – https://tokio.rs/blog/2019-12-compat/
2019-12-20 – Do you plan to migrate from tokio to async-std when it matures ? – https://github.com/actix/actix-net/issues/79
2019-12-20 – async fn and async block not support task::current().id(),how to get Coroutines id? – https://github.com/tokio-rs/tokio/issues/1996
2019-12-20 – tower 0.3.0 – https://github.com/tower-rs/tower/releases/tag/tower-0.3.0
2019-12-20 – wasm-bindgen – 0.2.56 – https://github.com/rustwasm/wasm-bindgen/releases/tag/0.2.56 – https://github.com/rustwasm/wasm-bindgen/blob/66e48bd1681fab6ce99a8e3d9230efebaa24d67f/CHANGELOG.md#0256
wasm-bindgen で JS の Promise を Future にして await できるようになった
2019-12-21 – tide 0.5.0 – https://github.com/http-rs/tide/releases/tag/0.5.0
2019-12-22 – How to Detect Accidental Blocking Code in Async Rust – https://rickyhan.com/jekyll/update/2019/12/22/convert-to-async-rust.html
2019-12-21 – async-std v1.4.0 – https://github.com/async-rs/async-std/releases/tag/v1.4.0
2019-12-21 – STREAMS CONCURRENCY – https://blog.yoshuawuyts.com/streams-concurrency/
2019-12-22 – thruster 0.8.0 – https://crates.io/crates/thruster/0.8.0
2019-12-22 – tokioで外部コマンド実行 – https://qiita.com/Kumassy/items/3fb3e52729e375efd5ed
2019-12-23 – Async Interview #3: Carl Lerche – https://smallcultfollowing.com/babysteps/blog/2019/12/23/async-interview-3-carl-lerche/
2019-12-24 – Async Exceptions in Haskell, and Rust – https://tech.fpcomplete.com/blog/async-exceptions-haskell-rust
2019-12-25 – Actix web 2.0.0 is released – https://mobile.twitter.com/fafhrd91/status/1209878253802004480
2019-12-25 – async/await 時代の新しい HTTP サーバーフレームワーク tide を試す – https://yuk1tyd.hatenablog.com/entry/2019/12/25/000100
2019-12-26 – You can try this branch async-await – https://github.com/awslabs/aws-lambda-rust-runtime/issues/14#issuecomment-569046122
2019-12-27 – Preventing the Collapse of Civilization – https://brandur.org/nanoglyphs/007-civilization
2019-12-27 – Sessions – https://github.com/seanmonstar/warp/issues/342#issuecomment-569213444
2019-12-28 – Announcing SQLx, a fully asynchronous pure Rust client library for Postgres and MySQL/MariaDB with compile-time checked queries – https://www.reddit.com/r/rust/comments/egpw7g/announcing_sqlx_a_fully_asynchronous_pure_rust/ – https://github.com/launchbadge/sqlx
2019-12-28 – Rust + GraphQL + Juniper + Diesel + Postgres + Actix – https://github.com/lucperkins/rust-graphql-juniper-actix-diesel-postgres
2019-12-30 – reqwest v0.10 – https://seanmonstar.com/post/189960517042/reqwest-v010
2019-12-30 – Deno, first approach – https://dev.to/lsagetlethias/deno-first-approach-4d0
2019-12-31 – Understanding Tokio, pt. 1 – https://blog.troutwine.us/2019/12/31/understanding-tokio-pt1/
2019-11
-
- 2019-11-01 – tide 0.3.0 – https://github.com/http-rs/tide/releases/tag/0.3.0
2019-11-03 – Experimental cooperative cancellation for async-std – https://github.com/async-rs/stop-token
2019-11-04 – Blocking inside async code – https://stjepang.github.io/2019/12/04/blocking-inside-async-code.html
2019-11-04 – Announcing genawaiter – use generators (yield) on stable Rust – https://users.rust-lang.org/t/announcing-genawaiter-use-generators-yield-on-stable-rust/34283 – https://github.com/whatisaphone/genawaiter
2019-11-05 – Rust 2020 – https://www.ncameron.org/blog/rust-2020/
2019-11-07 – Async-await on stable Rust! – https://blog.rust-lang.org/2019/11/7/Async-await-stable.html
2019-11-07 – Announcing Rust 1.39.0 – https://blog.rust-lang.org/2019/11/7/Rust-1.39.0.html
2019-11-07 – Proposing new AsyncRead / AsyncWrite traits – https://github.com/tokio-rs/tokio/pull/1744
2019-11-08 – Rust 1.39を早めに深掘り – https://tech-blog.optim.co.jp/entry/2019/11/08/080000
2019-11-08 – Rustの非同期プログラミングをマスターする – https://tech-blog.optim.co.jp/entry/2019/11/08/163000
2019-11-07 – async-std 0.99.12: async/.await is ready! – https://async.rs/blog/async-std-0-9-12-async-await-is-ready/
2019-11-07 – futures-rs 0.3.0 – https://github.com/rust-lang/futures-rs/releases/tag/0.3.0
2019-11-07 – Using Rust in Windows – https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/
2019-11-08 – surf 1.0.3 – https://github.com/http-rs/surf/releases/tag/1.0.3
2019-11-08 – https://mobile.twitter.com/yoshuawuyts/status/1192516304827228162
2019-11-10 – hyper v0.13 – https://seanmonstar.com/post/189594157852/hyper-v013
2019-11-11 – Announcing async-std 1.0 – https://async.rs/blog/announcing-async-std-1-0/ – https://www.reddit.com/r/rust/comments/duvdzz/announcing_asyncstd_10/
2019-11-11 – Demystifying Asynchronous Rust – https://github.com/teh-cmc/rust-async – https://teh-cmc.github.io/rust-async/html/
2019-11-12 – async-std v1.0.0 – https://github.com/async-rs/async-std/releases/tag/v1.0.0
2019-11-12 – Rust and 2020 – https://vorner.github.io/2019/11/12/rust-2020.html
2019-11-12 – demo for rust asynchronous io: from mio to stackless coroutine – https://github.com/Hexilee/async-io-demo
2019-11-13 – ERROR HANDLING SURVEY – https://blog.yoshuawuyts.com/error-handling-survey/
2019-11-14 – Thoughts on Error Handling in Rust – https://lukaskalbertodt.github.io/2019/11/14/thoughts-on-error-handling-in-rust.html
2019-11-14 – Global Executors – https://boats.gitlab.io/blog/post/global-executors/
2019-11-14 – https://mobile.twitter.com/qnighy/status/1194764795074887680
2019-11-15 – Global Executors – https://internals.rust-lang.org/t/global-executors/11295
2019-11-15 – Consider matching std::process behavior – https://github.com/tokio-rs/tokio/issues/1771
2019-11-16 – async-stream v0.2.0 – https://github.com/tokio-rs/async-stream/releases/tag/v0.2.0
2019-11-21 – Await Trust-DNS no longer – https://bluejekyll.github.io/blog/rust/2019/12/21/await-trust-dns.html
2019-11-22 – async-std v1.1.0 – https://github.com/async-rs/async-std/releases/tag/v1.1.0
2019-11-22 – https://mobile.twitter.com/ubnt_intrepid/status/1197773414271873024
2019-11-22 – Announcing the Async Interviews – https://smallcultfollowing.com/babysteps/blog/2019/11/22/announcing-the-async-interviews/
2019-11-23 – Async, Awaited – https://brandur.org/nanoglyphs/004-async-awaited
2019-11-24 – Cleanup support in Signal Hook – https://vorner.github.io/2019/11/24/signal-hook-cleanup.html
2019-11-26 – Is this compatible with async-std? – https://github.com/seanmonstar/reqwest/issues/719
2019-11-26 – Announcing Tokio 0.2 and a Roadmap to 1.0 – https://tokio.rs/blog/2019-11-tokio-0-2/
2019-11-27 – tokio-rustls 0.12.0 – https://crates.io/crates/tokio-rustls/0.12.0
2019-11-27 – プロダクションのRustコードを async / await に移行した話 – https://blog.idein.jp/post/189326134515/rust-async-await
2019-11-27 – TIDE – https://blog.yoshuawuyts.com/tide/
2019-11-27 – tokio 0.2.0 – https://github.com/tokio-rs/tokio/releases/tag/tokio-0.2.0
2019-11-28 – tide 0.3.0 – https://github.com/http-rs/tide/releases/tag/0.3.0
2019-11-28 – Async Interview #1: Alex and Nick talk about async I/O and WebAssembly – https://smallcultfollowing.com/babysteps/blog/2019/11/28/async-interview-1-alex-and-nick-talk-about-async-i-o-and-webassembly/
2019-11-28 – async-std v1.2.0 – https://github.com/async-rs/async-std/releases/tag/v1.2.0
2019-11-29 – join! – Rust macros with combinators to join everything – https://www.reddit.com/r/rust/comments/e3evz1/join_rust_macros_with_combinators_to_join/
2019-11-30 – Async Interviews – https://users.rust-lang.org/t/async-interviews/35167
2019-10
-
- 2019-10-01 – tokio 0.2.0-alpha.6 – https://crates.io/crates/tokio/0.2.0-alpha.6
2019-10-02 – Tonic: gRPC has come to async/await! – https://luciofran.co/tonic-grpc-has-come-to-async-await/
2019-10-04 – Actix server v0.7.0 – https://github.com/actix/actix-net/releases/tag/server-v0.7.0
2019-10-07 – Async Foundations Update: Time for polish! – https://blog.rust-lang.org/inside-rust/2019/10/7/AsyncAwait-WG-Focus-Issues.html
2019-10-07 – Will it be possible to use async-await in a tower service?- https://github.com/tower-rs/tower/issues/358
2019-10-08 – reqwest alpha.await – https://seanmonstar.com/post/188220739932/reqwest-alphaawait
2019-10-09 – The Node Experiment – Exploring Async Basics with Rust – https://cfsamson.github.io/book-exploring-async-basics/
2019-10-10 – futures-timer 1.0.0 – https://github.com/async-rs/futures-timer/releases/tag/1.0.0
2019-10-11 – Improving async-await’s “Future is not Send” diagnostic – https://blog.rust-lang.org/inside-rust/2019/10/11/AsyncAwait-Not-Send-Error-Improvements.html
2019-10-13 – Making the Tokio scheduler 10x faster – https://tokio.rs/blog/2019-10-scheduler/
2019-10-14 – Opensource and ownership transfer – https://github.com/AtherEnergy/rumqtt/issues/179
2019-10-16 – Asynchronous Destructors – https://boats.gitlab.io/blog/post/poll-drop/
2019-10-16 – Rust’s Journey to Async/await – https://www.infoq.com/presentations/rust-2019/
2019-10-26 – Making an opinionated Web framework – https://speakerdeck.com/qnighy/making-an-opinionated-web-framework
2019-10-26 – why async fn in traits are hard – https://smallcultfollowing.com/babysteps/blog/2019/10/26/async-fn-in-traits-are-hard/
2019-10-27 – tokio vs async-std ? – https://www.reddit.com/r/rust/comments/dngig6/tokio_vs_asyncstd/
2019-10-27 – Trying to futures::executor::block_on(run_server()) gives runtime error – https://github.com/hyperium/hyper/issues/1995#issuecomment-554997179
2019-10-30 – The Rustasync working group has sunset Runtime is no longer active – https://github.com/rustasync/team
2019-10-31 – Can anyone give me a high level summary of the difference between Tokio and Async-std, as well as how async works in rust? – https://www.reddit.com/r/rust/comments/dpjlkt/can_anyone_give_me_a_high_level_summary_of_the/f5wkmvn/
2019-10-30 – deprecate – https://github.com/rustasync/runtime/pull/121
2019-10-31 – https://twitter.com/Linda_pp/status/1189734163139555329
2019-09
-
- 2019-09-02 – FUTURES CONCURRENCY – https://blog.yoshuawuyts.com/futures-concurrency/
2019-09-02 – How Rust optimizes async/await II: Program analysis – https://tmandry.gitlab.io/blog/posts/optimizing-await-2/
2019-09-03 – RustでRuntimeを使用してmainをasyncにする – https://sioyaki.com/entry/2019/09/03/152447
2019-09-04 – Pinning and Service – https://github.com/tower-rs/tower/issues/319
2019-09-04 – hyper alpha supports async/await – https://seanmonstar.com/post/187493499882/hyper-alpha-supports-asyncawait
2019-09-12 – async-stream v0.1.1 – https://github.com/tokio-rs/async-stream/releases/tag/v0.1.1
2019-09-13 – tokio-0.2.0-alpha4AsyncReadandAsyncWritetraits are not the same asfutures-0.3.0-alpha18` versions – https://github.com/tokio-rs/tokio/issues/1551
2019-09-14 – Tracking issue for std::future migration – https://github.com/actix/actix-net/issues/45
2019-09-14 – The Why, What, and How of Pinning in Rust – https://www.youtube.com/watch?v=DkMwYxfSYNQ&feature=youtu.be
2019-09-15 – Playing with the new async – https://vorner.github.io/2019/09/15/play-with-new-async.html
2019-09-18 – mio-timerfd 0.1.0 – https://github.com/oefd/mio-timerfd – https://crates.io/crates/mio-timerfd/0.1.0
2019-09-19 – Tide’s Future Direction – https://github.com/http-rs/tide/issues/325
2019-09-19 – Using async-std (was reqwest) – https://users.rust-lang.org/t/using-async-std-was-reqwest/32735
2019-09-20 – Will crates like tokio, mio and futures be still needed after async/await gets stabilized? – https://old.reddit.com/r/rust/comments/d6pw43/will_crates_like_tokio_mio_and_futures_be_still/f0v27a4/
2019-09-20 – tokio 0.2.0-alpha.5 – https://github.com/tokio-rs/tokio/releases/tag/tokio-0.2.0-alpha.5 – https://crates.io/crates/tokio/0.2.0-alpha.5
2019-09-20 – https://mobile.twitter.com/qnighy/status/1175057815313907712
2019-09-21 – ASYNC BUILDERS – https://blog.yoshuawuyts.com/async-finalizers/
2019-09-22 – https://mobile.twitter.com/qnighy/status/1175699769865359362
2019-09-22 – https://mobile.twitter.com/qnighy/status/1175678940926464000
2019-09-22 – https://mobile.twitter.com/qnighy/status/1175709767685177345
2019-09-24 – rumqtt v0.31.0 – https://github.com/AtherEnergy/rumqtt/releases/tag/v0.31.0
2019-09-27 – WASM Support – https://github.com/seanmonstar/reqwest/pull/630
2019-09-26 – Async Ecosystem Working Group Meeting #30 – https://github.com/rustasync/team/issues/143
2019-09-27 – futures-preview 0.3.0-alpha.19 – https://crates.io/crates/futures-preview/0.3.0-alpha.19
2019-09-29 – Fighting the Async fragmentation – https://vorner.github.io/2019/09/29/figthting-the-async-fragmentation.html
async ランタイムの断片化を心配する話
2019-09-30 – Async-await hits beta! – https://blog.rust-lang.org/2019/09/30/Async-await-hits-beta.html
Async Ecosystem WG が廃止
Async Foundations WG は async-book の整備に
2019-08
-
- 2019-08-02 – Zero-Cost Asynchronous Programming in Rust – https://blog.knoldus.com/zero-cost-asynchronous-programming-in-rust/
2019-08-03 – Rustのasync/awaitをスムーズに使うためのテクニック – https://qiita.com/qnighy/items/59133e69a0ba0c6a7fef
2019-08-06 – Async I/O TransactionGuard – https://github.com/diesel-rs/diesel/issues/399#issuecomment-518422793
2019-08-08 – Swagger/OpenAPI Spec generation – https://www.reddit.com/r/rust/comments/cn9wrc/swaggeropenapi_spec_generation/
2019-08-08 – Tokio alpha release with async & await – https://tokio.rs/blog/2019-08-alphas/
2019-08-09 – tokio 0.2.0-alpha.1 – https://crates.io/crates/tokio/0.2.0-alpha.1
2019-08-09 – dtolnay::01_await_a_minute – https://docs.rs/dtolnay/0.0.3/dtolnay/macro_01__await_a_minute.html
2019-08-11 – Runtime configuration reloading – https://vorner.github.io/2019/08/11/runtime-configuration-reloading.html
2019-08-16 – Announcing async-std – https://async.rs/blog/announcing-async-std/ – https://news.ycombinator.com/item?id=20719095
2019-08-16 – https://mobile.twitter.com/asyncrs/status/1162393724745322496
2019-08-17 – Compatibility with tokio? – https://github.com/async-rs/async-std/issues/54
2019-08-17 – https://mobile.twitter.com/yoshuawuyts/status/1162492948430413824
2019-08-17 – https://mobile.twitter.com/Argorak/status/1162514356560699396
2019-08-18 – How Rust optimizes async/await I – https://tmandry.gitlab.io/blog/posts/optimizing-await-1/
2019-08-20 – futures-preview – 0.3.0-alpha.18 – https://crates.io/crates/futures-preview/0.3.0-alpha.18
2019-08-21 – https://mobile.twitter.com/yaahc_/status/1164176227722121216
2019-08-11 – async-log – 2.0.0 – https://github.com/async-rs/async-log/releases/tag/2.0.0
2019-08-12 – actix-webの柔軟なリクエストハンドラの仕組み – http://blog.endflow.net/flex-handler/
2019-08-13 – Rust 1.38 is scheduled to branch off today, but this PR didn’t land yet and there are a bunch of blockers still open. – https://github.com/rust-lang/rust/pull/63209#issuecomment-520741844
2019-08-14 – SURF – https://blog.yoshuawuyts.com/surf/
2019-08-14 – Diagnostics with Tracing – https://tokio.rs/blog/2019-08-tracing/
2019-08-14 – AWS’ sponsorship of the Rust project – https://aws.amazon.com/jp/blogs/opensource/aws-sponsorship-of-the-rust-project/
2019-08-14 – Should the standard library have a basic Future runtime? – https://internals.rust-lang.org/t/should-the-standard-library-have-a-basic-future-runtime/10705/11
2019-08-15 – Announcing Rust 1.37.0 – https://blog.rust-lang.org/2019/8/15/Rust-1.37.0.html
2019-08-15 – async generator changes – https://github.com/Nemo157/embrio-rs/pull/23
2019-08-15 – Understanding Futures in Rust — Part 2 – https://www.viget.com/articles/understanding-futures-is-rust-part-2/-
2019-08-17 – async-std v0.99.0 – https://github.com/async-rs/async-std/releases/tag/v0.99.0
2019-08-17 – Announcing async-std beta: an async port of the Rust standard library – https://www.reddit.com/r/rust/comments/cr85pp/announcing_asyncstd_beta_an_async_port_of_the/
2019-08-17 – fred.rs 1.1.1 – https://github.com/azuqua/fred.rs/releases/tag/1.1.1
2019-08-18 – tokio 0.2.0-alpha.2 – https://crates.io/crates/tokio/0.2.0-alpha.2
2019-08-21 – Remove async_await feature – https://github.com/rust-lang/async-book/pull/33
2019-08-23 – runtime-native 0.3.0-alpha.6 – https://crates.io/crates/runtime-native/0.3.0-alpha.6
2019-08-24 – replace redis-async with redis crate – https://github.com/actix/actix-redis/pull/30
2019-08-25 – Poll: Async/Await, let’s talk about executors! – https://users.rust-lang.org/t/poll-async-await-lets-talk-about-executors/31753
2019-08-27 – Async Stack Traces in Rust – https://fitzgeraldnick.com/2019/08/27/async-stacks-in-rust.html
2019-08-28 – Running RusotoFuture on tokio:0.2.0-alpha.2 – https://github.com/rusoto/rusoto/issues/1493
2019-08-28 – rust から redis を非同期で使う 2019夏 – https://qiita.com/hadashiA/items/22f331c8b407011fa7fa
2019-08-29 – surf 1.0.1 – https://github.com/http-rs/surf/releases/tag/1.0.1
2019-08-29 – tokio 0.2.0-alpha.3 – https://crates.io/crates/tokio/0.2.0-alpha.3
2019-08-30 – tokio 0.2.0-alpha.4 – https://crates.io/crates/tokio/0.2.0-alpha.4
2019-08-30 – Async ecosystems newsletter/blog post #1 – https://github.com/rustasync/team/issues/142
2019-07
-
- 2019-07-04 – tokio – 0.1.22 – https://crates.io/crates/tokio/0.1.22
2019-07-04 – futures-preview 0.3.0-alpha.17 – https://crates.io/crates/futures-preview/0.3.0-alpha.17
2019-07-04 – Announcing Rust 1.36.0 – https://blog.rust-lang.org/2019/7/4/Rust-1.36.0.html
core::future が stable に入った
2019-07-05 – Rustの未来いわゆるFuture – https://tech-blog.optim.co.jp/entry/2019/07/05/173000
2019-07-05 – Update to std::future::Future futures/0.3 – https://github.com/actix/actix-web/issues/955
2019-07-06 – Rustのasync/awaitの特徴4つ – https://qiita.com/qnighy/items/05c38f73ef4b9e487ced
2019-07-07 – RustのFutureとそのRunnerを作ってみた – https://keens.github.io/blog/2019/07/07/rustnofuturetosonorunnerwotsukuttemita/
2019-07-08 – Async-await status report #2 – https://smallcultfollowing.com/babysteps/blog/2019/07/08/async-await-status-report-2/
2019-07-09 – Migrating a crate from futures 0.1 to 0.3 – https://www.ncameron.org/blog/migrating-a-crate-from-futures-0-1-to-0-3/
2019-07-17 – Notes on a smaller Rust – https://boats.gitlab.io/blog/post/notes-on-a-smaller-rust/
2019-07-19 – Determine the future of tower-web -https://github.com/carllerche/tower-web/issues/218
2019-07-27 – openapi-generatorで生成されたrustのコードでエラーがでる。 – https://ja.stackoverflow.com/questions/56943/openapi-generator%E3%81%A7%E7%94%9F%E6%88%90%E3%81%95%E3%82%8C%E3%81%9Frust%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E3%81%A7%E3%82%8B
2019-07-31 – Paperclip 0.3.0 released! – https://www.reddit.com/r/rust/comments/cjw534/paperclip_030_released/
2019-06
-
- 2019-06-04 – Removing libpq (to enable async) – https://github.com/diesel-rs/diesel/issues/2084
2019-06-05 – actix-web 1.0.0 – https://github.com/actix/actix-web/releases/tag/web-v1.0.0
2019-06-05 – Actix-web 1.0 released – https://www.reddit.com/r/rust/comments/bwy99w/actixweb_10_released/
2019-06-12 – 「Rustで始めるネットワークプログラミング」を出版しました。 – https://cha-shu00.hatenablog.com/entry/2019/06/12/231526
2019-06-13 – Green Threads Explained in 200 Lines of Rust – https://cfsamson.gitbook.io/green-threads-explained-in-200-lines-of-rust/
2019-06-14 – AWS Kinesis ひたすら読みにいく k-iter の複数 shard 対応(と、Rust の Future/Stream/Tokio 話) – https://rohki.hatenablog.com/entry/2019/06/24/210938
2019-06-17 – runtime-native 0.3.0-alpha.4 – https://crates.io/crates/runtime-native/0.3.0-alpha.4
2019-06-18 – Rust Creator Graydon Hoare Talks About Security, History, and Rust – https://thenewstack.io/rust-creator-graydon-hoare-talks-about-security-history-and-rust/
2019-06-19 – How Rust Views Tradeoffs – https://www.infoq.com/presentations/rust-tradeoffs/
2019-06-20 – Distributed Systems Training in Go and Rust – https://pingcap.com/blog/distributed-systems-training-in-go-and-rust/
2019-06-20 – RUST STREAMS – https://blog.yoshuawuyts.com/rust-streams/
2019-06-20 – tokio::spawn failed (is a tokio runtime running this future?) – https://github.com/http-rs/tide/issues/280
2019-06-24 – Survivor skills – https://aturon.github.io/personal/2019/06/24/survivor-skills/
2019-06-25 – Back in the saddle – https://aturon.github.io/tech/2019/06/25/back-in-the-saddle/
2019-06-27 – runtime-native 0.3.0-alpha.5 – https://crates.io/crates/runtime-native/0.3.0-alpha.5
2019-06-27 – futures-rs – 0.1.28 – https://github.com/rust-lang/futures-rs/releases/tag/0.1.28
2019-06-29 – ASYNC LOG – https://blog.yoshuawuyts.com/async-log/ – https://mobile.twitter.com/yoshuawuyts/status/1144750481631301632
2019-06-29 – Lambda with Async/Await – https://github.com/awslabs/aws-lambda-rust-runtime/pull/111
2019-05
-
- 2019-05-06 – A final proposal for await syntax – https://boats.gitlab.io/blog/post/await-decision/
2019-05-06 – redisconf19 – Writing Redis Modules In Rust – https://www.reddit.com/r/rust/comments/bl0vew/redisconf19_writing_redis_modules_in_rust/
2019-05-09 – tokio console – https://github.com/tokio-rs/console
2019-05-10 – async support – https://github.com/awslabs/aws-lambda-rust-runtime/pull/106
2019-05-11 – futures-preview 0.3.0-alpha.16 – https://crates.io/crates/futures-preview/0.3.0-alpha.16
2019-05-12 – Rewrite async/await in their entirety – https://github.com/Nemo157/embrio-rs/pull/13
2019-05-13 – runtime-native 0.3.0-alpha.3 – https://crates.io/crates/runtime-native/0.3.0-alpha.3
2019-05-15 – 4 years of Rust – https://blog.rust-lang.org/2019/5/15/4-Years-Of-Rust.html
2019-05-16 – Zero Cost Abstractions – https://boats.gitlab.io/blog/post/zero-cost-abstractions/
2019-05-18 – https://mobile.twitter.com/yutakashino/status/1129529590697717760
2019-05-23 – Announcing Rust 1.35.0 – https://blog.rust-lang.org/2019/5/23/Rust-1.35.0.html
dbg! マクロ
2019-05-27 – Can we reduce the burden of cancel-correctness for async Futures? – https://internals.rust-lang.org/t/can-we-reduce-the-burden-of-cancel-correctness-for-async-futures/10278
2019-05-28 – Async/Await – The challenges besides syntax – Cancellation – https://gist.github.com/Matthias247/ffc0f189742abf6aa41a226fe07398a8
2019-05-28 – Update on await syntax – https://boats.gitlab.io/blog/post/await-decision-ii/
2019-05-31 – tokio 0.1.21 – https://crates.io/crates/tokio/0.1.21
2019-04
-
- 2019-04-02 – Explained: How does async work in Rust? – https://levelup.gitconnected.com/explained-how-does-async-work-in-rust-c406f411b2e2 – https://dev.to/gruberb/explained-how-does-async-work-in-rust-46f8
2019-04-11 – thruster 0.7.0 – https://crates.io/crates/thruster/0.7.0
2019-04-15 – for await loops (Part I) – https://boats.gitlab.io/blog/post/for-await-i/
2019-04-16 – RUNTIME – https://blog.yoshuawuyts.com/runtime/
Async Ecosystem WG は std と同じ使い勝手の async 環境のために runtime の抽象化を試みていた
2019-04-16 – futures-preview 0.3.0-alpha.14 – https://crates.io/crates/futures-preview/0.3.0-alpha.14
2019-04-17 – runtime-native 0.3.0-alpha.1 – https://crates.io/crates/runtime-native/0.3.0-alpha.1
2019-04-18 – Futures 0.1 Compatibility Layer – https://rust-lang.github.io/futures-rs/blog/2019/04/18/compatibility-layer.html
2019-04-15 – tide 0.1.0 – https://github.com/http-rs/tide/releases/tag/0.1.0
2019-04-15 – Understanding Futures In Rust — Part 1 – https://www.viget.com/articles/understanding-futures-in-rust-part-1/
2019-04-17 – Announcing Runtime – https://internals.rust-lang.org/t/announcing-runtime/9825
2019-04-21 – The Nuclear Reactor Design Pattern – https://vorner.github.io/2019/04/21/nuclear-reactor-design-pattern.html
2019-04-21 – async-timer 0.1.0 – https://github.com/DoumanAsh/async-timer – https://crates.io/crates/async-timer/0.1.0
2019-04-22 – RustLatam 2019 – Without Boats: Zero-Cost Async IO – https://www.youtube.com/watch?v=skos4B5x7qE
2019-04-23 – [tracking issue] timers – https://github.com/rustasync/runtime/issues/14
2019-04-24 – RustLatam 2019 – Without Boats: Zero-Cost Async IO – https://www.reddit.com/r/rust/comments/bgikha/rustlatam_2019_without_boats_zerocost_async_io/
2019-04-25 – Made timerfd implementation with romio – https://github.com/rustasync/team/issues/14#issuecomment-486279799
2019-04-27 – tower 0.1.0 – https://github.com/tower-rs/tower/releases/tag/tower-0.1.0
2019-04-27 – 0.3.0-alpha.15 – https://crates.io/crates/futures-preview/0.3.0-alpha.15
2019-04-28 – async is not zero-cost – https://www.reddit.com/r/rust/comments/bi9yzs/async_is_not_zerocost/
2019-04-29 – juliex 0.3.0-alpha.6 – https://github.com/withoutboats/juliex/releases/tag/0.3.0-alpha.6
2019-04-29 – runtime-native 0.3.0-alpha.2 – https://crates.io/crates/runtime-native/0.3.0-alpha.2
2019-04-29 – http-service 0.2.0 – https://github.com/http-rs/http-service/releases/tag/http-service-0.2.0
2019-03
-
- 2019-03-01 – Async-await status report – https://smallcultfollowing.com/babysteps/blog/2019/03/01/async-await-status-report/
await 論争
2019-03-05 – Actix web 0.7.19 – https://github.com/actix/actix-web/releases/tag/v0.7.19
2019-03-14 – Question: Is it possible to use warp on zeit or aws lambda – https://github.com/seanmonstar/warp/issues/190
2019-03-15 – Switching to tower::Service – https://github.com/hyperium/hyper/issues/1782
2019-03-19 – Async IO in Rust and Haskell – https://slides.com/wraithm/async-io-in-rust-and-haskell/
2019-03-19 – Explained: Futures in Rust for Web Development – https://dev.to/gruberb/explained-rust-futures-for-web-development-a10
2019-03-25 – std::pin の勘所 – https://www.slideshare.net/HiroakiGoto/stdpin
2019-02
-
- 2019-02-04 – osaka.rs – https://aep.github.io/rust-async-without-the-noise/ – https://github.com/aep/osaka – https://news.ycombinator.com/item?id=19104065
-
- 2019-02-04 – Rust Governance: Scaling Empathy – https://manishearth.github.io/blog/2019/02/04/rust-governance-scaling-empathy/
2019-02-09 – async/awaitと合成可能性 – https://keens.github.io/blog/2019/02/09/async_awaittogouseikanousei/
2019-02-10 – osaka.rs メモ – https://qiita.com/maueki/items/c0bb363120e0f01d27ec
2019-02-11 – Generators I: Toward a minimum viable product – https://boats.gitlab.io/blog/post/generators-i/
2019-02-14 – futures-native-timers – https://github.com/tinaun/futures-native-timers
2019-02-18 – Generators II: The Question Mark Problem – https://boats.gitlab.io/blog/post/generators-ii/
2019-02-21 – futures-preview 0.3.0-alpha.13 – https://crates.io/crates/futures-preview/0.3.0-alpha.13
2019-02-22 – Rust lang team working groups – https://smallcultfollowing.com/babysteps/blog/2019/02/22/rust-lang-team-working-groups/
2019-02-22 – Toy Future combinators with async/await syntax – https://www.reddit.com/r/rust/comments/at6gh7/toy_future_combinators_with_asyncawait_syntax/
2019-02-27 – ASYNC ECOSYSTEM WG – https://blog.yoshuawuyts.com/async-ecosystem-wg/
Async Ecosystem WG (rustasync) は tide, romio, juliex を開発
2019-01
-
- 2019-01-07 – The Waker API I: what does a waker do? – https://boats.gitlab.io/blog/post/wakers-i/
2019-01-10 – HTTP Client Trait – https://github.com/hyperium/http/issues/288
carllerche は tower が http server/cliernt 抽象化層になるはずとのこと
2019-01-11 – The Waker API II: waking across threads – https://boats.gitlab.io/blog/post/wakers-ii/
LocalWaker がいらない理由
2019-01-16 – futures-preview 0.3.0-alpha.12 – https://crates.io/crates/futures-preview/0.3.0-alpha.12
2019-01-18 – Move to Rustasync organization ? – https://github.com/withoutboats/juliex/issues/21
2019-01-18 – Move to Rustasync organization ? – https://github.com/withoutboats/romio/issues/94
2019-01-25 – aws-lambda-rust-runtime v0.2.0 – https://github.com/awslabs/aws-lambda-rust-runtime/releases/tag/v0.2.0
2019-01-28 – tracing-core 0.1.0 – https://github.com/tokio-rs/tracing/releases/tag/tracing-core-0.1.0
2019-01-31 – Tracking issue: timer bindings #62 – https://github.com/withoutboats/romio/issues/62