rulego

作者 rulego已验证

⛓️RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go.

1,582
Stars
155
Forks
Go
语言
2026/8/23
添加时间

⚠️ 第三方软件声明

本 Skill 为第三方开源软件,独立托管于 GitHub。SkillTip 仅为信息目录,不控制或维护底层仓库。所显示的安全检查为自动化且范围有限,安装前请自行审查源码。

阅读服务条款

安装

添加到你的 Claude Code skills 目录:

# Add to your Claude Code skills
git clone https://github.com/rulego/rulego

快速入门

使用 rulego 等 Skills 的指南。

安全报告

已验证

上次扫描:—

{
  "status": "PASSED",
  "issues": []
}

README.md

RuleGo

GoDoc Go Report codecov test build build QQ-720103251 Mentioned in Awesome Go

English| 简体中文

Official Website | Docs | Contribution Guide

logo

RuleGo is a lightweight, high-performance, embedded, orchestrable component-based rule engine built on the Go language.

It can help you quickly build loosely coupled and flexible systems that can respond and adjust to changes in business requirements in real time.

RuleGo also provides a large number of reusable components that support the aggregation, filtering, distribution, transformation, enrichment, and execution of various actions on data, and can also interact and integrate with various protocols and systems. It has a wide range of application potential in low-code, business code orchestration, data integration, workflows, large model intelligent agents, edge computing, automation, IoT, and other scenarios.

Features

  • Lightweight: No external middleware dependencies, efficient data processing and linkage on low-cost devices, suitable for IoT edge computing.
  • High Performance: Thanks to Go's high-performance characteristics, RuleGo also employs technologies such as coroutine pools and object pools.
  • Dual Mode: Embedded and Standalone Deployment modes. Supports embedding RuleGo into existing applications. It can also be deployed independently as middleware, providing rule engine and orchestration services.
  • Componentized: All business logic is component-based, allowing flexible configuration and reuse.
  • Rule Chains: Flexibly combine and reuse different components to achieve highly customized and scalable business processes.
  • Workflow Orchestration: Supports dynamic orchestration of rule chain components, replacing or adding business logic without restarting the application.
  • Easy Extension: Provides rich and flexible extension interfaces, making it easy to implement custom components or introduce third-party components.
  • Dynamic Loading: Supports dynamic loading of components and extensions through Go plugins.
  • Nested Rule Chains: Supports nesting of sub-rule chains to reuse processes.
  • Built-in Components: Includes a large number of components such as Message Type Switch, JavaScript Switch, JavaScript Filter, JavaScript Transformer, HTTP Push, MQTT Push, Send Email, Log Recording, etc. Other components can be extended as needed.
  • Context Isolation Mechanism: Reliable context isolation mechanism, no need to worry about data streaming in high concurrency situations.
  • AOP Mechanism: Allows adding extra behavior to the execution of rule chains or directly replacing the original logic of rule chains or nodes without modifying their original logic.
  • Data Integration: Allows dynamic configuration of Endpoints, such as HTTP Endpoint, MQTT Endpoint, TCP/UDP Endpoint, UDP Endpoint, Kafka Endpoint, Schedule Endpoint, etc.

Use Cases

RuleGo is an orchestrable rule engine that excels at decoupling your systems.

  • If your system's business is complex and the code is bloated
  • If your business scenarios are highly customized or frequently changing
  • If your system needs to interface with a large number of third-party applications or protocols
  • Or if you need an end-to-end IoT solution
  • Or if you need centralized processing of heterogeneous system data
  • Or if you want to try hot deployment in the Go language... Then the RuleGo framework will be a very good solution.

Typical Use Cases

  • Edge Computing: Deploy RuleGo on edge servers to preprocess data, filter, aggregate, or compute before reporting to the cloud. Data processing rules and distribution rules can be dynamically configured and modified through rule chains without restarting the system.
  • IoT: Collect device data reports, make rule judgments through rule chains, and trigger one or more actions, such as sending emails, alarms, and linking with other devices or systems.
  • Data Distribution: Distribute data to different systems using HTTP, MQTT, or gRPC based on different message types.
  • Application Integration: Use RuleGo as glue to connect various systems or protocols, such as SSH, webhook, Kafka, message queues, databases, ChatGPT, third-party application systems.
  • Centralized Processing of Heterogeneous System Data: Receive data from different sources (such as MQTT, HTTP, WS, TCP/UDP, etc.), then filter, format convert, and distribute to databases, business systems, or dashboards.
  • Highly Customized Business: Decouple highly customized or frequently changing business and manage it with RuleGo rule chains. Business requirements change without needing to restart the main program.
  • Complex Business Orchestration: Encapsulate business into custom components, orchestrate and drive these custom components through RuleGo, and support dynamic adjustment and replacement of business logic.
  • Microservice Orchestration: Orchestrate and drive microservices through RuleGo, or dynamically call third-party services to process business and return results.
  • Decoupling of Business Code and Logic: For example, user points calculation systems, risk control systems.
  • Automation: For example, CI/CD systems, process automation systems, marketing automation systems.
  • Low Code: For example, low-code platforms, iPaaS systems, ETL, LangFlow-like systems (interfacing with large models to extract user intent, then triggering rule chains to interact with other systems or process business).

Architecture Diagram

RuleGo Architecture Diagram

Rule Chain Running Example Diagram

More Running Modes

Installation

Install RuleGo using the go get command:

go get github.com/rulego/rulego
# or
go get gitee.com/rulego/rulego

Usage

RuleGo is extremely simple to use. Just follow these 3 steps:

  1. Define rule chains using JSON:

  2. Import the RuleGo package and use the rule chain definition to create a rule engine instance:

import "github.com/rulego/rulego"
//Load the rule chain definition file.
ruleFile := fs.LoadFile("chain_call_rest_api.json")
// Create a rule engine instance using the rule chain definition
ruleEngine, err := rulego.New("rule01", ruleFile)
  1. Hand over the message payload, message type, and message metadata to the rule engine instance for processing, and then the rule engine will process the message according to the rule chain's definition:
// Define message metadata
metaData := types.NewMetadata()
metaData.PutValue("productType", "test01")
// Define message payload and message type
msg := types.NewMsg(0, "TELEMETRY_MSG", types.JSON, metaData, "{\"temperature\":35}")

// Hand over the message to the rule engine for processing
ruleEngine.OnMsg(msg)

Real time update of rule chain logic without restarting the application

Rule Engine Management API

  • Dynamically update rule chains
// Dynamically update rule chain logic
err := ruleEngine.ReloadSelf(ruleFile)
// Update a node under the rule chain
ruleEngine.ReloadChild("node01", nodeFile)
// Get the rule chain definition
ruleEngine.DSL()
  • Rule Engine Instance Management:
// Load all rule chain definitions in a folder into the rule engine pool
rulego.Load("/rules", rulego.WithConfig(config))
// Get an already created rule engine instance by ID
ruleEngine, ok := rulego.Get("rule01")
// Delete an already created rule engine instance
rulego.Del("rule01")
// Create a default configuration
config := rulego.NewConfig()
// Debug node callback, the node configuration must be set to debugMode:true to trigger the call
// Both node entry and exit information will call this callback function
config.OnDebug = func (chainId,flowType string, nodeId string, msg types.RuleMsg, relationType string, err error) {
}
// Use the configuration
ruleEngine, err := rulego.New("rule01", []byte(ruleFile), rulego.WithConfig(config))

Rule Chain Definition DSL

Rule Chain Definition DSL

Rule Chain Node Components

The core feature of RuleGo is its component-based architecture, where all business logic is encapsulated in components that can be flexibly configured and reused. Currently, RuleGo has built-in a vast array of commonly used components.

Data Integration

RuleGo provides the Endpoint module for unified data integration and processing of heterogeneous systems. For details, refer to: Endpoint

Input Endpoint Components

RuleGo-Server

We have provided a ready-to-use automation workflow platform based on RuleGo: RuleGo-Server , and a front-end visual editor: RuleGo-Editor . See server/README.md for details.

Performance

RuleGo completes most of its work during initialization, so running the rule chain almost doesn't add extra overhead to the system, and the resource consumption is extremely low, making it particularly suitable for running on edge servers. Additionally, RuleGo uses Directed Acyclic Graph (DAG) to represent the rule chain, where each input message only needs to be processed along the path in the graph without matching all the rules, which greatly improves the efficiency of message processing and routing, and also saves system resources.

Performance test cases:

Machine: Raspberry Pi 2 (900MHz Cortex-A7*4,1GB LPDDR2)  
Data size: 260B   
Rule chain: JS script filtering->JS complex transformation->HTTP push   
Test results: 100 concurrent and 500 concurrent, memory consumption does not change much around 19M

More performance test cases

Ecosystem

Contribution

Any form of contribution is welcome, including submitting issues, suggestions, documentation, tests or code. Contribution Guide

License

RuleGo uses Apache 2.0 license, please refer to LICENSE file for details.

Contact Us

Email: rulego@outlook.com

常见问题

What is rulego?

rulego is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by rulego. ⛓️RuleGo is a lightweight, high-performance, embedded, next-generation component orchestration rule engine framework for Go. It has 1,582 GitHub stars.

Is rulego safe to use?

Yes. rulego passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install rulego?

Clone the repository with "git clone https://github.com/rulego/rulego" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is rulego written in?

rulego is primarily written in Go. It is open-source under rulego on GitHub, so you can review or fork the full source.

Are there alternatives to rulego?

Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh rulego against similar tools.

评论 (0)

暂无评论,成为第一个分享想法的人!

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

Scrapling

by D4Vinci

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

75,9137,581Python
MCP 服务器
查看详情

TrendRadar

by sansan0

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

61,65224,883Python
MCP 服务器
查看详情

context7

by upstash

Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors

61,0602,938TypeScript
MCP 服务器
查看详情

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

39,9393,219C
MCP 服务器
查看详情

开发者还喜欢

基于喜欢此 Skill 的开发者投票和收藏

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI 智能体ai-agentsbrainstorming
查看详情

hermes-agent

by NousResearch

10

The agent that grows with you

234,43747,175Python
AI 智能体ai-agentsagent-orchestration
查看详情

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP 服务器apisai-tools
查看详情

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI 智能体ai-agentsanthropicclaude-code
查看详情

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI 智能体claude-codeai-tools
查看详情