iii-rust-sdk について
ネイティブの非同期 Rust SDK で worker を iii エンジンに接続する方法を扱うスキルです。iii worker を構築する Rust 開発者向けに、関数登録、トリガーの紐付けと呼び出し、オプションの OpenTelemetry 対応を説明します。
主な機能
- 01worker と iii エンジンの接続
- 02同期・非同期関数の登録
- 03関数へのトリガーの紐付け
- 04トリガーリクエストによる関数呼び出し
- 05オプションの OpenTelemetry 計装
活用シーン
- 01Rust worker の iii への接続
- 02非同期関数ハンドラーの登録
- 03キューアクションによる関数呼び出し
- 04HTTP リクエストでのトレースコンテキスト伝播
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ iii-hq/ skills --skill iii-rust-sdkインストール後、Claude Code で/iii-rust-sdkを入力して読み込まれたか確認します。
詳細
Rust SDK
tokio を介してワーカーを iii エンジンに接続するための、ネイティブな非同期 Rust SDK です。
ドキュメント
API リファレンス全文:https://iii.dev/docs/api-reference/sdk-rust
インストール
Cargo.toml に追加します:
iii-sdk = { version = "0.10", features = ["otel"] }
主な型と関数
| エクスポート | 目的 |
|---|---|
register_worker(url, InitOptions) | エンジンに接続し、III クライアントを返します |
III::register_function(RegisterFunction::new(id, handler)) | ビルダー API を使用して同期関数を登録します |
III::register_function(RegisterFunction::new_async(id, handler)) | ビルダー API を使用して非同期関数を登録します |
III::register_function_with(msg, handler) | 関数登録用の、2 引数の簡易メソッドです |
RegisterFunction | .description() と schemars による自動生成リクエストスキーマを備えたビルダー |
III::register_trigger(type, function_id, config) | トリガーを関数にバインドします |
III::trigger(TriggerRequest) | 関数を呼び出します |
TriggerAction::Void | 結果を待たずに実行する呼び出し |
TriggerAction::Enqueue { queue } | 永続化される非同期呼び出し |
IIIError | ハンドラーの失敗を表すエラー型 |
Streams | アトミックなストリームの CRUD を支援するヘルパー |
with_span, get_tracer, get_meter | OpenTelemetry(otel 機能が必要です) |
execute_traced_request | トレースコンテキストを伝播する HTTP クライアント |
主な注意事項
- OpenTelemetry のサポートを有効にするには、
Cargo.tomlにfeatures = ["otel"]を追加します - 同期ハンドラーには
RegisterFunction::new("id", handler)を、非同期ハンドラーにはRegisterFunction::new_async("id", handler)を使用します schemars::JsonSchemaを derive するハンドラーの入力型では、リクエストスキーマが自動生成されます- 関数を説明するには、
RegisterFunctionに.description("...")をチェーンします - イベント処理のために tokio ランタイムを稼働したままにします(例:
tokio::time::sleepループ) register_triggerは成功時にOk(())を返します。エラーは?で伝播させます
パターンの範囲
- 使用パターンと動作するサンプルについては、
iii-functions-and-triggersを参照してください - Node.js SDK については、
iii-node-sdkを参照してください - Python SDK については、
iii-python-sdkを参照してください
使用する場面
- 主に iii エンジンの
iii-rust-sdkに関するタスクでは、このスキルを使用します。 - リクエストがこのパターンまたは同等の実装を直接求めている場合に適用します。
適用範囲
- 無関係なタスクに対する汎用的な代替手段として、このスキルを使用しないでください。
- より具体的な iii スキルが適している場合は、このスキルを適用しないでください。
- このスキルのサンプルを適用する前に、必ず環境と安全性の制約を確認してください。
コメント
Markdown 対応