observableシーケンスを使って非同期・イベントベースのプログラムを組み立てる、Java VM向けReactive Extensions実装。
tokio-rs/tokio
信頼性の高いネットワークアプリケーションの構築に役立つ、タスクスケジューリング、ノンブロッキングI/O、ネットワーク、タイマーを提供するRust向け非同期ランタイムです。
- スター
- 33,502
- フォーク
- 5,781
- 未解決の Issue
- 440
- 最終コミット
- 10 時間前
これは何?
Tokioは、Rustで非同期アプリケーションを開発するためのイベント駆動型ノンブロッキングI/Oプラットフォームです。マルチスレッドのワークスティーリング型タスクスケジューラ、OSのイベントキュー(epoll、kqueue、IOCPなど)を利用するリアクター、非同期TCP・UDPソケットをまとめて提供します。
スレッドを接続ごとに割り当てずに、多数の接続を同時に処理したいネットワークサービスや、I/O負荷の高いプログラムの開発者を対象としています。アプリケーションでは必要な機能フラグを有効にし、ランタイムのspawn、タイマー、同期プリミティブとasync/awaitを組み合わせて利用します。
このプロジェクトは、Webフレームワークのaxum、HTTP実装のhyper、gRPCライブラリのtonic、ミドルウェア抽象化のtower、診断フレームワークのtracingなどを含む、より広いエコシステムの一部です。
主な機能
- 01マルチスレッドのワークスティーリング型タスクスケジューラ
- 02ノンブロッキングTCP・UDPソケット
- 03epoll、kqueue、IOCPを基盤とするリアクター
- 04タイマーと非同期同期プリミティブ
- 05機能フラグにより、必要なコンポーネントだけをプロジェクトに含められる
ユースケース
- Rustで高い同時接続数に対応するTCP・UDPネットワークサーバーを構築する
- 多数のサービスを並行して呼び出す非同期クライアントを開発する
- タイマーやキャンセル機能を使い、I/O負荷の高いバックグラウンドタスクを実行する
クイックスタート
- 1
Cargo.toml に Tokio をすべての機能とともに追加します
tokio = { version = "1.54.1", features = ["full"] } - 2
main.rs に TCP エコーサーバーの例を書き、cargo でプロジェクトを実行します
使う前に知っておきたいこと
- Rust ツールチェーンが必要です。サポートされる Rust の最小バージョンは 1.85 です。
- Tokio はランタイムライブラリのため、自分でビルドする Rust プロジェクト内でのみ使用できます。
トピック
よくある質問
- tokio とは?
- 信頼性の高いネットワークアプリケーションの構築に役立つ、タスクスケジューリング、ノンブロッキングI/O、ネットワーク、タイマーを提供するRust向け非同期ランタイムです。 Tokioは、Rustで非同期アプリケーションを開発するためのイベント駆動型ノンブロッキングI/Oプラットフォームです。マルチスレッドのワークスティーリング型タスクスケジューラ、OSのイベントキュー(epoll、kqueue、IOCPなど)を利用するリアクター、非同期TCP・UDPソケットをまとめて提供します。
- tokio は無料で使えますか?ライセンスは?
- tokio は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- tokio は今もメンテナンスされていますか?
- 活発にメンテナンス中。tokio の最終コミットは 2026年10月24日 です。
- tokio は何に使えますか?
- Rustで高い同時接続数に対応するTCP・UDPネットワークサーバーを構築する 多数のサービスを並行して呼び出す非同期クライアントを開発する タイマーやキャンセル機能を使い、I/O負荷の高いバックグラウンドタスクを実行する
- tokio のインストール方法は?
- Cargo.toml に Tokio をすべての機能とともに追加します: tokio = { version = "1.54.1", features = ["full"] } main.rs に TCP エコーサーバーの例を書き、cargo でプロジェクトを実行します
- tokio はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/tokio-rs/tokio
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
concurrent.futuresを使ってHTTPリクエストを非同期に送信する、Pythonのrequestsライブラリ向け小型アドオンです。
保守性と高性能を重視したネットワークプロトコルのサーバーやクライアントを構築するための、非同期・イベント駆動型Javaフレームワークです。
Node.jsを支えるイベントループを提供する、クロスプラットフォーム対応の非同期I/O用Cライブラリ。
Sogouのバックエンドサービスで使われているC++11並列計算・非同期ネットワークフレームワーク。DAGベースのタスクワークフローを構築できます。
ローカルのTCPポートをリモートサーバー経由で公開する、Rust製のシンプルなCLIです。