ice
致力于解决灵活繁复的硬编码问题
🎯 可视化规则编排
采用创新的树形编排思想,提供 Web 可视化配置界面。在保障业务解耦和代码复用的同时,提供最大的规则配置自由度。
⚡ 轻量高性能
纯内存运算,毫秒级响应,几乎零性能损耗。完美支持高并发业务场景,让您只需关注业务逻辑本身。
🐳 零依赖架构
无需 MySQL、ZooKeeper 等外部依赖。Docker 一键部署,5 秒完成。配置以 JSON 文件存储,支持版本控制。
🚀 三步快速开始
Step 1:部署 Ice Server
访问 http://localhost:8121 进入可视化配置界面。
Step 2:集成 Ice Client SDK
在业务应用中添加依赖并启动 Client(需与 Server 共享同一个 ice-data 目录):
Java
<dependency>
<groupId>com.waitmoon.ice</groupId>
<artifactId>ice-core</artifactId>
<version>3.0.2</version>
</dependency>Go
go get github.com/zjn-zjn/ice/sdks/goPython
pip install ice-rules启动 Client:
Java
IceFileClient client = new IceFileClient(1, "./ice-data", "com.your.package");
client.start();Go
client, _ := ice.NewClient(1, "./ice-data")
client.Start()Python
client = ice.FileClient(app=1, storage_path="./ice-data")
client.start()Step 3:配置规则并执行
- 在 Server 可视化界面配置业务规则
- 发布规则,Client 自动热加载
- 在业务代码中调用规则执行
Java
IcePack pack = new IcePack();
pack.setIceId(1L);
pack.setRoam(new IceRoam().put("uid", 12345));
Ice.syncProcess(pack);Go
pack := ice.NewPack().SetIceId(1)
pack.Roam.Put("uid", 12345)
ice.SyncProcess(context.Background(), pack)Python
pack = ice.Pack(ice_id=1)
pack.roam.put("uid", 12345)
ice.sync_process(pack)👉 查看完整快速上手指南 | Go SDK 指南 | Python SDK 指南
适用场景
| 场景 | 说明 |
|---|---|
| 🎁 营销活动 | 优惠券、满减、拼团等复杂营销规则的灵活配置 |
| 💰 风控决策 | 信贷风控、反欺诈、实时风险评估引擎 |
| 🔐 权限控制 | 动态权限管理、角色配置、资源访问控制 |
| 📊 流程编排 | 工单流转、审批流程、状态机管理 |
为什么选择 Ice?
| 特性 | Ice | 传统规则引擎 |
|---|---|---|
| 学习成本 | 5 分钟上手 | 需要学习 DSL |
| 部署复杂度 | Docker 一键部署 | 依赖数据库/中间件 |
| 配置方式 | Web 可视化 | 文本/代码 |
| 性能 | 纯内存,毫秒级 | 编译执行,有开销 |
| 修改规则 | 热更新,秒级生效 | 需重启或重新部署 |
用户列表
谁在使用 Ice?










