lf-edge / ekuiper

Lightweight data stream processing engine for IoT edge
https://ekuiper.org
Apache License 2.0
1.48k stars 415 forks source link
edge edge-analytics edge-computing edge-streaming hacktoberfest iot rule-engine sql

LF Edge eKuiper - An edge lightweight IoT data analytics software

GitHub Release Docker Pulls codecov Go Report Card Slack Twitter Community YouTube

English | 简体中文 | 日本語

Overview

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.

arch

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.

Features

Quick start

Community

Join our Slack, and then join ekuiper or ekuiper-user channel.

Meeting

Subscribe to community events calendar.

Weekly community meeting at Friday 10:30AM GMT+8:

Contributing

Thank you for your contribution! Please refer to the CONTRIBUTING.md for more information.

Performance test result

MQTT throughput test

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

EdgeX throughput test

Message # per second CPU usage Memory usage
AWS t2.micro( 1 Core * 1 GB)
Ubuntu18.04
11.4 k sys+user: 75% 32M

Max number of rules support

Multiple rules with shared source instance

To run the benchmark by yourself, please check the instruction.

Documents

Check out the latest document in official website.

Build from source

Preparation

Compile

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.

Open source license

Apache 2.0