# 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**: 735 - **Forks**: 218 - **Created**: 2022-06-24 - **Last Updated**: 2025-12-08 ## Categories & Tags **Categories**: rule-engine **Tags**: 规则引擎, 可视化规则引擎, 轻量级规则引擎 ## README

Ice

Ice

轻量级可视化规则引擎,致力于解决灵活繁复的硬编码问题

License Maven Central Go Reference PyPI Docker Pulls

文档 · 在线体验 · 快速开始

English

--- ## 特性 - **可视化配置** — Web 树形编辑器进行规则编排 - **零依赖** — 无需数据库或中间件,基于文件存储 - **多语言 SDK** — Java、Go、Python 功能完全对等 - **热更新** — 配置变更秒级生效 - **高性能** — 纯内存执行,毫秒级响应 ## 为什么选择 Ice? | | Ice | 传统规则引擎 | |---|---|---| | **学习成本** | 5 分钟上手 | 需要学习 DSL 语法 | | **部署方式** | Docker 一键部署 | 需要数据库/中间件 | | **配置方式** | 可视化 Web 界面 | 文本/代码配置 | | **执行性能** | 纯内存,毫秒级 | 存在编译开销 | | **热更新** | 秒级生效,无需重启 | 通常需要重启 | ## 使用场景 | 场景 | 说明 | |------|------| | **营销活动** | 优惠券、折扣、促销、秒杀规则 | | **风控系统** | 信用评估、反欺诈、实时决策 | | **动态定价** | 价格策略、折扣规则、阶梯定价 | | **权限控制** | 权限管理、功能开关、A/B 测试 | | **流程编排** | 审批流程、订单处理、状态机 | ## 安装 ### Server ```bash docker run -d --name ice-server -p 8121:8121 \ -v ./ice-data:/app/ice-data waitmoon/ice-server:latest ``` ### Client SDK
Java · 文档 **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 ``` **非 Spring 项目** ```xml com.waitmoon.ice ice-core 2.0.1 ``` 配置: ```yaml ice: app: 1 storage: path: ./ice-data scan: com.your.package ``` 使用: ```java IcePack pack = new IcePack(); pack.setIceId(1L); pack.setRoam(new IceRoam().put("uid", 12345)); Ice.syncProcess(pack); ```
Go · 文档 ```bash go get github.com/zjn-zjn/ice/sdks/go ``` 使用: ```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 · 文档 ```bash pip install ice-rules ``` 使用: ```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) ```
## 架构 ``` ┌──────────────────────────────────────────────────────────┐ │ 共享存储 (ice-data/) │ │ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ │ │ │ apps/ │ │ bases/ │ │ confs/ │ │ versions/│ │ │ └────────┘ └────────┘ └────────┘ └──────────┘ │ └──────────────────────────────────────────────────────────┘ ▲ ▲ │ 写入 │ 读取 (轮询) │ │ ┌────────┴────────┐ ┌──────────┴──────────┐ │ Ice Server │ │ Ice Client │ │ │ │ │ │ • Web 界面 │ │ • 版本轮询 │ │ • 规则编辑 │ │ • 热更新 │ │ • 配置发布 │ │ • 内存执行 │ └─────────────────┘ └─────────────────────┘ ``` ## 文档 - [快速开始](https://waitmoon.com/guide/getting-started.html) - [架构设计](https://waitmoon.com/advanced/architecture.html) - [配置说明](https://waitmoon.com/guide/detail.html) - [常见问题](https://waitmoon.com/guide/qa.html) - [视频教程](https://www.bilibili.com/video/BV1Q34y1R7KF) ## 社区 - [GitHub Issues](https://github.com/zjn-zjn/ice/issues) — Bug 反馈和功能建议 - [GitHub Discussions](https://github.com/zjn-zjn/ice/discussions) — 问题讨论 - [交流群](https://waitmoon.com/community/community.html) — 微信交流群 ## 许可证 [Apache License 2.0](LICENSE)