rust-system-event-driven について
Rustでイベント駆動システムを開発する人向けのリファレンススキルです。非同期ランタイム、通信、並行処理、I/O、イベントループを扱う42のルールを8カテゴリに分け、ネットワークサービスや端末UI、正常終了の指針も示します。
主な機能
- 018カテゴリ、42のルール
- 02優先度別の非同期ランタイム指針
- 03チャネル通信と同期パターン
- 04ネットワーク・端末I/Oの実践
- 05シグナル処理と終了管理
活用シーン
- 01Tokioまたはasync-stdアプリのレビュー
- 02ネットワーククライアントやサーバーの設計
- 03端末ユーザーインターフェースの構築
- 04並行タスクと終了処理の管理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rust-system-event-drivenインストール後、Claude Code で/rust-system-event-drivenを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mdasync-cancellation-safe.mdasync-no-std-block.mdasync-select-biased.mdasync-spawn-blocking.mdasync-structured-concurrency.mdasync-task-local.mdchan-bounded-backpressure.mdchan-broadcast-fanout.mdchan-graceful-shutdown.mdchan-oneshot-response.mdchan-watch-state.mdio-async-file-ops.mdio-copy-bidirectional.mdio-flush-before-read.mdio-pipe-communication.mdio-stream-large-files.mdloop-actor-model.mdloop-cancellation-token.mdloop-event-types.mdloop-layered-architecture.mdloop-state-machine.mdnet-connection-pool.mdnet-framing-codec.mdnet-graceful-disconnect.mdnet-split-reader-writer.mdnet-tcp-nodelay.md詳細
Rust のイベント駆動システムに関するベストプラクティス
Rust でイベント駆動システムをプログラミングするための包括的なベストプラクティスガイドです。8 つのカテゴリにわたる 42 のルールが、影響度順にまとめられており、非同期ランタイムの使用、チャネル通信、スレッド処理、ネットワーク、ターミナルの処理に役立ちます。
適用する場面
次のような場合に、これらのガイドラインを参照してください。
- Tokio または async-std を使って非同期アプリケーションを構築する場合
- ネットワークサーバーまたはクライアントを実装する場合
- ターミナルユーザーインターフェース(TUI)を作成する場合
- 並行タスクと共有状態を管理する場合
- Unix シグナルとグレースフルシャットダウンを処理する場合
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | 非同期ランタイムのパターン | CRITICAL | async- |
| 2 | チャネル通信 | CRITICAL | chan- |
| 3 | スレッド処理と同期 | HIGH | sync- |
| 4 | ソケットとネットワーク I/O | HIGH | net- |
| 5 | ターミナルと TTY の処理 | MEDIUM-HIGH | term- |
| 6 | シグナルとプロセス制御 | MEDIUM | sig- |
| 7 | ファイル I/O ストリーミング | MEDIUM | io- |
| 8 | イベントループのアーキテクチャ | LOW-MEDIUM | loop- |
クイックリファレンス
1. 非同期ランタイムのパターン(CRITICAL)
async-spawn-blocking- CPU バウンドの処理には spawn_blocking を使用するasync-select-biased- 優先度を扱うには biased select を使用するasync-no-std-block- 非同期コンテキストでは std のブロッキング呼び出しを避けるasync-cancellation-safe- キャンセルセーフな非同期操作を設計するasync-task-local- リクエストコンテキストにはタスクローカルストレージを使用するasync-structured-concurrency- 構造化並行性には JoinSet を使用する
2. チャネル通信(CRITICAL)
chan-bounded-backpressure- バックプレッシャーには有界チャネルを使用するchan-oneshot-response- リクエストとレスポンスには oneshot チャネルを使用するchan-broadcast-fanout- ファンアウトには broadcast チャネルを使用するchan-watch-state- 共有状態には watch チャネルを使用するchan-graceful-shutdown- グレースフルシャットダウンにはチャネルのクローズを使用する
3. スレッド処理と同期(HIGH)
sync-arc-mutex-shared- 変更可能な共有状態には Arc を使用するsync-rwlock-read-heavy- 読み取り負荷の高いワークロードには RwLock を使用するsync-atomic-counters- 単純なカウンターとフラグにはアトミックを使用するsync-avoid-lock-await- await をまたいで std Mutex を保持しないsync-semaphore-limit- 並行性の制限には Semaphore を使用するsync-parking-lot- 競合の激しいロックには parking_lot を使用する
4. ソケットとネットワーク I/O(HIGH)
net-split-reader-writer- ソケットを読み取り側と書き込み側に分割するnet-framing-codec- メッセージベースのプロトコルにはフレーミングを使用するnet-connection-pool- 接続を繰り返す場合はコネクションプールを使用するnet-timeout-all-io- すべてのネットワーク操作にタイムアウトを設定するnet-tcp-nodelay- 低レイテンシのプロトコルでは TCP_NODELAY を設定するnet-graceful-disconnect- グレースフルな接続終了を実装する
5. ターミナルと TTY の処理(中〜高)
term-raw-mode-restore- 終了時に必ずターミナルの状態を復元するterm-alternate-screen- 全画面アプリでは代替画面を使用するterm-async-event-stream- ターミナル入力には非同期イベントストリームを使用するterm-buffered-output- パフォーマンス向上のため、ターミナル出力をバッファリングするterm-handle-resize- ターミナルのサイズ変更イベントを処理する
6. シグナルとプロセス制御(中)
sig-ctrl-c-graceful- Ctrl-C を処理して正常にシャットダウンするsig-unix-signals- Unix シグナルを非同期で処理するsig-child-reap- ゾンビプロセスを防ぐため、子プロセスを回収するsig-timeout-shutdown- 強制終了するためのシャットダウンタイムアウトを設定する
7. ファイル I/O ストリーミング(中)
io-async-file-ops- 非同期コンテキストでは非同期ファイル操作を使用するio-stream-large-files- 大きなファイルはすべて読み込まず、ストリーミングするio-copy-bidirectional- プロキシ処理には copy_bidirectional を使用するio-pipe-communication- プロセス間通信にはパイプを使用するio-flush-before-read- 応答を待つ前に書き込みをフラッシュする
8. イベントループのアーキテクチャ(低〜中)
loop-actor-model- 状態を持つコンポーネントにはアクターパターンを使用するloop-event-types- 動的ディスパッチではなく、型付きイベントを使用するloop-state-machine- プロトコルの状態を型安全なステートマシンとしてモデル化するloop-layered-architecture- I/O とビジネスロジックを分離するloop-cancellation-token- 協調的なシャットダウンには CancellationToken を使用する
使用方法
詳しい説明とコード例については、各リファレンスファイルを参照してください。
リファレンスファイル
| ファイル | 説明 |
|---|---|
| references/_sections.md | カテゴリの定義と順序 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
| metadata.json | バージョンとリファレンス情報 |
コメント
Markdown 対応