iii-sdk-reference
Use when working with iii SDK APIs across Node.js, browser, Python, or Rust: package installation, worker initialization, function/trigger registration, invocation, channels, logging, OpenTelemetry, and language-specific caveats.
By iii-hq · 2,265 installs
npx skills add iii-hq/iii --skill iii-sdk-reference
Source repository · Upstream listing
SDK Reference
Use this skill for language specific SDK details. Use iii core primitives for the common model and
iii error handling for exception handling.
Install
Choose the SDK
SDK Package Best for Important caveat
Node.js iii sdk Server side TypeScript/JavaScript workers Supports custom headers, Logger, OpenTelemetry, HTTP invoked functions
Browser iii browser sdk Web apps and interactive UI callbacks Connect through an RBAC protected listener; keep secrets server side
Python iii sdk Sync or async Python workers Use trigger async inside async handlers
Rust iii sdk High performance tokio workers Handler error type should map into iii sdk::Error
Logger /OpenTelemetry, HTTP request/response types, stream, queue, and worker connection types live in
the helpers package — @iii dev/helpers (Node, with submodules like /observability and /http ) or
iii helpers (Python iii helpers. , Rust iii helpers:: ) — installed alongside the SDK.
Common API Map
Capability Node Python Rust
Connect worker registerWorker(url, options?) register worker(address, options?) register worker(url, InitOptions)
Register local function registerFunction(id, handler, options?) register function(id, handler, options) register function(RegisterFunction::new(...))
Register trigger registerTrigger({ type, function id, config }) register trigger({...}) register trigger(RegisterTriggerInput { ... })
Invoke function trigger({ function id, payload }) trigger(request) / trigger async(request) trigger(TriggerRequest)
Durable enqueue TriggerAction.Enqueue({ queue }) {"type": "enqueue", "queue": name} TriggerAction::Enqueue { queue }
Channels createChannel() create channel() / create channel async() create channel(None).await
Node.js
Node supports custom WebSocket headers, Logger , OpenTelemetry options, HTTP invoked function
registration, trigger metadata, channels, and custom trigger types.
Browser
Do not expose the private engine worker port to untrusted browsers. Browser workers cannot send
custom WebSocket headers and must not hold backend secrets.
Python
Python handlers may be sync or async. Use await iii.trigger async(request) inside async handlers,
and iii.trigger(request) in sync contexts. HttpResponse (from iii helpers.http ) uses camelCase statusCode .
Rust
Rust supports typed handlers and schema extraction when input/output types derive
schemars::JsonSchema . Add the otel feature when using OpenTelemetry helpers.
Channels
Use channels for binary data, large payloads, or streaming transfer between workers.
Pass readerRef or writerRef through a function payload.
Reconstruct readers/writers from refs in consumers when the SDK requires it.
When to Use
Use this skill for package names, SDK exports, initialization options, browser security constraints,
channel API details, and language specific syntax.
Use this when a task asks for Python or Rust examples and the issue is SDK syntax rather than iii
architecture.
Boundaries
For the common Function/Trigger/Worker model, built in trigger schemas, custom triggers, and
invocation mode decisions, use iii core primitives .
For deployment config, queue adapter policy, worker manager, RBAC listeners, and ports, use
iii engine config .
For retryability and exception classes, use iii error handling .