CtrlK
BlogDocsLog inGet started
Tessl Logo

iii-rust-sdk

Rust SDK for the iii engine. Use when building high-performance workers, registering functions, or invoking triggers in Rust.

73

Quality

66%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./skills/iii-rust-sdk/SKILL.md
SKILL.md
Quality
Evals
Security

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 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.
Repository
iii-hq/iii
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.