この記事は 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つのエコシステムが並立しています。
runtime | tokio | async-std |
actix-rt (tokio) |
---|---|---|---|
scheduler | work-stealing | work-stealing | actor & worker-pool |
main |
tokio::main, tokio::test |
async_std::main, async_std::test |
actix_rt::main, actix_rt::test |
block_on | tokio::runtime::Runtime::block_on | async_std::block_on |
actix_rt::SystemRunner::block_on, actix_rt::Runtime::block_on |
http trait |
tower, tower-http, tower-http-service |
http-service, http-client |
actix-http |
http-client | reqwest | surf | awc |
http-server | hyper | http-service-hyper | actix-http |
web framework | warp | tide | actix-web |
logger | tracing | async-log | actix-tracing |
timer | tokio::time |
futures-timer, async_std::future::timeout |
actix_rt::time (tokio) |
tls |
tokio-tls, tokio-rustls |
async-tls, async-native-tls |
actix-tls |
tcp & udp | tokio | async-std |
actix-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-alpha4
AsyncRead
and
AsyncWritetraits are not the same as
futures-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
withredis
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
ontokio: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