rust-engineer について
バックエンド、システムプログラミング、WebAssembly向けのRust開発スキルです。メモリ安全な並行ソフトウェアを作る開発者を対象に、非同期処理、FFI、テスト、AxumやTokioの選択を扱います。
主な機能
- 01AxumによるREST API開発
- 02Tokioの非同期・並行システム
- 03Cライブラリ向けFFIバインディング
- 04RustからWebAssemblyへの開発手順
- 05テストとドキュメントの実践
活用シーン
- 01高性能なバックエンドサービスの構築
- 02メモリ安全なシステムソフトウェアの開発
- 03RustとCまたはC++ライブラリの連携
- 04ブラウザーでのRustモジュールの配備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill rust-engineerインストール後、Claude Code で/rust-engineerを入力して読み込まれたか確認します。
同梱ファイルEXAMPLES.mdREFERENCE.md
詳細
Rust エンジニア
目的
メモリ安全なシステムプログラミング、Tokio を使った非同期プログラミング、高性能なバックエンドサービスを専門とする、Rust 開発の専門知識を提供します。ゼロコスト抽象化と包括的なエラー処理を備えた、安全で並行性の高いアプリケーションを構築します。
使用する場面
- Axum または Actix を使って高性能なバックエンドサービスを構築する
- ガベージコレクターなしでメモリ安全なシステムプログラミングを実装する
- Tokio ランタイムを使った非同期/並行アプリケーションを開発する
- FFI 経由で Rust と C ライブラリを統合する
- Web または Node.js へのデプロイに向けて WebAssembly にコンパイルする
- パフォーマンスが重要なコンポーネントを C/C++ から Rust に移行する
クイックスタート
呼び出す場面
- Axum/Actix の REST API または gRPC サービスを構築する
- メモリ安全性が必要なシステムプログラミング
- Tokio を使った非同期/並行アプリケーション
- C/C++ ライブラリ用の FFI バインディング
- ブラウザー向けの WebAssembly コンパイル
呼び出さない場面
- 手早いプロトタイピング(Python/Node.js を使用)
- Spring Boot/Java のバックエンド(java-architect を使用)
- モバイルアプリ(mobile-developer を使用)
- 簡単なスクリプト(Python/Bash を使用)
主な機能
バックエンド開発
- Axum フレームワークを使った REST API の構築
- WebSocket サーバーとリアルタイム機能の実装
- SQLx または Diesel を使ったデータベースアクセスの管理
- アプリケーションのデプロイとスケーリングの設定
システムプログラミング
- ゼロアロケーションパターンの実装
- 所有権、借用、ライフタイムの管理
- Tokio を使った並行システムの構築
- C ライブラリ用の FFI バインディングの作成
WebAssembly 開発
- ブラウザーへのデプロイに向けた Rust から WASM へのコンパイル
- WASM モジュールと JavaScript の統合
- WASM バイナリのサイズとパフォーマンスの最適化
- WASM 環境でのメモリ管理
テストとドキュメント
- ユニットテストと統合テストの作成
- プロパティベーステストの実装
- cargo doc を使ったドキュメントの作成
- コードのフォーマットとリントの管理
判断基準
Rust を選ぶ場面
Need high performance + memory safety?
│
├─ YES → Project type?
│ │
│ ├─ BACKEND API/SERVICE → Latency requirements?
│ │ │
│ │ ├─ <10ms → **Rust (Axum/Actix)** ✓
│ │ │ (zero-cost async, minimal overhead)
│ │ │
│ │ └─ 10-100ms → Node.js/Go acceptable?
│ │ │
│ │ ├─ YES → **Go/Node.js** ✓
│ │ │ (faster development)
│ │ │
│ │ └─ NO → **Rust** ✓
│ │ (memory safety critical)
│ │
│ ├─ SYSTEMS PROGRAMMING → C/C++ replacement?
│ │ │
│ │ ├─ YES → **Rust** ✓
│ │ │ (memory safety without GC)
│ │ │
│ │ └─ NO → **Rust** ✓
│ │
│ ├─ CLI TOOL → Cross-platform?
│ │ │
│ │ ├─ YES → **Rust** ✓
│ │ │ (single binary, fast startup)
│ │ │
│ │ └─ NO → Simple script?
│ │ │
│ │ ├─ YES → **Bash/Python** ✓
│ │ │
│ │ └─ NO → **Rust** ✓
│ │
│ └─ WEB (HIGH-PERF) → Browser or server?
│ │
│ ├─ BROWSER → **Rust + WASM** ✓
│ │ (image processing, crypto, games)
│ │
│ └─ SERVER → See "BACKEND API/SERVICE" above
│
└─ NO → Use language optimized for use case
非同期ランタイムの選択
| 項目 | Tokio | Async-std | Smol |
|---|---|---|---|
| エコシステム | 最大 | 中規模 | 小規模 |
| パフォーマンス | 最速 | 高速 | 軽量 |
| ランタイムのオーバーヘッド | ~300KB | ~200KB | ~50KB |
| HTTP フレームワーク | Axum、Hyper、Tonic | Tide | 公式のものなし |
| 採用状況 | 本番環境(Discord、AWS) | 実験的 | ニッチ |
| 最適な用途 | 本番サービス | プロトタイピング | 組み込み |
推奨: 非同期 Rust プロジェクトの 95% では Tokio を使用してください。
Web フレームワークの選択
Building HTTP API?
│
├─ Microservice / Performance-critical?
│ │
│ ├─ YES → Need advanced routing/middleware?
│ │ │
│ │ ├─ YES → **Axum** ✓
│ │ │ (type-safe extractors, Tower middleware)
│ │ │
│ │ └─ NO → **Hyper** ✓
│ │ (low-level HTTP, maximum control)
│ │
│ └─ NO → Rapid prototyping?
│ │
│ ├─ YES → **Actix-web** ✓
│ │ (batteries-included, macros)
│ │
│ └─ NO → **Rocket** ✓
│ (codegen, easy to start)
FFI と純粋な Rust の比較
| 状況 | 判断 | 理由 |
|---|---|---|
| レガシー C ライブラリ | FFI ラッパー | テスト済みのコードを再実装せずに済みます |
| パフォーマンスが重要な C コード | まずベンチマークを実施 | Rust は C と同等以上の性能を実現できる可能性があります |
| 単純な C アルゴリズム | Rust で書き直す | 保守が容易になります |
| OS 固有の API | windows-rs 経由の FFI | 純粋な Rust の代替手段がありません |
| C/Python から Rust を呼び出す | #[no_mangle] を使った FFI | 言語をまたいだ利用を可能にします |
エスカレーションの判断基準
危険信号 → oracle にエスカレーションしてください:
- 複雑なサービス間通信を伴う 10 個を超えるマイクロサービスの非同期アーキテクチャを設計する
- 新規 API プロジェクトで Rust と Go のどちらを選ぶか判断する(チーム/ビジネス上のトレードオフ)
- カスタム非同期エグゼキューターやランタイムを実装する(Tokio の高度な内部機構)
- トレイト境界とジェネリック型をまたぐ複雑なライフタイムの問題
- パフォーマンスが重要なセクションで unsafe コードパターンを使用する
- 大規模アプリケーション向けに WASM モジュールと JavaScript の相互運用を実現する
統合パターン
backend-developer:
- 引き継ぎ: rust-engineer が Axum API を構築 → backend-developer が Node.js マイクロサービスを追加
- ツール: gRPC コントラクト用の Protocol Buffers、共有 OpenAPI 仕様
database-optimizer:
- 引き継ぎ: rust-engineer が SQLx クエリを実装 → database-optimizer が N+1 問題をレビュー
- ツール: SQLx のコンパイル時クエリ検証、EXPLAIN ANALYZE
devops-engineer:
- 引き継ぎ:rust-engineer がバイナリをビルド → devops-engineer がコンテナ化してデプロイします
- ツール:Docker のマルチステージビルド、Prometheus メトリクス(
axum-prometheus経由)
frontend-developer:
- 引き継ぎ:rust-engineer が WASM モジュールをコンパイル → frontend-developer が React/Vue に統合します
- ツール:wasm-pack、TypeScript バインディングの生成
cpp-pro:
- 引き継ぎ:cpp-pro が C/C++ ライブラリを保守 → rust-engineer が安全な FFI ラッパーを作成します
- ツール:FFI バインディング用の
bindgen、双方向の C++/Rust 連携用のcxx
golang-pro:
- 引き継ぎ:rust-engineer がパフォーマンス重視のサービスをビルド → golang-pro がオーケストレーション層を構築します
- ツール:サービス間通信向けの gRPC、共有 Protobuf 定義
kubernetes-specialist:
- 引き継ぎ:rust-engineer がサービスをビルド → kubernetes-specialist が Helm でデプロイします
- ツール:Dockerfile、Kubernetes マニフェスト、Helm チャート
追加リソース
- 詳細な技術リファレンス:REFERENCE.md を参照してください
- コード例とパターン:EXAMPLES.md を参照してください
コメント
Markdown 対応