MCP.so
ログイン
サーバー

RuleGo

@rulego

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

概要

What is RuleGo?

RuleGo is a lightweight, high-performance, embedded, orchestrable component-based rule engine built on the Go language. It helps build loosely coupled, flexible systems that can respond to business requirement changes in real time. It provides reusable components for data aggregation, filtering, distribution, transformation, enrichment, and execution, and can interact with various protocols and systems.

How to use RuleGo?

Install with go get github.com/rulego/rulego. Define rule chains using JSON, create a rule engine instance with rulego.New("rule01", ruleFile), then hand messages to the engine with ruleEngine.OnMsg(msg). Rule chains can be dynamically updated without restarting via ReloadSelf and ReloadChild.

Key features of RuleGo

  • Lightweight with no external middleware dependencies.
  • High performance using coroutine pools and object pools.
  • Dual deployment mode: embedded or standalone.
  • Component-based architecture with reusable and configurable components.
  • Rule chain orchestration supporting dynamic updates without restart.
  • Built-in components: Message Type Switch, JavaScript Filter, HTTP Push, MQTT Push, etc.
  • Data integration via Endpoint modules (HTTP, MQTT, Kafka, etc.).
  • Context isolation mechanism for safe concurrent data streaming.

Use cases of RuleGo

  • Edge computing: preprocess, filter, aggregate data before cloud reporting.
  • IoT: collect device data, trigger actions like alerts or emails via rule chains.
  • Data distribution: route data to different systems based on message type.
  • Application integration: connect protocols (HTTP, MQTT, gRPC) and third-party systems.
  • Complex business orchestration: encapsulate business logic into custom components and orchestrate them dynamically.

FAQ from RuleGo

What runtime dependencies does RuleGo require?

RuleGo is lightweight and requires no external middleware dependencies. It runs on Go and can be embedded in existing applications or deployed standalone.

Can I create custom components?

Yes. RuleGo provides rich extension interfaces for implementing custom components or introducing third-party components via Go plugins.

Does RuleGo support dynamic rule chain updates?

Yes. Rule chains can be replaced or updated in real time without restarting the application using the ReloadSelf and ReloadChild APIs.

What transports or protocols does RuleGo support for data integration?

RuleGo’s Endpoint module supports HTTP, MQTT, TCP/UDP, Kafka, and Schedule endpoints for unified data ingestion and processing.

Where does RuleGo store data or state?

RuleGo does not require external storage; it processes messages in memory. Configuration and rule chain definitions are provided as JSON files.

タグ

「その他」の他のコンテンツ