iii-hq/iii

iii-hq/iii 项目致力于解决现代后端开发中因引入多个独立组件而导致的复杂、碎片化问题。其目标是在开始编写业务逻辑前,创建一个统一的系统表层,以整合API、队列、定时任务、AI代理等所有后端能力。

从工程角度看,这个项目的定位很明确:它不只是一个框架,更是一个期望成为通用标准的互操作调用接口(Interoperable Invocation Interface)

🏗️ 核心架构:三大基本要素

iii的整个概念模型建立在三个统一的”原语”之上:

  1. 工作节点:任何能向iii引擎注册并托管函数触发器的进程。它可以是一个TS的API服务、一个Python的数据管道,或是一个Rust微服务。
  2. 触发器函数运行的事件来源,采用声明式定义。例如:声明“当HTTP POST请求发生时,运行create_order函数”。
  3. 函数:具有全局唯一标识符的工作单元,接收输入、执行任务并可选地返回输出。

🚀 快速上手

安装iii CLI工具后,即可快速开始:

1. 初始化项目

iii project init myapp
cd myapp

这一命令会搭建项目骨架,通常包含 config.yaml 配置文件,用于声明工作节点触发器等。

2. 启动引擎

iii

这会启动Rust编写的核心引擎,它作为整个系统的中枢,负责工作节点注册、函数发现、调用路由和触发器分发。

3. 添加工作节点

iii worker add ./my-worker

核心操作命令,通过一个统一的命令,就能为项目安装包括API、队列、状态管理、AI Agent等在内的各种能力。

🛠️ 开发生态与集成

  • 多语言SDK:提供了官方的SDK,方便开发者用最熟悉的语言编写工作节点
    • Node.js/TypeScript: pnpm add iii-sdk
    • Python: pip install iii-sdk
    • Rust: 添加 iii-sdkCargo.toml
  • 完整的控制台 (Console):一个基于 React + Rust 的Web UI,用于可视化地检查工作节点函数触发器、调用链和日志等运行时状态。
  • 丰富的技能库 (Skills):提供机器可读的参考资料,可帮助AI辅助编码工具生成符合iii规范的代码。

💡 一个直观的对比

从项目演进角度看,iii通过统一的抽象,从根本上重塑了后端开发的模式:

开发需求 传统模式 使用 iii 之后
添加新能力 引入新框架、部署新服务、集成多个系统,耗时数周。 iii worker add ...,几秒钟完成接入。
跨语言调用 通过 REST/gRPC 调用,需手动处理序列化、HTTP客户端和调用链。 调用远端函数像调用本地函数一样简单,支持TS调用Python等混合模式。
系统可观测性 日志、指标、追踪散落在不同工具中,排查问题困难。 所有工作节点共享唯一的调用链,问题排查和性能分析更统一。

⚠️ 重要提示:许可协议

需要注意的是,iii项目的核心引擎(engine/目录)采用的是 Elastic License 2.0 (ELv2) 许可证,这与所有SDK、CLI、控制台和文档采用的 Apache License 2.0 不同。ELv2并非一份被OSI(开源促进会)认定的标准开源许可证,因此在使用上会有一些限制。请务必在使用前仔细阅读其条款。

总的来说,iii 是一个很有野心的项目,致力于成为后端开发的通用语言和运行时。

如果想深入了解某个方面,例如它的 Agent Skills 机制,或者具体的 Trigger 配置,可以随时继续交流。

参考资料