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 .