A high-performance, distributed MQTT message broker built on Erlang/OTP for scalable and reliable IoT communication.
VerneMQ is a distributed MQTT message broker built on Erlang/OTP, designed to handle high volumes of concurrent publishers and consumers with low latency and fault tolerance. It solves the challenge of reliable, scalable messaging for IoT platforms and smart products by implementing MQTT standards and offering horizontal/vertical scaling.
IoT platform developers, embedded systems engineers, and organizations building large-scale, industrial-grade messaging backends that require reliable publish/subscribe communication.
Developers choose VerneMQ for its proven scalability, Erlang-based reliability, and comprehensive MQTT feature set—making it a robust open-source alternative to commercial brokers for demanding IoT and real-time messaging scenarios.
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases. The VerneMQ mission is active & the project maintained. Thank you for your support!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Scales horizontally and vertically on commodity hardware to support massive concurrent publishers and consumers, as emphasized in the README for high-performance IoT deployments.
Implements MQTT 3.1, 3.1.1, and 5.0 with features like QoS 0-2, enhanced authentication, and message expiration, ensuring robust protocol support for diverse IoT scenarios.
Offers a plugin system for authentication, integration with databases (e.g., MongoDB, Redis), and custom functionality via HTTP webhooks, allowing flexible customization as detailed in the features list.
Leverages Erlang/OTP's concurrency and fault tolerance to provide reliable messaging, making it suitable for critical industrial infrastructure as stated in the philosophy.
Building from source requires Erlang/OTP 25-27 and dependencies like libsnappy-dev, which can be cumbersome compared to turnkey binary packages, as noted in the quick start section.
Custom plugin development and advanced troubleshooting necessitate Erlang/OTP knowledge, limiting accessibility for teams without this skill set, despite the extensible architecture.
Lacks a graphical user interface for administration, relying on CLI, HTTP API, and monitoring via $SYS tree, which may not suit teams preferring visual management tools.