RULEX 是一个被计划用于边缘端的轻量级规则引擎开发框架, 支持多种数据接入以及自定义数据流筛选,可以快速实现边缘端设备的数据处理功能。很适合在网关场景中使用。
git clone https://github.com/wwhai/rulex.git
cd rulex
make # on windows: make windows
ProtoFile 要在Linux下编译, 需要安装:
sudo apt install protobuf-compiler -y
平台 | 架构 | 编译测试 |
---|---|---|
Windows | X86-64 | 通过 |
Linux | X86-64 | 通过 |
ARM64 | ARM-64 | 通过 |
ARM32 | ARM-32 | 通过 |
MacOS | X86-64 | 通过 |
其他 | 未知 | 未知 |
注意: Arm32位
下编译比较麻烦, 推荐使用Ubuntu18-04
安装交叉编译工具进行编译, 具体步骤请参考 .github\workflows\4_build-arm-32-v7.yml
里面的脚本。
rulex run
浏览器输入:http://127.0.0.1:2580
function Success()
-- do some things
end
function Failed(error)
-- do some things
end
Actions = {
function(data)
return true, data
end
}
function Success()
-- do some things
end
function Failed(error)
-- do some things
end
Actions = {
function(data)
print("return => ", rulexlib:JqSelect(".[] | select(.hum < 20)", data))
return true, data
end
}
function Success()
-- do some things
end
function Failed(error)
-- do some things
end
Actions = {
function(data)
-- 持久化到 MongoDb:
rulexlib:DataToMongo("OUTEND_83775a94-9f64-4d37-be17-45dd0c90f56d", data)
-- 持久化到 Mysql:
rulexlib:DataToMysql("OUTEND_83775a94-9f64-4d37-be17-45dd0c90f56d", data)
-- 推送化到 Kafka:
rulexlib:DataToKafka("OUTEND_83775a94-9f64-4d37-be17-45dd0c90f56d", data)
return true, data
end
}
function Success()
-- do some things
end
function Failed(error)
-- do some things
end
Actions = {
function(data)
-- PyTorch 训练数据:
cloud:PyTorchTrainCNN(data)
-- PyTorch 识别:
local V = cloud:PyTorchCNN(data)
print(V)
return true, data
end
}
-
QQ群:608382561
-
微信:bignullnull( 加好友后进群, 暗号:RULEX )