mirror of
https://github.com/emqx/neuron.git
synced 2026-10-19 23:02:33 +08:00
844efd9ab0ec0805f1e3df148c773c8eb51177cd
Neuron
English | 简体中文
Neuron is an Industrial IoT (IIoT) connectivity server for modern big data technology to leverage the power of Industrial 4.0. It supports one-stop access to dozens of industrial protocols and converts them into MQTT protocol to access the IIoT platform.
The following is some important features of Neuron:
- Edge native application to leverage the low latency network of edge side.
- Loosely-coupled modularity design for extending more functional services by pluggable modules.
- Support numerous protocols for industrial devices, including Modbus, OPCUA, Ethernet/IP, IEC104, BACnet and more.
- Support simultaneous connection of a large number of industrial devices with different protocols.
- Combine with the rule engine function provided by eKuiper to quickly implement rule-based device control or AI/ML analytics.
- Has very low memory footprint, less than 10M, and CPU usage, can run on limited resource hardware like ARM, x86 and RISC-V.
- Support installation of native executable or deployed in containerized enviornment.
- Control industrial devices or make changes to the parameters or data tags through API and MQTT services.
- Highly integrated with other EMQ products, including EMQX, NanoMQ, eKuiper.
- Support updating module device drivers during Neuron runtime.
For more information, please visit our Homepage.
Prerequisite
Build
$ git clone https://github.com/emqx/neuron
$ cd neuron
$ git submodule update --init
$ mkdir build && cd build
$ cmake .. && make
Quick Start
$ cd build
$ ./neuron
Test
To run all unit testers
$ cd build
$ ctest --output-on-failure
Functional test
To run all functional testers
mosquitto -v &
pip3 install -r ft/requirements.txt
python3 -m robot -P ft/ --variable neuron_api:http -d ft/http_reports ft
Pressure test
There are datasets for pressure testing in directory ft/data/persistence/.
To run pressure tests
# python dependencies
pip3 install -r ft/requirements.txt
# through http api, on dataset total-10k
python3 -m robot -P ft/ --variable neuron_api:http --variable dataset:total-10k -d ft/http-total-10k ft/pressure.test
# through http api, on dataset total-50k
python3 -m robot -P ft/ --variable neuron_api:http --variable dataset:total-50k -d ft/http-total-50k ft/pressure.test
# A MQTT broker is needed if using the mqtt api, mosquitto in this example
mosquitto -v &
# through mqtt api, on dataset simple-1k
python3 -m robot -P ft/ --variable neuron_api:mqtt --variable dataset:simple-1k -d ft/mqtt-simple-1k ft/pressure.test
Community
You can connect with the Neuron community and developers in the following ways.
- Discussions:https://github.com/emqx/neuron/discussions
- Slack:https://slack-invite.emqx.io/
- Discord:https://discord.gg/xYGf3fQnES
Description
Languages
C
83.9%
Python
12.5%
C++
2.3%
CMake
0.9%
Shell
0.3%
