iii:基于多语言SDK的后端执行引擎项目

Effortlessly compose, extend, and observe every service in real-time for the first time ever.

Branch260Tags513
This repository is empty

iii

iii:点对点集成与基于共享运行时的零集成

iii-hq%2Fiii | Trendshift

Docker npm PyPI Crates.io Discord

Worker 下载量 每周 Worker 下载量 Docker 拉取量 npm 下载量 PyPI 下载量 Crates.io 下载量

iii 是什么? · 快速开始 · 添加 Worker · SDK · Agent 技能 · 控制台 · 资源

什么是 iii?

iii 可以让你以极简方式,实时编排、扩展并观测技术栈中的每一个服务。

每个后端在编写第一行业务逻辑之前,都需要从一个项目开始。队列、cron、HTTP、状态、可观测性、智能体与沙箱,往往都有各自独立的集成方案。iii 会将这一切收敛为一个实时系统界面。

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>

每个 Worker 加入实时目录。其余 Worker 都会收到通知,并能立即调用它。 在 workers.iii.dev 浏览可用 Worker。

这也是 Agent 的故事:当任务需要系统尚不具备的能力时,Agent 可以添加一个 Worker,发现其 Function,调用它们,并追踪过程中发生了什么。开发者使用的是同一套接口。

三大原语

Worker _ Function _ Trigger 就是完整的思维模型。

Worker 是向 iii 引擎注册,随后注册 Trigger 和 Function 的进程。TypeScript API 服务是 Worker。Python 数据管道是 Worker。Rust 微服务也是 Worker。任何功能都可以通过几行代码转化为 Worker。Compose 也可以在运行时添加 Worker,因此 Agent 和应用可以在系统运行时扩展系统。

Trigger 是任何触发 Function 执行的条件。Trigger 可以是对 Function 的直接调用、一个 HTTP 端点、一个 cron 计划、一个队列订阅、一次状态变化、一个流事件,或其他任何事物。Trigger 是声明式的:Worker 定义“当某事发生时,运行这个 Function”,而 iii 负责路由、序列化和投递。

Function 是具有稳定标识符的工作单元(例如:content::classifyorders::validate)。它接收输入,执行工作,并可选择返回输出。Function 存在于 Worker 中。

通过将服务能够执行的一切映射到这三个原语,iii 带来一种轻松组合、完全可观测的开发流程。

变化之处

在 iii 之前:

  • 新的可观测性工具:难以计数的集成
  • 新的 Agent 框架:独立的重试配置、独立的追踪、独立的超时设置
  • 新的队列:供应商评估、采购以及数周的集成

在 iii 之后:

  • worker-compose.yaml 中声明 Worker
  • 使用 iii compose --up 运行它们
  • 完成。它已进入系统,可追踪、可调用。

平台团队发布 Worker。应用团队注册 Function 并声明 Trigger。Agent 使用同一目录和相同的 Function 调用。

扩展 iii 就是添加 Compose Worker。组合 iii 就是调用 Function。观测 iii 就是打开 Trace。

快速开始

观看 iii 介绍(点击播放)

安装 iii

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

然后生成项目脚手架并启动项目:

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

完整流程详见快速入门指南

添加 Workers

worker-compose.yaml 中声明项目 Workers,或通过正在运行的 Compose daemon 添加:

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

workers.iii.dev 上浏览包,并查看 Compose 文档

SDKs

语言 安装
Node.js iii-sdk pnpm add iii-sdknpm install iii-sdk
Python iii-sdk pip install iii-sdk
Rust iii-sdk 添加到 Cargo.toml
Go iii-sdk go get github.com/iii-hq/iii/sdk/packages/go/iii

智能体技能

安装 iii 提供的、供智能体阅读的引擎原语参考资料:

npx skills add iii-hq/iii/skills

这些涵盖了 iii 的全部原语:HTTP 端点、队列、cron、状态、流、自定义触发器, 以及更多内容。完整列表参见 skills/

iii-hq/workers 中的每个 worker 都自带一个 skill。请将其与 worker 本体一同安装:

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

由引擎托管的工作器(configurationiii-worker-manageriii-http-functionsiii-streamiii-sandbox)以及自动提供的引擎函数、遥测和可观测性工作器均位于本仓库。HTTP、cron、queue、state、pubsub 和 bridge 属于独立的 Compose 工作器。请通过 npx skills add iii-hq/iii --full-depth --skill <name> 安装引擎技能;独立工作器会在 iii-hq/workers 中提供各自的技能。

控制台

iii-console 是用于检查工作器、函数、 触发器、队列、链路、日志和实时状态的开发者与运维控制台。请参阅 控制台文档 了解配置和使用方法。

仓库结构

目录 说明 README
engine/ iii 引擎(Rust) - 核心运行时、模块和协议 engine/README.md
sdk/ Node.js、Python、Rust 和 Go 的 SDK sdk/README.md
console/ 开发者控制台(React + Rust) console/README.md
skills/ 供 Agent 阅读的参考资料 skills/README.md
website/ iii 网站 website/
docs/ 文档站点(Mintlify/MDX) docs/README.md

请参阅 STRUCTURE.md 了解完整的 monorepo 布局、依赖链和 CI/CD 详情。

示例

请参阅 快速入门指南 获取分步教程。

资源

Star History

Star History 图表

License

iii 的许可方式如下:

目录 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

引擎运行时采用 Elastic License 2.0(ELv2)许可。所有 SDK、CLI、控制台、文档及网站均采用 Apache License 2.0 许可。

请参阅 CONTRIBUTING.md 了解更多详情。

Introduction

基于事件的编排框架,用于代理和智能自动化【此简介由AI生成】

Customize your domain
9118.69 K1.26 KVisit GitHub