LF Edge eKuiper is a lightweight IoT data analytics and stream processing engine running on resource-constraint edge devices. The major goal for eKuiper is to provide a streaming software framework (similar to Apache Flink) in edge side. eKuiper's rule engine allows user to provide either SQL based or graph based (similar to Node-RED) rules to create IoT edge analytics applications within few minutes.
User scenarios
It can be run at various IoT edge user scenarios, such as,
eKuiper processing at the edge can greatly reduce system response latency, save network bandwidth and storage costs and improve system security.
Lightweight
Cross-platform
Data analysis support
Highly extensible
It supports to extend at Source
, Functions
and Sink
with Golang or Python.
Management
Integration with EMQX products
Seamless integration with EMQX, Neuron & NanoMQ, and provided an end-to-end solution from IIoT, IoV
Join our Slack, and then join ekuiper or ekuiper-user channel.
Subscribe to community events calendar.
Weekly community meeting at Friday 10:30AM GMT+8:
Thank you for your contribution! Please refer to the CONTRIBUTING.md for more information.
{"temperature": 10, "humidity" : 90}
, the value of temperature and humidity are random integer between 0 - 100.SELECT * FROM demo WHERE temperature > 50
Devices | Message # per second | CPU usage | Memory usage |
---|---|---|---|
Raspberry Pi 3B+ | 12k | sys+user: 70% | 20M |
AWS t2.micro( 1 Core * 1 GB) Ubuntu18.04 |
10k | sys+user: 25% | 20M |
A Go application is written to send data to ZeroMQ message bus, the data is as following.
{
"Device": "demo", "Created": 000, …
"readings":
[
{"Name": "Temperature", value: "30", "Created":123 …},
{"Name": "Humidity", value: "20", "Created":456 …}
]
}
eKuiper subscribe from EdgeX ZeroMQ message bus, and analyze data with
SQL: SELECT * FROM demo WHERE temperature > 50
. 90% of data will be filtered by the rule.
The analysis result are sent to nop sink, so all the result data will be ignored.
Message # per second | CPU usage | Memory usage | |
---|---|---|---|
AWS t2.micro( 1 Core * 1 GB) Ubuntu18.04 |
11.4 k | sys+user: 75% | 32M |
SELECT temperature FROM source WHERE temperature > 20
(90% data are filtered) SELECT temperature FROM source WHERE temperature > 20
, (90% data are filtered)To run the benchmark by yourself, please check the instruction.
Check out the latest document in official website.
Binary:
Binary: $ make
Binary files that support EdgeX: $ make build_with_edgex
Minimal binary file with core runtime only: $ make build_core
Packages: $ make pkg
Packages: $ make pkg
Package files that support EdgeX: $ make pkg_with_edgex
Docker images: $ make docker
Docker images support EdgeX by default
Prebuilt binaries are provided in the release assets. If using os or arch which does not have prebuilt binaries, please use cross-compilation, refer to this doc.
During compilation, features can be selected through go build tags so that users can build a customized product with only the desired feature set to reduce binary size. This is critical when the target deployment environment has resource constraint. Please refer to features for more detail.