下面是Ubuntu上搭建环境的指令:
sudo apt install jq cloc protobuf-compiler \
gcc-mingw-w64-x86-64 \
gcc-arm-linux-gnueabi \
gcc-mips-linux-gnu \
gcc-mingw-w64 \
gcc-aarch64-linux-gnu -y
Tip
推荐使用 ubuntu18.04 开发。
make
下面展示一个最简单的设备数据转发案例,这个 DEMO 展示了如何把一个简单的数据推到 UDP 服务器端 :
AppNAME = 'UdpServerTest'
AppVERSION = '0.0.1'
function Main(arg)
for i = 1, 10, 1 do
local data = { temp = 20.15 , humi = 34}
local err = applib:DataToUdp('UdpServer', applib:T2J(data))
time:Sleep(100)
end
return 0
end
在下列系统上已经通过全面测试:
架构 | 操作系统 | 测试 |
---|---|---|
X86-64 | X86-64-Linux\Windows | 通过 |
ARM64 | ARM-64-Linux | 通过 |
ARM32 | ARM-32-Linux | 通过 |
Mips | Arm-Mips-Linux | 通过 |
Warning
除此之外,还可以在 Armbian、OpenWrt 等小众平台上编译成功。现阶段只针对Ubuntu16.04和Ubuntu18.04做了大量支持,其他的系统也许能编译成功但是没测试功能是否可用**
Actions = {
function(args)
print("return => ", rulexlib:JqSelect(".[] | select(.hum < 20)", data))
return true, args
end
}
Actions = {
function(args)
-- 持久化到 MongoDb:
data:ToMongo("45dd0c90f56d", data)
-- 持久化到 Mysql:
data:ToMysql("45dd0c90f56d", data)
-- 推送化到 Kafka:
data:ToKafka("45dd0c90f56d", data)
return true, args
end
}
- QQ群:608382561
- 文档: [点我查看详细文档]
- 微信:nilyouth( 加好友后进群, 别忘了来个小星星, 暗号:RULEX )
鸣谢各位给RULEX贡献代码的社区开发者。
Note
如果您阅读过 RULEX 的源码,你会发现里面有很多很愚蠢的设计(比如对资源的状态管理、类型硬编码设计等),因为特殊历史原因导致了其设计上有一些很糟粕的地方,如有建议请不吝赐教,一起让这个框架更加优秀!同时未来随着版本的迭代,很多低级问题会逐步被重构完善。