rust について
Rust 開発者やコーディングエージェント向けのパフォーマンス実践ガイドです。メモリ、所有権、コレクション、非同期処理、アルゴリズム、コンパイル時最適化を優先度順に扱います。
主な機能
- 018カテゴリの優先度別ガイド
- 02メモリ割り当てと所有権のルール
- 03コレクションとイテレータのパターン
- 04非同期処理と並行処理の実践
- 05アルゴリズムとコンパイル時最適化
活用シーン
- 01Rustコードの新規作成
- 02コードのパフォーマンスレビュー
- 03メモリと所有権パターンの最適化
- 04Rustの非同期コードの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill rustインストール後、Claude Code で/rustを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
AGENTS.mdREADME.mdmetadata.jsonassets/templates/_template.mdreferences/_sections.mdalgo-avoid-nested-loops-for-lookup.mdalgo-use-binary-search-for-sorted-data.mdalgo-use-chunks-for-batch-processing.mdalgo-use-select-nth-unstable-for-partial-sort.mdalgo-use-sort-unstable-when-order-irrelevant.mdasync-avoid-blocking-in-async-context.mdasync-avoid-holding-lock-across-await.mdasync-minimize-lock-scope.mdasync-use-buffered-for-bounded-concurrency.mdasync-use-join-for-concurrent-futures.mdasync-use-rwlock-over-mutex-for-read-heavy.mdcomp-avoid-repeated-parsing-of-static-data.mdcomp-prefer-static-dispatch.mdcomp-reduce-monomorphization-bloat.mdcomp-use-const-for-compile-time-computation.mdcomp-use-const-generics-for-array-sizes.mdds-use-btreemap-for-sorted-iteration.mdds-use-entry-api-for-conditional-insert.mdds-use-hashmap-for-key-lookup.mdds-use-hashset-for-membership.mdds-use-vecdeque-for-queue-operations.mditer-chain-instead-of-intermediate-collect.mditer-use-extend-for-bulk-append.mditer-use-filter-map-for-combined-operations.mditer-use-flat-map-for-nested-iteration.md詳細
コミュニティ向け Rust のベストプラクティス
Rust アプリケーションの包括的なパフォーマンス最適化ガイドです。8 つのカテゴリにまたがる 42 個のルールを、影響度の高い順に掲載し、自動リファクタリングとコード生成の指針を示します。
適用するタイミング
次の場合に、これらのガイドラインを参照してください。
- 新しい Rust コードを書くとき
- メモリ割り当てと所有権のパターンを最適化するとき
- イテレーターやコレクションを扱うとき
- Tokio やその他のランタイムを使って非同期コードを書くとき
- パフォーマンス上の問題がないかコードをレビューするとき
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | メモリ割り当て | CRITICAL | mem- |
| 2 | 所有権と借用 | CRITICAL | own- |
| 3 | データ構造の選択 | HIGH | ds- |
| 4 | イテレーターとコレクションのパターン | HIGH | iter- |
| 5 | 非同期処理と並行処理 | MEDIUM-HIGH | async- |
| 6 | アルゴリズムの計算量 | MEDIUM | algo- |
| 7 | コンパイル時の最適化 | MEDIUM | comp- |
| 8 | マイクロ最適化 | LOW | micro- |
クイックリファレンス
1. メモリ割り当て(CRITICAL)
mem-avoid-unnecessary-clone- 不要な clone 呼び出しを避けるmem-preallocate-vec-capacity- Vec の容量を事前に確保するmem-use-cow-for-conditional-ownership- 条件付きの所有権には Cow を使うmem-use-arc-for-shared-immutable-data- 共有する不変データには Arc を使うmem-avoid-format-for-simple-concatenation- 単純な連結には format! を使わないmem-use-smallvec-for-small-collections- 小規模なコレクションには SmallVec を使う
2. 所有権と借用(CRITICAL)
own-accept-str-slice-not-string- &String ではなく &str を受け取るown-accept-slice-not-vec- &Vec ではなく &[T] を受け取るown-use-into-for-flexible-ownership- 柔軟な所有権のために Into を使うown-return-borrowed-when-possible- 可能であれば借用データを返すown-use-asref-for-generic-borrows- ジェネリックな借用には AsRef を使う
3. データ構造の選択(HIGH)
ds-use-hashset-for-membership- メンバーシップの判定には HashSet を使うds-use-hashmap-for-key-lookup- キーと値の検索には HashMap を使うds-use-btreemap-for-sorted-iteration- ソート順のイテレーションには BTreeMap を使うds-use-vecdeque-for-queue-operations- キュー操作には VecDeque を使うds-use-entry-api-for-conditional-insert- 条件付き挿入には Entry API を使う
4. イテレーターとコレクションのパターン(高)
iter-chain-instead-of-intermediate-collect- 中間で collect せず、イテレーターをチェーンしますiter-use-iter-over-into-iter-when-borrowing- 借用する場合は into_iter() ではなく iter() を使用しますiter-use-filter-map-for-combined-operations- 複合操作には filter_map を使用しますiter-use-flat-map-for-nested-iteration- ネストした反復処理には flat_map を使用しますiter-use-extend-for-bulk-append- 一括追加には extend() を使用しますiter-use-fold-for-accumulation- 複雑な累積処理には fold() を使用します
5. 非同期処理と並行処理(中〜高)
async-avoid-blocking-in-async-context- 非同期コンテキストでブロッキングを避けますasync-use-join-for-concurrent-futures- 並行するフューチャーには join! を使用しますasync-use-rwlock-over-mutex-for-read-heavy- 読み取りが多い場合は Mutex ではなく RwLock を使用しますasync-minimize-lock-scope- ロックのスコープを最小限にしますasync-use-buffered-for-bounded-concurrency- 並行処理数を制限するには buffered() を使用しますasync-avoid-holding-lock-across-await- await をまたいでロックを保持しないようにします
6. アルゴリズムの計算量(中)
algo-avoid-nested-loops-for-lookup- 検索にネストしたループを使用しないようにしますalgo-use-binary-search-for-sorted-data- ソート済みデータには二分探索を使用しますalgo-use-sort-unstable-when-order-irrelevant- 順序が重要でない場合は sort_unstable を使用しますalgo-use-select-nth-unstable-for-partial-sort- 部分ソートには select_nth_unstable を使用しますalgo-use-chunks-for-batch-processing- バッチ処理には chunks() を使用します
7. コンパイル時の最適化(中)
comp-use-const-for-compile-time-computation- コンパイル時の計算には const を使用しますcomp-prefer-static-dispatch- 動的ディスパッチより静的ディスパッチを優先しますcomp-reduce-monomorphization-bloat- モノモーフィゼーションによる肥大化を抑えますcomp-use-const-generics-for-array-sizes- 配列サイズには const ジェネリクスを使用しますcomp-avoid-repeated-parsing-of-static-data- 静的データの解析を繰り返さないようにします
8. マイクロ最適化(低)
micro-use-inline-for-small-functions- 小さく、実行頻度の高い関数には inline 属性を適用しますmicro-avoid-bounds-checks-in-hot-loops- 実行頻度の高いループで境界チェックを避けますmicro-use-wrapping-arithmetic-when-safe- 安全な場合はラッピング演算を使用しますmicro-use-byte-literals-for-ascii- ASCII にはバイトリテラルを使用します
使用方法
詳しい説明とコード例については、各リファレンスファイルをお読みください。
- セクションの定義 - カテゴリー構成と影響度レベル
- ルールのテンプレート - 新しいルールを追加するためのテンプレート
コンパイル済みドキュメントの全文
すべてのルールを1つのドキュメントにまとめた包括的なガイドについては、AGENTS.mdをご覧ください。
参照ファイル
| ファイル | 説明 |
|---|---|
| AGENTS.md | すべてのルールをまとめた完全なガイド |
| references/_sections.md | カテゴリーの定義と並び順 |
| assets/templates/_template.md | 新しいルール用のテンプレート |
| metadata.json | バージョンと参照情報 |
コメント
Markdown 対応