iii README

The project's README from github.com/iii-hq/iii. As one markdown file: README.md.

iii

iii: point-to-point integrations vs zero-integration via shared runtime

iii-hq%2Fiii | Trendshift

Docker npm PyPI Crates.io Discord

Worker downloads Weekly worker downloads Docker pulls npm downloads PyPI downloads Crates.io downloads

What is iii? · Quick Start · Add Workers · SDKs · Agent Skills · Console · Resources

What is iii?

iii is the easiest way to compose, extend, and observe every service in your stack in real time.

Every backend starts as a project before the first line of business logic. Queues, cron, HTTP, state, observability, agents, and sandboxes each usually bring their own integration story. iii collapses that into one live system surface.

iii compose --namespace dev --up
iii trigger -n dev compose::add worker=queue
iii trigger -n dev compose::add worker=agent
iii trigger -n dev compose::add worker=<anything>

Each worker joins the live catalog. Every other worker is notified and can call it immediately. Browse available workers at workers.iii.dev.

That is the agent story too: when a task needs a capability the system does not have, an agent can add a worker, discover its functions, call them, and trace what happened. Same interface a developer uses.

Three Primitives

Worker _ Function _ Trigger is the entire mental model.

Workers are processes that register with the iii engine and then register triggers and functions. A TypeScript API service is a worker. A Python data pipeline is a worker. A Rust microservice is a worker. Any functionality can be transformed into a worker with a few lines of code. Compose can also add workers at runtime, so agents and applications can extend the system while it is running.

Triggers are anything that causes a function to run. A trigger can be a direct call to a function, an HTTP endpoint, a cron schedule, a queue subscription, a state change, a stream event, or anything else. Triggers are declarative: the Worker defines "this function runs when this thing happens," and iii handles routing, serialization, and delivery.

Functions are units of work with a stable identifier (e.g., content::classify, orders::validate). It receives input, does work, and optionally returns output. Functions exist in workers.

By mapping everything a service can do to these three primitives iii creates a development process that is both effortlessly composable, and completely observable.

What Changes

Before iii:

After iii:

Platform teams publish workers. Application teams register functions and declare triggers. Agents use the same catalog and the same function calls.

Extending iii is adding a Compose worker. Composing iii is calling functions. Observing iii is opening the trace.

Quick Start

Watch the iii intro (click to play)

Install iii:

curl -fsSL https://install.iii.dev/iii/main/install.sh | sh

Then scaffold and start a project:

iii project init myapp    # scaffold a project
cd myapp
# declare project workers in worker-compose.yaml
iii compose --up          # start the engine and project workers

Full walkthrough at the Quickstart guide.

Add Workers

Declare project workers in worker-compose.yaml, or add them through a running Compose daemon:

iii trigger -n dev compose::add worker=queue

Browse packages at workers.iii.dev and see the Compose documentation.

SDKs

Language Package Install
Node.js iii-sdk pnpm add iii-sdk or npm install iii-sdk
Python iii-sdk pip install iii-sdk
Rust iii-sdk Add to Cargo.toml
Go iii-sdk go get github.com/iii-hq/iii/sdk/packages/go/iii

Agent Skills

Install iii's agent-readable reference material for the engine primitives:

npx skills add iii-hq/iii/skills

These cover every iii primitive: HTTP endpoints, queues, cron, state, streams, custom triggers, and more. See skills/ for the full list.

Each worker in iii-hq/workers also ships its own skill. Install them alongside the worker itself:

npx skills add iii-hq/workers --list        # list available worker skills
npx skills add iii-hq/workers --skill database # one worker
npx skills add iii-hq/workers --all         # every worker skill

The engine-owned workers (configuration, iii-worker-manager, iii-http-functions, iii-stream, and iii-sandbox) and the automatically supplied engine functions, telemetry, and observability workers live in this repo. HTTP, cron, queue, state, pubsub, and bridge are standalone Compose workers. Install an engine skill with npx skills add iii-hq/iii --full-depth --skill <name>; standalone workers ship their own skills in iii-hq/workers.

Console

The iii-console is a developer and operations console for inspecting workers, functions, triggers, queues, traces, logs, and real-time state. See the Console docs for setup and usage.

Repository Structure

Directory What it is README
engine/ iii Engine (Rust) - core runtime, modules, and protocol engine/README.md
sdk/ SDKs for Node.js, Python, Rust, and Go sdk/README.md
console/ Developer console (React + Rust) console/README.md
skills/ Agent-readable reference material skills/README.md
website/ iii website website/
docs/ Documentation site (Mintlify/MDX) docs/README.md

See STRUCTURE.md for the full monorepo layout, dependency chain, and CI/CD details.

Examples

See the Quickstart guide for step-by-step tutorials.

Resources

Star History

Star History Chart

License

The iii is licensed as such:

Directory License
engine/ Elastic License 2.0
sdk/ Apache License 2.0
console/ Apache License 2.0
docs/ Apache License 2.0
website/ Apache License 2.0

The engine runtime is licensed under the Elastic License 2.0 (ELv2). All SDKs, CLI, console, documentation, and the website are licensed under the Apache License 2.0.

See CONTRIBUTING.md for additional details.

iii (iii-hq/iii)

Searching Database…

18.9K ·GitHub
这是什么东西?iii 是一个面向后端技术栈的实时引擎:队列、定时任务、HTTP、状态管理、可观测性、智能体和沙箱,全部整合进同一个实时系统界面,每个服务都可以自由组合、随时可观测。
那它是我导入的库,还是我要运行起来的程序?它是一个需要运行起来的 Rust 引擎。你的服务通过 SDK 以 worker 的身份接入,向引擎注册,然后立刻进入一个实时目录,其他所有 worker 都能看到并调用它。
我怎么把它跑起来?先安装 iii CLI,在 worker-compose.yaml 里声明你的项目 worker,然后用这条命令启动整个技术栈:iii compose --up。现成的 worker 可以到 workers.iii.dev 上浏览。
我可以用哪些语言写 worker?官方 SDK 支持 Node.js(通过 npm/pnpm 安装 iii-sdk,要求 Node >= 20)、Python(pip install iii-sdk)、Rust(添加到 Cargo.toml)和 Go(go get github.com/iii-hq/iii)。
日常都是谁在使用它?平台团队发布 worker,应用团队注册函数并声明触发器,AI 智能体使用同一个目录和同样的函数调用——三者共用同一个界面。
它是完全开源的吗?不完全是。引擎运行时采用 Elastic License 2.0(公开源码但有限制),而所有 SDK、CLI、控制台、文档和网站都是 Apache 2.0。
核心的心智模型是什么?三个基本概念:Worker、Function、Trigger。Worker 注册带有稳定 id 的函数,比如 content::classify;触发器是声明式的——可以是直接调用、HTTP 端点、定时计划、队列订阅、状态变化或流事件——由 iii 负责路由、序列化和投递。
AI 智能体在其中扮演什么角色?智能体和开发者使用同一个目录:当任务需要系统目前没有的能力时,智能体可以添加一个 worker、发现它的函数、调用它们,并追踪发生了什么。面向智能体的技能文档可以用 npx skills add iii-hq/iii 安装。
系统运行中还能继续加服务吗?可以——Compose 支持在运行时添加 worker,所以智能体和应用可以扩展这个实时系统,不需要重启。也可以事先在 worker-compose.yaml 里声明好 worker。
我怎么看系统正在做什么?自带的 iii-console 让开发者和运维人员查看 worker、函数、触发器、队列、追踪记录、日志和实时状态。它是一个 React + Rust 应用,随本仓库一起提供。
Creator
iii-hq
Size
591.2 MB
Stars
18.9K
Age
1y
Commits · 90 Days