Iii iii-rust-sdk

install
source · Clone the upstream repo
git clone https://github.com/iii-hq/iii
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/iii-hq/iii "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/iii-rust-sdk" ~/.claude/skills/iii-hq-iii-iii-rust-sdk && rm -rf "$T"
manifest: skills/iii-rust-sdk/SKILL.md
source content

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
RegisterFunction
Builder 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::Void
Fire-and-forget invocation
TriggerAction::Enqueue { queue }
Durable async invocation
IIIError
Error type for handler failures
Streams
Helper for atomic stream CRUD
with_span
,
get_tracer
,
get_meter
OpenTelemetry (requires
otel
feature)
execute_traced_request
HTTP 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 HTTP middleware patterns, see
    iii-http-middleware
  • For Node.js SDK, see
    iii-node-sdk
  • For Python SDK, see
    iii-python-sdk
  • For browser-side usage, see
    iii-browser-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.