Proxus MQTT Bench is a comprehensive benchmarking tool designed to evaluate the performance of various MQTT brokers.
MIT License
Proxus MQTT Benchis a powerful and versatile benchmarking tool designed to evaluate the performance of various MQTT brokers. It leverages Docker to run and manage a single broker instance at a time, allowing for a comprehensive and controlled testing environment.
Story:
This tool was initially developed to test the embedded MQTT broker used in the Proxus IIoT Platform (https://www.proxus.io). Recognizing its potential for broader use, I decided to expand its capabilities to benchmark other popular MQTT brokers.
Disclaimer:
This tool is designed to provide a standardized and repeatable benchmarking process. However, it's important to note that I'm not an expert in optimizing broker performance for each specific implementation. The benchmark results may not reflect the absolute maximum performance achievable, and the code itself might benefit from community contributions.
Community Support:
To ensure the most accurate and reliable results, I encourage community involvement in two key areas:
Prerequisites:
Clone the repository:
git clone https://github.com/volkanalkilic/Proxus_MQTT_Bench.git
Navigate to the project directory
Build the project:
dotnet build
Run the benchmark:
dotnet run
Follow the on-screen prompts to select brokers and configure benchmark parameters.
The benchmark will run and generate a Markdown report in the current directory.
docker-compose.yml
file in theconfig
directory defines the Docker services for each broker. You can modify this file to customize the broker configurations, ports, and environment variables.config
directory also includes configuration files for some brokers (e.g.,emqx.conf
,mosquitto.conf
). You can modify these files to customize the broker settings.Contributions are welcome! Please submit pull requests or issues on the GitHub repository. Your expertise on broker configuration, optimization, and .NET development is invaluable.
Proxus MQTT Bench is licensed under the MIT License.
This project is built upon the following libraries: