1. Project Description

What it does

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 Spark, Apache Flink) to edge side. Kuiper references these cloud streaming frameworks, and also considered a special requirement of edge analytics, and introduced rule engine, which is based on Source, SQL (business logic) and Sinks, the rule engine is used for developing streaming applications at edge side.

Why it is valuable

Origin and history

The project is originated from a fully-functional streaming software created and donated by EMQ. It is developed with feedback and contributions from partners, customers and community users. Below is the milestones of the project.

2. Statement of mission

The mission of Kuiper is aligned with LF Edge:

3. Project synergy

  1. EdgeX Foundry rules engine, it's reference implementation edge analytics service that performs if-then conditional actuation at the edge based on sensor data collected by the EdgeX instance. Kuiper has partnered with EdgeX Foundry to provide the default rule engine service.

  2. Baetyl project integration. Baetyl project also integrated Kuiper, which can help users to perform data analytics within Baetyle framework.

  3. Fledge: Kuiper has a flexible and powerful data analytic feature that compliments Fledge. One possible way to harmonize both products is that Fledge collects data from all kinds of sensors and then deliver to Kuiper for analysis.

4. Leadership team and decision making process

5. Architecture

The Kuiper core runtime architecture consist a pipeline of sources (built-in or extended), SQL layer and sinks (built-in or extended) as shown below.

The SQL layer components include:

There are other supportive components include:

6. Project Template

Name of Project

EMQ X Kuiper

Project Description (what it does, why it is valuable, origin and history)

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. 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. Kuiper is created by EMQ X and open sourced since July 2019. It is then developed with feedback and contributions from partners, customers and community users.

Statement on alignment with Foundation Mission Statement

The mission of Kuiper is aligned with LF Edge:

  • Build Kuiper as a general lightweight IoT data analytics / streaming software in edge side;

  • Enable organizations to accelerate adoption of edge computing by providing handy tools and frameworks that can help user to process IoT data closing to device;

  • Integrate with relevant edge projects by providing built-in support;

  • Promote edge computing ecosystem by providing mechanisms for extension and integration.

High level assessment of project synergy with existing projects under LF Edge, including how the project compliments/overlaps with existing projects, and potential ways to harmonize over time. Responses may be included both here and/or in accompanying documentation.

Kuiper is a neutral edge streaming analytics framework, and it can be easily integrated with IoT edge frameworks that require streaming analytics.

1. EdgeX Foundry rules engine, it's reference implementation edge analytics service that performs if-then conditional actuation at the edge based on sensor data collected by the EdgeX instance. Kuiper has partnered with EdgeX Foundry to provide the default rule engine service.

2. Baetyl project integration. Baetyl project also integrated Kuiper, which can help users to perform data analytics within Baetyle framework.

3. Fledge: Kuiper has a flexible and powerful data analytic feature which compliments Fledge. One possible way to harmonize both products is that Fledge collects data from all kinds of sensors and then deliver to Kuiper for analysis.

Link to current Code of Conduct

https://github.com/emqx/kuiper/wiki/Code-of-Conduct

2 TAC Sponsors, if identified (Sponsors help mentor projects) - See full definition on Project Stages: Definitions and Expectations

Leding Li, Jianguo Zeng

Project license

Apache 2.0

Source control (GitHub by default)

https://github.com/emqx/kuiper

Issue tracker (GitHub by default)

https://github.com/emqx/kuiper

External dependencies (including licenses)

https://github.com/PaesslerAG/gval (BSD 3-Clause "New" or "Revised" License)
https://github.com/PaesslerAG/jsonpath (BSD 3-Clause "New" or "Revised" License)
https://github.com/benbjohnson/clock (MIT License)
https://github.com/buger/jsonparser (MIT License)
https://github.com/eclipse/paho.mqtt.golang (the Eclipse Public License 1.0 and the
Eclipse Distribution License 1.0 as described in the epl-v10 and edl-v10 files)
edgexfoundry/go-mod-core-contracts (Apache License 2.0)
edgexfoundry/go-mod-messaging (Apache License 2.0)
go-yaml/yaml (Apache License 2.0)
golang-collections/collections (MIT License)
google/uuid (BSD 3-Clause "New" or "Revised" License)
gorilla/handlers (BSD 2-Clause "Simplified" License)
gorilla/mux (BSD 3-Clause "New" or "Revised" License)
keepeye/logrus-filename (MIT License)
lestrrat-go/file-rotatelogs (MIT License)
lestrrat-go/strftime (MIT License)
mattn/go-sqlite3 (MIT License)
pebbe/zmq4 (BSD 2-Clause "Simplified" License)
prometheus/client_golang (Apache License 2.0)
sirupsen/logrus (MIT License)
urfave/cli (MIT License)
golang.org/x/net (BSD 3-Clause)
gopkg.in/ini.v1 (Apache License 2.0)

Release methodology and mechanics

Use the Github actions to automatically building new versions.

Names of initial committers, if different from those submitting proposal

  • Fahua Jin

  • Jiyong Huang

  • Yuedong Ma

  • Rory Zhang

  • Shifan Yu

  • Yongxing Ma

Current number of code contributors to proposed project

16

Current number of organizations contributing to proposed project

5

Briefly describe the project's leadership team and decision-making process

The Technical Steering Committee (TSC) is a committee composed of technical leaders from the open source project responsible for oversight of the technical codebase, the technical community and release process.

Members:

  • Fahua Jin / zh-cn: 金发华

  • Jiyong Huang / zh-cn: 黄济泳

  • Yuedong Ma / zh-cn: 马跃东

  • Rory Zhang / zh-cn: 张红彤

  • Shifan Yu / zh-cn: 余仕帆

  • Yongxing Ma  / zh-cn: 马永兴

TSC team will discuss any proposal, and make decision based on the discussion.

List of project's official communication channels (slack, irc, mailing lists)

slack kuiper channel

Link to project's website

https://www.emqx.io/products/kuiper, and the website https://kuiper.emqx.io is under construction.

Links to social media accounts

emqtt

Existing financial sponsorship

EMQ Technologies Co., Ltd.

Infrastructure needs or requests (to include GitHub/Gerrit, CI/CD, Jenkins, Nexus, JIRA, other ...)

GitHub

Currently Supported Architecture

Device edge

Planned Architecture Support

Local edge

Project logo in svg format (see https://github.com/lf-edge/lfedge-landscape#logos - Connect to preview for guidelines)

Preview unavailable


Trademark status

Kuiper trademark is applied in P.R China.

Does the project have a Core Infrastructure Initiative security best practices badge? (See: https://bestpractices.coreinfrastructure.org)

No

Any additional information the TAC and Board should take into consideration when reviewing your proposal?

No


成为首赞

无标签