<p align="center">
<a href="https://liteflow.yomahub.com/">
    <img src="static/img/logo-main.svg" alt="logo">
</a>
</p>

<h3>您的star是我继续前进的动力，如果喜欢LiteFlow请右上角帮忙点个star</h3>

## 概述
LiteFlow是一个轻量且强大的国产规则引擎框架，可用于复杂的组件化业务的编排领域，独有的DSL规则驱动整个复杂业务，并可实现平滑刷新热部署，支持多种脚本语言规则的嵌入。帮助系统变得更加丝滑且灵活。

LiteFlow于2020年正式开源，2021年获得开源中国年度最受欢迎开源软件殊荣。于2022年获得Gitee最有价值开源项目(GVP)荣誉。是一个正处在高速发展中的开源项目。

LiteFlow是一个由社区驱动的项目，我们非常重视社区建设，拥有一个800多人的使用者社区，在使用中碰到任何问题或者建议都可以在社区中反应。

你在官网中可以找到加入社区的方式！

## 官网链接：[点这里进入官网](https://liteflow.yomahub.com/)
## 文档链接：[点这里进入文档进行学习](https://liteflow.yomahub.com/pages/5816c5/)
## 示例工程：[DEMO1](https://github.com/bryan31/message-demo) | [DEMO2](https://gitee.com/bryan31/liteflow-example)

**同时LiteFlow的源码中拥有超过1000个的测试用例，包含了大部分的场景，在源码中可以看到测试用例**

## 特性
* **组件定义统一：** 所有的逻辑都是组件，为所有的逻辑提供统一化的组件实现方式，小身材，大能量。
* **规则轻量：** 基于规则文件来编排流程，学习规则入门只需要5分钟，一看既懂。
* **规则多样化：** 规则支持xml、json、yml三种规则文件写法方式，喜欢哪种用哪个。
* **任意编排：** 同步异步混编，再复杂的逻辑过程，利用LiteFlow的规则，都是很容易做到的，看规则文件就能知道逻辑是如何运转的。
* **规则能从任意地方加载：** 框架中提供本地文件配置源和zk配置源的实现，也提供了扩展接口，您可以把规则存储在任何地方。
* **优雅热刷新机制：** 规则变化，无需重启您的应用，即时改变应用的规则。高并发下不会因为刷新规则导致正在执行的规则有任何错乱。
* **支持广泛：** 不管你的项目是不是基于Springboot，Spring还是任何其他java框架构建，LiteFlow都能游刃有余。
* **JDK支持：** 从JDK8到JDK17，统统支持。无需担心JDK版本。
* **脚本语言支持：** 可以定义脚本语言节点，支持QLExpress和Groovy两种脚本。未来还会支持更多的脚本语言。
* **规则嵌套支持：** 只要你想的出，你可以利用简单的表达式完成多重嵌套的复杂逻辑编排。
* **组件重试支持：** 组件可以支持重试，每个组件均可自定义重试配置和指定异常。
* **上下文隔离机制：** 可靠的上下文隔离机制，你无需担心高并发情况下的数据串流。
* **声明式组件支持：** 你可以让你的任意类秒变组件。
* **详细的步骤信息：** 你的链路如何执行的，每个组件耗时多少，报了什么错，一目了然。
* **稳定可靠：** 历时2年多的迭代，在各大公司的核心系统上稳定运行。
* **性能卓越：** 框架本身几乎不消耗额外性能，性能取决你的组件执行效率。
* **自带简单监控：** 框架内自带一个命令行的监控，能够知道每个组件的运行耗时排行。

## 什么场景适用

LiteFlow是一款编排式的规则引擎，最擅长去解耦你的系统，如果你的系统业务复杂，并且代码臃肿不堪，那LiteFlow框架会是一个非常好的解决方案。

LiteFlow利用规则表达式为驱动引擎，去驱动你定义的组件。你有想过类似以下的多线程流程编排该如何写吗？

<img src="static/img/flow_e1.svg" style="zoom: 80%">
<img src="static/img/flow_e2.svg" style="zoom: 80%">

这一切利用LiteFlow轻而易举！框架的表达式语言学习门槛很低，但是却可以完成超高复杂度的编排。

LiteFlow拥有极其详细易懂的文档体系，能帮助你解决在使用框架的时候95%以上的问题。

目前为止，LiteFlow拥有658个测试用例，并且不断在增加中。完备的文档+覆盖全面的测试用例保障了LiteFlow框架的稳定性！

LiteFlow期待你的了解！

**微信公众号**

由于社区群超过200人，需要邀请入群。关注公众号后点击`个人微信`加我，我可以拉你入群

![offIical-wx](static/img/offical-wx.jpg)

开源不易，支持就请赞助LiteFlow

<img src="static/img/support.png" alt="support" width="258" />
