English | 简体中文
Akasa is a high performance, low latency and high extendable MQTT server in Rust.
The underlying MQTT protocol message codec (mqtt-proto) is carefully crafted for high performance and async environment.
The easist way is use docker:
docker run --init -it --rm -p 1883:1883 -v "$HOME/local/etc":/opt thewawar/akasa:0.1.1 akasa start --config /opt/akasa-config.yaml
Or build from source:
git clone https://github.com/akasamq/akasa.git && cd akasa
# You may also need to install openssl: https://docs.rs/openssl/latest/openssl/#automatic
cargo build --release
./target/release/akasa --help
# Commands:
# start Start the server
# default-config Generate default config to stdout
# insert-password Insert a password to the password file
# remove-password Remove a password from the password file
# help Print this message or the help of the given subcommand(s)
More documentation:
# Environment
CPU : Intel® Xeon® E5-2678 v3 × 48
Memory : 32GB DDR4/2133
System : Arch Linux
# Players
FlashMQ : v1.6.9
Akasa : v0.1.0
EMQX : v5.2.1
VerneMQ : v1.13.0
# Connections (clean_session=false)
FlashMQ : 250k connections, 0.9GB memory
Akasa : 250k connections, 2.8GB memory
EMQX : 250k connections, 5GB memory
VerneMQ : 50k connections, 20GB memory
# Message/s
FlashMQ : 40k coonections, 600k message/s, 0.6GB memory, CPU 550%
Akasa : 40k connections, 600k message/s, 0.8GB memory, CPU 580%
EMQX : 20k connections, 300k message/s, 3.2GB memory, CPU 3000%
VerneMQ : 25k connections, 370k message/s, 6.0GB memory, CPU 2600%
Testing is very important for reliable software. Akasa currently include 100+ test cases, those test cases are collected by reading the specification and catch the functional points and limitations.
The underlying codec (mqtt-proto) also include significant amount of test cases and also some fuzz testing.
If you have any questions or if you would like to get involved in our community, please check out:
Akasa is licensed under MIT license (LICENSE)
Akasa will have an enterprise edition. In this edition, it provides: