Project NanoMQ



We would adopt the LF Edge Code of Conduct


Presented to the TAC on July 26, 2023. Recording here: https://zoom.us/rec/share/-M3KVpEpphI_M952v48msAO3hpYww_YpRf88HprFxqAueB67jRtCtwCJ5oODYlpG.Orq9Q-7XLlZ65qI6

TAC voted to approve on August 24, 2023

Governing Board SPC voted to approve on August 30, 2023

Instructions

  1. Review the Project Proposal Process

  2. Add New Proposals to the Wiki using the template below and detailed instructions here.

  3. If you need help creating your new Project Proposal page - and adding the template below, please email info@lfedge.org




Project Proposal Template



Project Proposal - Project Introduction:

Required Information

Responses (Please list N/A if not applicable)

Name of Project

NanoMQ

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

An Ultra-lightweight and Blazing-fast MQTT Broker for IoT Edge

Statement on alignment with Foundation Mission Statement

NanoMQ contributors share the same vision as LF Edge. We are committed to build a powerful, user-friendly, and open-source message broker on edge devices.

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. 

EdgeX Foundry

Open Horizon

Home Edge (archived)

Fledge

Link to current Code of Conduct

We would adopt the LF Edge Code of Conduct

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

Joe Pearson, Jim White 

Project license

MIT License

Source control (GitHub by default)

https://github.com/emqx/nanomq

Issue tracker (GitHub by default)

https://github.com/emqx/nanomq/issues

External dependencies (including licenses)

No dependencies for Core functionality (MQTT Broker)

https://github.com/nanomq/NanoNNG (A self maintained for of NNG)

MIT License



Add-on dependencies:

https://github.com/GlitchedPolygons/l8w8jwt (If JWT Token is enabled for HTTP authorization)

Apache-2.0

https://github.com/microsoft/msquic (If MQTT over QUIC is enabled)

MIT License

(only source code dependencies are counted)

Release methodology and mechanics

Github

Names of initial committers, if different from those submitting proposal

Jaylin Yu

Current number of code contributors to proposed project

23

Current number of organizations contributing to proposed project

2

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

Jaylin Yu as the project leader, whom is also responsible for communicating with community to collect feature request and issue report. 

New feature/architecture plan is decided among EMQ' governing board.

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

Slack 
Discord

Github Discussion

Link to project's website

https://nanomq.io/

Links to social media accounts

N/A

Existing financial sponsorship

EMQ Technologies

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

N/A

Currently Supported Architecture

Windows + Linux/Yocto/Build-root/OpenWRT/QNX/Any POSIX compatible Operating System

X86/64, ARM/MIPS/RISC-V

Planned Architecture Support

Android

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

Trademark status

EMQ‘ intellectual property

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?

N/A






Project Proposal - Mapping Criteria and Data:

Stage 1: At Large Projects (formerly 'Sandbox')

Criteria

Data

Criteria

Data

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



A presentation at an upcoming meeting of the TAC, in accordance with the project proposal requirements



The typical IP Policy for Projects under the LF Edge Foundation is Apache 2.0 for Code Contributions, Developer Certificate of Origin (DCO) for new inbound contributions, and Creative Commons Attribution 4.0 International License for Documentation. Projects under outside licenses may still submit for consideration, subject to review/approval of the TAC and Board.



Upon acceptance, At Large projects must list their status prominently on website/readme





*** For existing Projects requesting Stage 2 or Stage 3 consideration, please update the above with the Stage 2 or Stage 3 Mapping criteria, available at Project Stages Mapping: Criteria and Data






Project Proposal - Taxonomy Data:

Functions (Provide, Consume, Facilitate, or N/A; Add context as needed)

Functions

(Provide, Consume, Facilitate, or N/A; Add context as needed)

Functions

(Provide, Consume, Facilitate, or N/A; Add context as needed)

APIs

Provide

Cloud Connectivity

Provide

Container Runtime & Orchestration

Provide

Data Governance

N/A

Data Models

N/A

Device Connectivity

Provide

Filters/Pre-processing

Provide

(A simplified rule-engine is embedded)

Logging

Provide

Management UI

N/A

Messaging & Events

Provide

Notifications & Alerts

Provide

Security

Provide

Storage

Facilitate

(NanoMQ' persist messages to database via Rule Engine,-

auto-cache bridging messages on disk or memory for retransmission)



Deployment & Industry Verticals (Support, Possible, N/A; Add context as needed)

Deployment Type

(Support, Possible, N/A; Add context as needed)

Deployment Type

(Support, Possible, N/A; Add context as needed)

Customer Devices (Edge Nodes)

Support

Customer Premises (DC and Edge Gateways)

Support

(As long as the Arch is supported)

Telco Network Edge (MEC and Far-MEC)

Support

Telco CO & Regional

Support

Cloud Edge & CDNs

Support

Public Cloud

Support

Private Cloud

Support



Deployment & Industry Verticals (✔ or X; Add context as needed)

Directly applicable Industry/Verticals use cases

(✔ or X; Add context as needed)

Directly applicable Industry/Verticals use cases

(✔ or X; Add context as needed)

Automotive / Connected Car

Chemicals

Facilities / Building automation

Consumer

Manufacturing

Metal & Mining

Oil & Gas

Pharma

Health Care

Power & Utilities

Pulp & Paper

X

Telco Operators

Telco/Communications Service Provider (Network Equipment Provider)

Transportation (asset tracking)

Supply Chain

Preventative Maintenance

Water Utilities

Security / Surveillance

Retail / Commerce (physical point of sale with customers)

Other - Please add if not listed above (please notify TAC-subgroup@lists.lfedge.org when you add one)





Deployments (static v dynamic, connectivity, physical placement) - (✔ or X; Add context as needed)

Use Cases

(✔ or X; Add context as needed)

Use Cases

(✔ or X; Add context as needed)

Gateways (to Cloud, to other placements)

NFV Infrastructure

Stationary during their entire usable life / Fixed placement edge constellations / Assume you always have connectivity and you don't need to store & forward.

Stationary during active periods, but nomadic between activations (e.g., fixed access) / Not always assumed to have connectivity. Don't expect to store & forward.



Mobile within a constrained and well-defined space (e.g., in a factory) / Expect to have intermittent connectivity and store & forward.



Fully mobile (To include: Wearables and Connected Vehicles) / Bursts of connectivity and always store & forward.



Compute Stack Layers (architecture classification) - (Provide, Require, or N/A; Add context as needed)

Compute Stack Layers

(Provide, Require, or N/A; Add context as needed)

Compute Stack Layers

(Provide, Require, or N/A; Add context as needed)

APIs

provide

Applications

provide

Firmware

N/A

Hardware

N/A

Orchestration

provide

OS

N/A

VM/Containers

Require



Cloud Stack Layers (architecture classification) - (Provide, Require, or N/A; Add context as needed)

Cloud Stack Layers

(Provide, Require, or N/A; Add context as needed)

Cloud Stack Layers

(Provide, Require, or N/A; Add context as needed)

Applications

Provide

Configuration (drive)

Provide

Content (management system)

Provide

IaaS

N/A

PaaS

N/A

Physical Infrastructure

Require (Software requires a hardware to inhabit)

SaaS

N/A







Attachments (LF Edge PPT template is below, if proposing project would like to leverage):