Browser SDK for connecting to the iii engine from web applications via WebSocket. Use when building browser-based clients that register functions, invoke triggers, or consume streams from the frontend.
The browser-optimized SDK for connecting web applications to the iii engine.
Full API reference: https://iii.dev/docs/api-reference/sdk-browser
npm install iii-browser-sdk
| Export | Purpose |
|---|---|
registerWorker(address, options?) | Connect to the engine via WebSocket |
registerFunction(id, handler) | Register a browser-side function handler |
registerTrigger({ type, function_id, config, metadata? }) |
| Bind a trigger to a function |
trigger({ function_id, payload, action? }) | Invoke a function |
TriggerAction.Void() | Fire-and-forget invocation mode |
TriggerAction.Enqueue({ queue }) | Durable async invocation mode |
registerTriggerType({ id, description }, { registerTrigger, unregisterTrigger }) | Custom trigger type registration |
createChannel() | Binary streaming between workers |
Logger export — use browser console or your own loggingws:// or wss:// URL (no registerWorker URL options)import { registerWorker, TriggerAction } from 'iii-browser-sdk'
const iii = registerWorker('ws://localhost:49135')
iii.registerFunction('ui::greet', async (data) => {
return { message: `Hello, ${data.name}!` }
})
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(),
})
Code using this pattern commonly includes, when relevant:
registerWorker('ws://host:49135') — connect from browserregisterWorker('wss://host:49135') — connect with TLS in productioniii.registerFunction(id, handler) — register browser-side handleriii.trigger({ function_id, payload }) — call server-side functionsiii.trigger({ ..., action: TriggerAction.Void() }) — fire-and-forget from browserws://host:3112/stream/{name}/{group} for real-time updatesiii-node-sdk.iii-realtime-streams.iii-python-sdk or iii-rust-sdk.iii-browser-sdk when the client is a web browser.iii-browser-sdk in the iii engine.