软件简介
go语言 rust,RuleGo 是一个基于 Go 语言的轻量级、高性能、嵌入式的规则引擎。也一个灵活配置和高度定制化的事件处理框架。可以对输入消息进行过滤、转换、丰富和执行各种动作。
本项目很大程度受 thingsboard 启发。参考其规则链思想,但在架构上做了重大调整,来满足以下场景:
- 在资源占用和性能上做了很大程度优化,使其更适用边缘计算场景。
- 不停机、不需要重新编译,动态编排业务,满足高度定制化和高度变化的业务需求。
- 非侵入式嵌入到现有项目。
- 提供更加灵活的接口和回调钩子。
- 更加开放的组件生态。可以利用社区提供的组件或者把业务封装成组件,通过搭积木方式快速动态实现业务需求。
特性
- 开发语言:Go 1.8
- 轻量级:无外部中间件依赖,在低成本设备中也能高效对数据进行处理和联动,适用于物联网边缘计算。
- 高性能:得益于 Go 的高性能特性,另外 RuleGo 采用协程池和对象池等技术。对 10W 条数据进行 JS脚本过滤->JS脚本数据处理->HTTP推送 处理,平均用时 9 秒。
- 嵌入式:支持把 RuleGo 嵌入到现有项目,非入侵式利用其特性。
- 组件化:所有业务逻辑都是组件,并能灵活配置和重用它们。
- 规则链:可以灵活地组合和重用不同的组件,实现高度定制化和可扩展性的业务流程。
- 流程编排:支持对规则链进行动态编排,你可以把业务地封装成 RuleGo 组件,然后通过搭积木方式实现你高度变化的业务需求。
- 扩展简单:提供丰富灵活的扩展接口和钩子,如:自定义组件、组件注册管理、规则链 DSL 解析器、协程池、规则节点消息流入 / 流出回调、规则链处理结束回调。
- 动态加载:支持通过 Go plugin 动态加载组件和扩展组件。
- 内置常用组件:消息类型Switch,JavaScript Switch,JavaScript过滤器 ,JavaScript转换器 ,HTTP推送,MQTT推送,发送邮件,日志记录 等组件。可以自行扩展其他组件。
- 上下文隔离机制:可靠的上下文隔离机制,无需担心高并发情况下的数据串流。
支持规则链类型:
顺序执行:
异步+顺序执行:
使用子规则链方式:
一些复杂例子:
快速上手:
Gitee
Github
马斯克宣布 Twitter 将改名为 X,并更换 Logo 历时五年,Cython 3.0 正式发布 力不从心,React 核心开发者 Dan Abramov 宣布从 Meta 离职 OpenAI 正式上线安卓版 ChatGPT ChatGPT for Android 将于下周上线,现在开始预注册 Arc 浏览器正式发布 1.0,声称是 Chrome 的替代品 马斯克“零元购”,强夺 @x 推特账号 谷歌薪资数据泄露,软件工程师基本年薪高达 71.8 万美元 新型高速 JavaScript 运行时 Bun 0.7 正式发布 武汉地震监测网络遭境外黑客攻击,警方表示黑客组织「具有政府背景」
编程笔记 » go语言 rust,RuleGo v0.12.0 正式发布:Go 语言的轻量级/高性能/嵌入式业务规则引擎