NervenCid / aedes

Barebone MQTT broker that can run on any stream server, the node way

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Aedes

ci js-standard-style Maintenance PRs Welcome
LGTM Grade Coverage Status Known Vulnerabilities
Dependencies Status devDependencies Status
node NPM version NPM downloads

opencollective

Barebone MQTT server that can run on any stream servers

Install

To install aedes, simply use npm:

npm install aedes

API

Features

  • Full compatible with MQTT 3.1 and 3.1.1
  • Standard TCP Support
  • SSL / TLS
  • WebSocket Support
  • Message Persistence
  • Automatic Reconnect
  • Offline Buffering
  • Backpress-support API
  • High Availability
  • Clusterable
  • Authenticaion and Authorization
  • $SYS support
  • Pluggable middlewares
  • Dynamic Topics Support
  • MQTT Bridge Support between aedes
  • MQTT 5.0 (not support yet)
  • Bridge Protocol (not support yet)

Examples

Exensions

Middleware Plugins

Persistence

MQEmitter

Acknowledgements

This library is born after a lot of discussion with all Mosca users and how that was deployed in production. This addresses your concerns about performance and stability.

Mosca vs Aedes

Example benchmark test with 1000 clients sending 5000 QoS 1 messsages. Used mqtt-benchmark with command:

mqtt-benchmark --broker tcp://localhost:1883 --clients 1000 --qos 1 --count 5000

Benchmark: Aedes

========= TOTAL (1000) =========
Total Ratio:                 1.000 (5000000/5000000)
Total Runtime (sec):         178.495
Average Runtime (sec):       177.845
Msg time min (ms):           0.077
Msg time max (ms):           199.805
Msg time mean mean (ms):     35.403
Msg time mean std (ms):      0.042
Average Bandwidth (msg/sec): 28.115
Total Bandwidth (msg/sec):   28114.678

Benchmark: Mosca

========= TOTAL (1000) =========
Total Ratio:                 1.000 (5000000/5000000)
Total Runtime (sec):         264.934
Average Runtime (sec):       264.190
Msg time min (ms):           0.070
Msg time max (ms):           168.116
Msg time mean mean (ms):     52.629
Msg time mean std (ms):      0.074
Average Bandwidth (msg/sec): 18.926
Total Bandwidth (msg/sec):   18925.942

Made with Aedes

Here is a list of some interesting projects that are using Aedes as MQTT Broker. Submit a PR or an issue if you would like to add yours

Collaborators

Contribution

Help wanted Contributors

Want to contribute? Check our list of features/bugs

Backers

Thank you to all our backers! 🙌

Backers

Sponsors

Become a sponsor to get your logo on our README on Github

Sponsor

License

Licensed under MIT.

About

Barebone MQTT broker that can run on any stream server, the node way

License:MIT License


Languages

Language:JavaScript 98.4%Language:TypeScript 1.6%