Skip to content
A lightweight IoT edge analytics software
Go Other
  1. Go 98.3%
  2. Other 1.7%
Branch: master
Clone or download
Latest commit 17a5175 Dec 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
common bug(extension): agg function does not called successfully Nov 29, 2019
deploy Merge branch 'master' into add_chart Dec 10, 2019
docs Merge branch 'master' of github.com:emqx/kuiper Dec 10, 2019
etc refactor(mqtt): revert mqtt source to use /etc/mqtt_source.yaml as th… Dec 5, 2019
examples fix go module issue Nov 28, 2019
plugins bug(plugins): random property not set; make file add plugin functions… Dec 2, 2019
xsql bug(sql): alias should be case insensitive Dec 9, 2019
xstream feat(sink): rest sink implementation Dec 9, 2019
.gitignore
Dockerfile-by-corss-build Update Docker file Dec 4, 2019
LICENSE Initial commit Jul 3, 2019
Makefile add helm chart Dec 5, 2019
README-CN.md add arch diagram Dec 10, 2019
README.md Merge branch 'master' of github.com:emqx/kuiper Dec 10, 2019
go.mod fix go module issue Nov 28, 2019

README.md

EMQ X Kuiper - An edge lightweight IoT data analytics software

English | 简体中文

Overview

EMQ X Kuiper is an edge lightweight IoT data analytics / streaming software implemented by Golang, and it can be run at all kinds of resource constrained edge devices. One goal of Kuiper is to migrate the cloud streaming software frameworks (such as Apache SparkApache Storm and Apache Flink) to edge side. Kuiper references these cloud streaming frameworks, and also considered special requirement of edge analytics, and introduced rule engine, which is based on Source, SQL (business logic) and Sink, rule engine is used for developing streaming applications at edge side.

arch

User scenarios

It can be run at various IoT edge use scenarios, such as real-time processing of production line data in the IIoT; Gateway of Connected Vehicle analyze the data from data-bus in real time; Real-time analysis of urban facility data in smart city scenarios. Kuiper processing at the edge can reduce system response latency, save network bandwidth and storage costs, and improve system security.

Features

  • Lightweight

    • Core server package is only about 3MB, initial memory usage is about 10MB
  • Cross-platform

    • CPU Arch:X86 AMD * 32, X86 AMD * 64; ARM * 32, ARM * 64; PPC
    • The popular Linux distributions, MacOS and Docker
    • Industrial PC, Raspberry Pi, industrial gateway, home gateway, MEC edge cloud server
  • Data analysis support

    • Support data extract, transform and filter through SQL
    • Data order, group, aggregation and join
    • 60+ functions, includes mathematical, string, aggregate and hash etc
    • 4 time windows
  • Highly extensibile

    Plugin system is provided, and it supports to extend at Source, SQL functions and Sink.

    • Source: embedded support for MQTT, and provide extension points for sources
    • Sink: embedded support for MQTT and HTTP, and provide extension points for sinks
    • UDF functions: embedded support for 60+ functions, and provide extension points for SQL functions
  • Management

    • Stream and rule management through CLI
    • Stream and rule management through REST API (In planning)
    • Easily be integrate with KubeEdge and K3s, which bases Kubernetes
  • Integration with EMQ X Edge

    Seamless integration with EMQ X Edge, and provided an end to end solution from messaging to analytics.

Documents

Build from source

Preparation

  • Go version >= 1.11

Compile

  • Binary: $ make
  • Packages: $ make pkg
  • Docker images: $ make docker

To using cross-compilation, refer to this doc.

Open source license

Apache 2.0

You can’t perform that action at this time.