An open API service indexing awesome lists of open source software.

https://github.com/zjn-zjn/ice

Rule engine/process engine, committed to solving flexible and complex hard-coded problems, for complex/flexibly changing business, provide a new abstract orchestration solution that is lightweight, high-performance and provides visual operation pages. Java规则引擎-ice,针对复杂/灵活变动业务,提供一个新的抽象编排解决方案,轻量级,高性能并提供可视化操作页面
https://github.com/zjn-zjn/ice

business-rules business-rules-engine flow-control flow-engine java rule-engine rule-processor rules rules-engine

Last synced: 2 months ago
JSON representation

Rule engine/process engine, committed to solving flexible and complex hard-coded problems, for complex/flexibly changing business, provide a new abstract orchestration solution that is lightweight, high-performance and provides visual operation pages. Java规则引擎-ice,针对复杂/灵活变动业务,提供一个新的抽象编排解决方案,轻量级,高性能并提供可视化操作页面

Awesome Lists containing this project

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

```xml

com.waitmoon.ice
ice-core
4.0.5

```

```java
IceFileClient client = new IceFileClient(1, "./ice-data", "com.your.package");
client.start();

IceRoam roam = IceRoam.create();
roam.setId(1L);
roam.put("uid", 12345);
Ice.syncProcess(roam);
```

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()

roam := ice.NewRoam()
roam.SetId(1)
roam.Put("uid", 12345)
ice.SyncProcess(context.Background(), roam)
}
```

Python · Documentation

```bash
pip install ice-rules
```

Usage:

```python
import ice

client = ice.FileClient(app=1, storage_path="./ice-data")
client.start()

roam = ice.Roam.create()
roam.set_id(1)
roam.put("uid", 12345)
ice.sync_process(roam)
```

## 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)