S-JIS[2024-12-15] 変更履歴

Rust tokioメモ

Rustのtokioクレートのメモ。


概要

tokioは、非同期処理を行う(async/awaitを使う)Rustアプリケーションを作成するための実装。


Cargo.toml:

〜

[dependencies]
tokio = { version = "1.42.0", features=["full"] }

tokioのフィーチャーは色々あるが、とりあえずfullを指定しておくと全部使える。


#[tokio::main]

main関数asyncを付けたい場合、#[tokio::main]を使う。

#[tokio::main]を使うには、macrosとrt-multi-threadフィーチャーが必要。

Cargo.toml:

[dependencies]
tokio = { version = "1.42.0", features=["macros", "rt-multi-thread"] }

src/main.rs:

#[tokio::main]
async fn main() {
    〜
}

#[tokio::main]を付けた関数は、実体としては、block_onを使った形式に変換されるらしい。

参考: ODENさんの【rust】async/awaitのベストプラクティス


#[tokio::test]

テスト用の関数にasyncを付けたい場合、#[test]の代わりに#[tokio::test]を使う。

#[cfg(test)]
mod test{
    #[tokio::test]
    async fn test1(){
        〜
    }
}

use文でインポートしておく方が便利かも。

#[cfg(test)]
mod test{
    use tokio::test;

    #[test]
    async fn test1(){
        〜
    }
}

Rustへ戻る / 技術メモへ戻る
メールの送信先:ひしだま