rulex

command module
v0.6.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2024 License: AGPL-3.0 Imports: 13 Imported by: 0

README

RULEX Framework

RULEX 是一个轻量级边缘网关开发框架,助力快速实现边缘数据处理和云边协同方案。

架构设计

预览

image image image image image image image

快速开始

源码编译
环境安装

下面是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
HelloWorld

下面展示一个最简单的设备数据转发案例,这个 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.04Ubuntu18.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 的源码,你会发现里面有很多很愚蠢的设计(比如对资源的状态管理、类型硬编码设计等),因为特殊历史原因导致了其设计上有一些很糟粕的地方,如有建议请不吝赐教,一起让这个框架更加优秀!同时未来随着版本的迭代,很多低级问题会逐步被重构完善。

Star

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cron_task/docs
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
hwportmanager
* * RhinoPi 硬件接口相关管理 * 警告:此处会随着硬件不同而不兼容,要移植的时候记得统一一下目标硬件的端口 *
* * RhinoPi 硬件接口相关管理 * 警告:此处会随着硬件不同而不兼容,要移植的时候记得统一一下目标硬件的端口 *
rulex_api_server/apis
RhinoH3 固件相关操作
RhinoH3 固件相关操作
uart_driver相当于是升级版,这个是最原始的基础驱动
uart_driver相当于是升级版,这个是最原始的基础驱动
plugin
Warning:
Warning:

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL