内容摘录
!iii - One Engine, Three Primitives
License
Docker
npm
PyPI
Crates.io
What is iii
You start building a backend and immediately need six different tools: an API framework, a task queue, a cron scheduler, pub/sub, a state store, and an observability pipeline. Each has its own config, its own deployment, its own failure modes. A simple "process this, then notify that" workflow touches three services before you write any business logic.
iii replaces all of that with a single engine and two primitives: **Function** and **Trigger**.
A Function is anything that does work. A Trigger is what causes it to run - an HTTP request, a cron schedule, a queue message, a state change. You write the function, declare what triggers it, and the engine handles discovery, routing, retries, and observability.
One config file. One process. Everything discoverable. Think of it the way React gave frontend a single model for UI - iii gives your backend a single model for execution.
Three Concepts
| Concept | What it does |
| ------------- | ------------ |
| **Function** | A unit of work. It receives input and optionally returns output. It can exist anywhere: locally, in the cloud, on serverless, or as a third-party HTTP endpoint. |
| **Trigger** | What causes a Function to run - explicitly from code, or automatically from an event source. Examples: HTTP route, cron schedule, queue topic, state change, stream event. |
| **Discovery** | Functions and triggers register and deregister themselves without configuration. Once discovered, they are available across the entire backend. |
Quick Start
Your engine is running at ws://localhost:49134 with HTTP API at http://localhost:3111.
Connect a worker
Your function is now live at http://localhost:3111/add.
<details>
<summary>Python</summary>
</details>
<details>
<summary>Rust</summary>
</details>
SDKs
| Language | Package | Install |
| -------- | -------------------------------------------------- | --------------------- |
| Node.js | iii-sdk | npm install iii-sdk |
| Python | iii-sdk | pip install iii-sdk |
| Rust | iii-sdk | Add to Cargo.toml |
Console
The iii-console is a developer and operations dashboard for inspecting functions, triggers, traces, and real-time state.
!iii console dashboard
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, and Rust | sdk/README.md |
| console/ | Developer dashboard (React + Rust) | console/README.md |
| frameworks/ | Higher-level frameworks built on the SDK | frameworks/motia/ |
| website/ | iii website | website/ |
| docs/ | Documentation site (Fumadocs/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
Documentation
CLI
Console
Examples
Contributing
License
Elastic License 2.0 (ELv2)