rulego

用 Go 规则链编排组件,轻松搭建自动化数据流

RuleGo 是一个用 Go 编写的轻量级、高性能、可嵌入的组件编排规则引擎框架,面向自动化工作流与数据流场景。它把业务逻辑拆成可复用的组件,通过规则链(Rule Chain)把组件按顺序或条件连接起来,实现消息路由、过滤、转换、聚合等处理。核心能力包括:基于 Go 原生并发模型的高吞吐执行、支持热加载与动态更新规则、内置大量通用组件(如 MQTT、HTTP、Kafka、数据库、AI 调用等),并兼容 MCP 协议,可作为 MCP 客户端或服务端使用。它解决的是传统硬编码流程难以灵活调整、低代码平台又过于笨重的问题,让开发者用少量配置就能搭建 IoT、边缘计算、iPaaS、数据管道等场景的自动化流程,同时保持极低资源占用和嵌入式部署能力。

开源 freemium 自动化工作流
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1604
维护状态 活跃
是否开源
定价模式 freemium

项目数据

分类自动化工作流
开发团队rulego
所属国家
官网地址https://rulego.cc
定价模式freemium
价格说明开源免费,企业版及云服务付费,定价信息待确认
访问状态
是否开源
开源协议Apache-2.0
主要语言Go
技术栈/模型ai,automation,data-flow,edge-computing,go,intergrations,iot,ipaas,low-code,low-code-framework,mcp,mcp-client,mcp-server,rule-engine,rulego,workflow,workflow-automation,workflow-engine
GitHub 星标★ 1604
30天Star增速
HF 下载量
上线时间2023-07-23 00:00:00
最近更新2026-09-16 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-09-14
浏览次数2

使用教程

难度:进阶 约 10 分钟 部署方式:库/依赖 5 步

环境要求

  • 本机已安装 Go 语言环境,可正常执行 go 命令
  • 一个使用 Go Modules 的 Go 项目(用于嵌入 RuleGo)
  • 能访问 GitHub 拉取 github.com/rulego/rulego 依赖(网络通畅或已配置模块代理)
  • 一个可用的规则链 JSON 定义文件(可参考 README 中的示例)

安装与启动步骤

  1. 1初始化 Go 项目

    在项目目录下初始化 Go 模块,已有 go.mod 的项目可跳过这一步,直接执行依赖安装。

    go mod init example.com/myapp
  2. 2拉取 RuleGo 依赖

    README 给出的唯一安装命令,使用 go get 把 RuleGo 作为库引入当前项目。

    go get github.com/rulego/rulego
  3. 3准备规则链 JSON

    用 JSON 定义规则链 DSL,描述组件及连接关系;可参考示例文件 chain_call_rest_api.json 和官方 DSL 文档。

  4. 4创建规则引擎实例

    导入 rulego 包,加载规则链文件,并用唯一 ID 创建规则引擎实例,注意处理返回的 err。

    import "github.com/rulego/rulego"
    // 加载规则链定义文件
    ruleFile := fs.LoadFile("chain_call_rest_api.json")
    // 使用规则链定义创建规则引擎实例
    ruleEngine, err := rulego.New("rule01", ruleFile)
  5. 5提交消息处理

    构造元数据、消息负载与消息类型,交给规则引擎,它会按规则链定义自动处理。

    // 定义消息元数据
    metaData := types.NewMetadata()
    metaData.PutValue("productType", "test01")
    // 定义消息负载和消息类型
    msg := types.NewMsg(0, "TELEMETRY_MSG", types.JSON, metaData, "{"temperature":35}")
    
    // 把消息交给规则引擎处理
    ruleEngine.OnMsg(msg)

关键配置

配置项必填说明示例
规则链定义文件JSON 格式的规则链 DSL,定义组件及其连接顺序与条件chain_call_rest_api.json
规则引擎实例 ID创建实例时的唯一标识,用于加载与更新对应规则链rule01
消息类型提交消息时指定的类型,供规则链中组件按类型匹配处理TELEMETRY_MSG
消息元数据 metaData附加在消息上的键值对,供规则链内组件读取使用productType=test01

如何确认成功

调用 ruleEngine.OnMsg(msg) 无报错,且规则链中的下游组件按定义收到并处理了该消息,即表示运行成功。

常见问题

Q:如何更新规则链逻辑而不重启应用?

A:README 明确说明支持规则链逻辑的实时更新,无需重启应用,即可以在运行中动态替换规则链定义。

Q:规则链 JSON 该怎么写?

A:按 Rule Chain DSL 编写,README 给出文档地址 https://rulego.cc/en/pages/rule-chain/ 和示例 testdata/rule/chain_call_rest_api.json。

Q:RuleGo 需要额外的中间件吗?

A:不需要外部中间件依赖,属于轻量级设计,可在低成本设备上运行,也适合 IoT 边缘计算场景。

Q:go get 拉取失败怎么办?

A:README 未给出处理方式,通常是网络或 Go 模块代理配置问题,请检查网络连通性与 GOPROXY 设置。

Q:对 Go 版本有要求吗?

A:README 只说明基于 Go 语言编写并使用 go get 安装,未给出具体版本要求,请以官网文档为准。

注意事项

  • README 只提供了 go get 这一条安装命令,项目以库形式嵌入使用,没有给出独立部署的命令行或 Docker 命令。
  • 支持嵌入现有应用(Embedded)和独立部署(Standalone)两种模式,Standalone 模式可对外提供规则引擎与编排服务。
  • 内置大量通用组件,并兼容 MCP 协议,可作为 MCP 客户端或服务端使用。
  • 规则链运行示例可参考官方演示地址 http://8.134.32.225:9090/ui/ 与官网 https://rulego.cc。

核心亮点

  • 轻量可嵌入,无外部依赖,适合边缘和 IoT 设备部署
  • 规则链支持热更新,无需重启即可调整业务逻辑
  • 内置 MCP 协议支持,可快速接入 AI 工具与模型

不足之处

  • 生态和社区规模相比 n8n、Node-RED 仍较小
  • 可视化编排和调试工具相对薄弱,复杂规则链维护成本较高

适用场景

  • IoT 边缘设备数据采集、过滤与转发
  • 企业 iPaaS 集成,连接多个系统与消息队列
  • AI 工作流编排,通过 MCP 调用模型与工具

替代项目

n8n、Node-RED、Apache NiFi

项目介绍

rulego 是一个自动化工作流领域的开源项目,官方简介:⛓️RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go.。项目使用 Go 开发,在 GitHub 上获得 1600 星标。

同类项目推荐

n8n 开源

拖拽搭建自动化流程,轻松接入 AI 与 400+ 应用,搞定重复工作。

Fair-code workflow automation platform with native AI capabilities. Combine visual b···

★ 205363 2026-08-10
robotcode 开源

让 Robot Framework 拥有现代 IDE 体验,调试、补全、运行一气呵成。

Open Source Toolkit for Robot Framework, providing Language Server Protocol support,···

★ 299 2026-08-10
puppeteer 开源

用 JavaScript 轻松操控无头浏览器,搞定自动化测试与网页抓取。

JavaScript API for Chrome and Firefox

★ 95591 2026-08-10
customermates 开源

比 Pipedrive 直观 10 倍的现代开源 CRM,轻松管理客户与自动化流程。

Building a modern alternative to Pipedrive that is 10x more intuitive.

★ 227 2026-08-10