mcpField
I
iii-rust-sdk

iii-rust-sdk

github.com/iii-hqDevelopment219 installs
Repository

About iii-rust-sdk

A skill for using the native asynchronous Rust SDK to connect workers to the iii engine. It covers function registration, trigger binding and invocation, plus optional OpenTelemetry support.

Key features

  1. 01Connect workers to the iii engine
  2. 02Register sync and async functions
  3. 03Bind triggers to functions
  4. 04Invoke functions with trigger requests
  5. 05Optional OpenTelemetry instrumentation

Use cases

  1. 01Connect a Rust worker to iii
  2. 02Register asynchronous function handlers
  3. 03Invoke functions with queued actions
  4. 04Propagate trace context in HTTP requests

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/iii-hq/skills --skill iii-rust-sdk

After installing, type/iii-rust-sdkin Claude Code to confirm it loaded.

Details

From the project README

Rust SDK

The native async Rust SDK for connecting workers to the iii engine via tokio.

Documentation

Full API reference: https://iii.dev/docs/api-reference/sdk-rust

Install

Add to Cargo.toml:

iii-sdk = { version = "0.10", features = ["otel"] }

Key Types and Functions

ExportPurpose
register_worker(url, InitOptions)Connect to the engine, returns III client
III::register_function(RegisterFunction::new(id, handler))Register a sync function using the builder API
III::register_function(RegisterFunction::new_async(id, handler))Register an async function using the builder API
III::register_function_with(msg, handler)Two-arg convenience method for function registration
RegisterFunctionBuilder with .description() and auto-generated request schemas via schemars
III::register_trigger(type, function_id, config)Bind a trigger to a function
III::trigger(TriggerRequest)Invoke a function
TriggerAction::VoidFire-and-forget invocation
TriggerAction::Enqueue { queue }Durable async invocation
IIIErrorError type for handler failures
StreamsHelper for atomic stream CRUD
with_span, get_tracer, get_meterOpenTelemetry (requires otel feature)
execute_traced_requestHTTP client with trace context propagation

Key Notes

  • Add features = ["otel"] to Cargo.toml for OpenTelemetry support
  • Use RegisterFunction::new("id", handler) for sync handlers, RegisterFunction::new_async("id", handler) for async
  • Handler input types that derive schemars::JsonSchema get auto-generated request schemas
  • Chain .description("...") on RegisterFunction to document the function
  • Keep the tokio runtime alive (e.g., tokio::time::sleep loop) for event processing
  • register_trigger returns Ok(()) on success; propagate errors with ?

Pattern Boundaries

  • For usage patterns and working examples, see iii-functions-and-triggers
  • For Node.js SDK, see iii-node-sdk
  • For Python SDK, see iii-python-sdk

When to Use

  • Use this skill when the task is primarily about iii-rust-sdk in the iii engine.
  • Triggers when the request directly asks for this pattern or an equivalent implementation.

Boundaries

  • Never use this skill as a generic fallback for unrelated tasks.
  • You must not apply this skill when a more specific iii skill is a better fit.
  • Always verify environment and safety constraints before applying examples from this skill.

Comments

Markdown supported