昨天有朋友和我交流,提到gengine,问我是否有接触,特意看了下,里面有涉及到DSL,之前带我的大佬在开发聚合网关时用到过这个概念,特意看了下,分享笔记。
Gengine基于golang的规则引擎
- Gengine是一款基于AST(Abstract Syntax Tree)和golang语言实现的规则引擎(动态化加载框架)。能够让你在golang这种静态语言上,在不停服务的情况下实现动态加载与配置规则。
- 代码结构松散,逻辑极其简单,但经过了必要且详尽的测试
- Gengine所支持的规则,就是一门DSL(领域专用语言)
- Gengine是一款高性能框架动态加载,与golang无缝对接,支持多种执行模式、支持规则池等满足各种业务场景需求
设计思想
官方文档
支持的执行模式
使用
- 建议使用最新版本
- go mod 或者 go vendor, go mod 引入:
require github.com/bilibili/gengine v1.5.6
问题联系
- 提issue