Loading...
Loading...
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.
npx skill4agent add iii-hq/iii iii-sdk-referenceiii-core-primitivesiii-error-handling# TypeScript / Node.js
npm install iii-sdk
# Browser apps
npm install iii-browser-sdk
# Python
pip install iii-sdk
# Rust
cargo add iii-sdk| SDK | Package | Best for | Important caveat |
|---|---|---|---|
| Node.js | | Server-side TypeScript/JavaScript workers | Supports custom headers, Logger, OpenTelemetry, HTTP-invoked functions |
| Browser | | Web apps and interactive UI callbacks | Connect through an RBAC-protected listener; keep secrets server-side |
| Python | | Sync or async Python workers | Use |
| Rust | | High-performance tokio workers | Handler error type should map into |
| Capability | Node | Python | Rust |
|---|---|---|---|
| Connect worker | | | |
| Register local function | | | |
| Register trigger | | | |
| Invoke function | | | |
| Durable enqueue | | | |
| Channels | | | |
import { Logger, registerWorker } from "iii-sdk";
const iii = registerWorker("ws://localhost:49134", {
workerName: "node-worker",
invocationTimeoutMs: 30000,
});
iii.registerFunction("users::lookup", async (input) => {
new Logger().info("looking up user", { userId: input.userId });
return { userId: input.userId, name: "Ada" };
});Loggerimport { registerWorker, TriggerAction } from "iii-browser-sdk";
const iii = registerWorker("wss://api.example.com/worker?token=session-token");
const result = await iii.trigger({
function_id: "backend::get-user",
payload: { userId: "123" },
});
await iii.trigger({
function_id: "analytics::track",
payload: { event: "page_view" },
action: TriggerAction.Void(),
});from iii import InitOptions, Logger, register_worker
iii = register_worker(
address="ws://localhost:49134",
options=InitOptions(worker_name="python-worker"),
)
def lookup_user(data):
Logger().info("looking up user", {"userId": data["userId"]})
return {"userId": data["userId"], "name": "Ada"}
iii.register_function("users::lookup", lookup_user)await iii.trigger_async(request)iii.trigger(request)ApiResponsestatusCodeuse iii_sdk::{register_worker, InitOptions, RegisterFunction};
use serde_json::json;
let iii = register_worker("ws://127.0.0.1:49134", InitOptions::default());
iii.register_function(
RegisterFunction::new("users::lookup", |input: serde_json::Value| {
Ok(json!({ "userId": input["userId"], "name": "Ada" }))
}).description("Look up a user"),
)?;schemars::JsonSchemaotelreaderRefwriterRefiii-core-primitivesiii-engine-configiii-error-handling