# ice **Repository Path**: waitmoon/ice ## Basic Information - **Project Name**: ice - **Description**: Java规则引擎-ice(用全新的思想编排规则) 针对复杂/灵活变动业务,提供一个新的抽象编排解决方案,轻量级,高性能并提供可视化操作页面 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: https://waitmoon.com - **GVP Project**: No ## Statistics - **Stars**: 740 - **Forks**: 219 - **Created**: 2022-06-24 - **Last Updated**: 2026-02-06 ## Categories & Tags **Categories**: rule-engine **Tags**: 规则引擎, 可视化规则引擎, 轻量级规则引擎 ## README

Ice

Ice

A lightweight visual rule engine for flexible business orchestration

License Maven Central Go Reference PyPI Docker Pulls

Documentation · Live Demo · Getting Started

中文

--- ## Features - **Visual Configuration** — Web-based tree editor for rule orchestration - **Zero Dependencies** — No database or middleware required, file-based storage - **Multi-Language SDKs** — Java, Go, and Python with full feature parity - **Hot Reload** — Configuration changes take effect in seconds - **High Performance** — Pure in-memory execution with millisecond latency ## Why Ice? | | Ice | Traditional Rule Engines | |---|---|---| | **Learning Curve** | 5 minutes to get started | Need to learn DSL syntax | | **Deployment** | Docker one-click deploy | Requires database/middleware | | **Configuration** | Visual web UI | Text/code-based | | **Performance** | In-memory, millisecond latency | Compilation overhead | | **Hot Reload** | Seconds, no restart | Often requires restart | ## Use Cases | Scenario | Description | |----------|-------------| | **Marketing Campaigns** | Coupons, discounts, promotions, flash sales | | **Risk Control** | Credit assessment, anti-fraud, real-time decisions | | **Dynamic Pricing** | Price strategies, discount rules, tiered pricing | | **Access Control** | Permission management, feature flags, A/B testing | | **Process Orchestration** | Approval workflows, order processing, state machines | ## Installation ### Server ```bash docker run -d --name ice-server -p 8121:8121 \ -v ./ice-data:/app/ice-data waitmoon/ice-server:latest ``` ### Client SDKs
Java · Documentation **Spring Boot 3.x** ```xml com.waitmoon.ice ice-spring-boot-starter-3x 2.0.1 ``` **Spring Boot 2.x** ```xml com.waitmoon.ice ice-spring-boot-starter-2x 2.0.1 ``` **Non-Spring** ```xml com.waitmoon.ice ice-core 2.0.1 ``` Configuration: ```yaml ice: app: 1 storage: path: ./ice-data scan: com.your.package ``` Usage: ```java IcePack pack = new IcePack(); pack.setIceId(1L); pack.setRoam(new IceRoam().put("uid", 12345)); Ice.syncProcess(pack); ```
Go · Documentation ```bash go get github.com/zjn-zjn/ice/sdks/go ``` Usage: ```go import ice "github.com/zjn-zjn/ice/sdks/go" func main() { client, _ := ice.NewClient(1, "./ice-data") client.Start() defer client.Destroy() pack := ice.NewPack().SetIceId(1) pack.Roam.Put("uid", 12345) ice.SyncProcess(context.Background(), pack) } ```
Python · Documentation ```bash pip install ice-rules ``` Usage: ```python import ice client = ice.FileClient(app=1, storage_path="./ice-data") client.start() pack = ice.Pack(ice_id=1) pack.roam.put("uid", 12345) ice.sync_process(pack) ```
## Architecture ``` ┌──────────────────────────────────────────────────────────┐ │ Shared Storage (ice-data/) │ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ │ │ │ apps/ │ │ bases/ │ │ confs/ │ │ versions/│ │ │ └────────┘ └────────┘ └────────┘ └──────────┘ │ └──────────────────────────────────────────────────────────┘ ▲ ▲ │ Write │ Read (Poll) │ │ ┌────────┴────────┐ ┌──────────┴──────────┐ │ Ice Server │ │ Ice Client │ │ │ │ │ │ • Web UI │ │ • Version polling │ │ • Rule editor │ │ • Hot reload │ │ • Publishing │ │ • In-memory exec │ └─────────────────┘ └─────────────────────┘ ``` ## Documentation - [Getting Started](https://waitmoon.com/en/guide/getting-started.html) - [Architecture Design](https://waitmoon.com/en/advanced/architecture.html) - [Configuration Guide](https://waitmoon.com/en/guide/detail.html) - [FAQ](https://waitmoon.com/en/guide/qa.html) ## Community - [GitHub Issues](https://github.com/zjn-zjn/ice/issues) — Bug reports and feature requests - [GitHub Discussions](https://github.com/zjn-zjn/ice/discussions) — Questions and discussions ## License [Apache License 2.0](LICENSE)