Gathering detailed insights and metrics for aedes
Gathering detailed insights and metrics for aedes
Gathering detailed insights and metrics for aedes
Gathering detailed insights and metrics for aedes
npm install aedes
Module System
Min. Node Version
Typescript Support
Node Version
NPM Version
1,804 Stars
822 Commits
231 Forks
45 Watching
17 Branches
55 Contributors
Updated on 26 Nov 2024
Minified
Minified + Gzipped
JavaScript (97.69%)
TypeScript (2.31%)
Cumulative downloads
Total Downloads
Last day
2.4%
11,548
Compared to previous day
Last week
30.3%
58,757
Compared to previous week
Last month
50.7%
183,881
Compared to previous month
Last year
22.6%
1,500,277
Compared to previous year
12
Barebone MQTT server that can run on any stream servers
To install aedes, simply use npm:
1npm install aedes
Check Docker docs here
$SYS
supportAedes needs on disk dbs like MongoDB and Redis in order to work with clusters. Based on our tests and users reports the best performances/stability are reached when using aedes-persistence-mongodb paired with mqemitter-redis.
Other info:
Normally, when publishing a message, the retain
flag is consumed by Aedes and
then set to false
. This is done for two reasons:
Brokers that support the Bridge Protocol can connect to
Aedes. When connecting with this special protocol, subscriptions work as usual
except that the retain
flag in the packet is propagated as-is.
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.
Example benchmark test with 1000 clients sending 5000 QoS 1 messsages. Used mqtt-benchmark with command:
1mqtt-benchmark --broker tcp://localhost:1883 --clients 1000 --qos 1 --count 5000
CPU INFO:
1Architecture: x86_64 2CPU op-mode(s): 32-bit, 64-bit 3Byte Order: Little Endian 4CPU(s): 8 5On-line CPU(s) list: 0-7 6Thread(s) per core: 2 7Core(s) per socket: 4 8Socket(s): 1 9NUMA node(s): 1 10Vendor ID: GenuineIntel 11CPU family: 6 12Model: 94 13Model name: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz 14Stepping: 3 15CPU MHz: 800.014 16CPU max MHz: 3500,0000 17CPU min MHz: 800,0000 18BogoMIPS: 5199.98 19Virtualization: VT-x 20L1d cache: 32K 21L1i cache: 32K 22L2 cache: 256K 23L3 cache: 6144K
1========= TOTAL (1000) ========= 2Total Ratio: 1.000 (5000000/5000000) 3Total Runtime (sec): 178.495 4Average Runtime (sec): 177.845 5Msg time min (ms): 0.077 6Msg time max (ms): 199.805 7Msg time mean mean (ms): 35.403 8Msg time mean std (ms): 0.042 9Average Bandwidth (msg/sec): 28.115 10Total Bandwidth (msg/sec): 28114.678
1========= TOTAL (1000) ========= 2Total Ratio: 1.000 (5000000/5000000) 3Total Runtime (sec): 114.404 4Average Runtime (sec): 109.022 5Msg time min (ms): 0.065 6Msg time max (ms): 393.214 7Msg time mean mean (ms): 21.520 8Msg time mean std (ms): 0.595 9Average Bandwidth (msg/sec): 45.896 10Total Bandwidth (msg/sec): 45896.306
1========= TOTAL (1000) ========= 2Total Ratio: 1.000 (5000000/5000000) 3Total Runtime (sec): 112.769 4Average Runtime (sec): 105.524 5Msg time min (ms): 0.062 6Msg time max (ms): 329.062 7Msg time mean mean (ms): 20.750 8Msg time mean std (ms): 0.878 9Average Bandwidth (msg/sec): 47.464 10Total Bandwidth (msg/sec): 47464.271
1========= TOTAL (1000) ========= 2Total Ratio: 1.000 (5000000/5000000) 3Total Runtime (sec): 118.587 4Average Runtime (sec): 114.190 5Msg time min (ms): 0.080 6Msg time max (ms): 324.028 7Msg time mean mean (ms): 22.558 8Msg time mean std (ms): 0.730 9Average Bandwidth (msg/sec): 43.832 10Total Bandwidth (msg/sec): 43831.927
1========= TOTAL (1000) ========= 2Total Ratio: 1.000 (5000000/5000000) 3Total Runtime (sec): 264.934 4Average Runtime (sec): 264.190 5Msg time min (ms): 0.070 6Msg time max (ms): 168.116 7Msg time mean mean (ms): 52.629 8Msg time mean std (ms): 0.074 9Average Bandwidth (msg/sec): 18.926 10Total Bandwidth (msg/sec): 18925.942
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
Want to contribute? Check our list of features/bugs
Messages sent to the broker are considered valid once they pass the authorizePublish
callback.
In other terms, if permissions for the given client are revoked after the call completes, the message is still considered valid.
In case you are sending time-sensitive messages, make sure to use QoS 0 or connect with a clean session.
If there are bugs/leaks in production scenarios, we encourage people to send Pull Request and/or reach out maintainers for some paid support.
Thank you to all our backers! :raised_hands:
Become a sponsor to get your logo on our README on Github
Licensed under MIT.
The latest stable version of the package.
Stable Version
1
7.5/10
Summary
Improper exception handling in Aedes
Affected Versions
< 0.42.1
Patched Versions
0.42.1
2
0/10
Summary
Incorrect Authorization
Affected Versions
>= 0.1.0, < 0.35.1
Patched Versions
0.35.1
5.3/10
Summary
Improper Authorization in aedes
Affected Versions
< 0.35.1
Patched Versions
0.35.1
Reason
security policy file detected
Details
Reason
no binaries found in the repo
Reason
2 commit(s) and 10 issue activity found in the last 90 days -- score normalized to 10
Reason
no dangerous workflow patterns detected
Reason
0 existing vulnerabilities detected
Reason
license file detected
Details
Reason
detected GitHub workflow tokens with excessive permissions
Details
Reason
SAST tool detected but not run on all commits
Details
Reason
branch protection is not maximal on development and all release branches
Details
Reason
Found 7/19 approved changesets -- score normalized to 3
Reason
dependency not pinned by hash detected -- score normalized to 0
Details
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
project is not fuzzed
Details
Score
Last Scanned on 2024-11-18
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More