All Projects → vernemq → Vernemq

vernemq / Vernemq

Licence: other
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.

Programming Languages

erlang
1774 projects
lua
6591 projects
shell
77523 projects
c
50402 projects - #5 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vernemq

Emqx
An Open-Source, Cloud-Native, Distributed MQTT Message Broker for IoT.
Stars: ✭ 8,951 (+240.6%)
Mutual labels:  mqtt, messaging, pubsub, broker, iot, m2m, iot-middleware
Hivemq Community Edition
HiveMQ CE is a Java-based open source MQTT broker that fully supports MQTT 3.x and MQTT 5. It is the foundation of the HiveMQ Enterprise Connectivity and Messaging Platform
Stars: ✭ 562 (-78.61%)
Mutual labels:  mqtt, messaging, pubsub, broker, iot
Ejabberd
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Stars: ✭ 5,077 (+93.19%)
Mutual labels:  mqtt, messaging, pubsub, broker, iot
Tigase Server
Highly optimized, extremely modular and very flexible XMPP/Jabber server
Stars: ✭ 170 (-93.53%)
Mutual labels:  messaging, pubsub, iot
Mqttnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 2,486 (-5.4%)
Mutual labels:  mqtt, broker, iot
Liftbridge
Lightweight, fault-tolerant message streams.
Stars: ✭ 2,175 (-17.24%)
Mutual labels:  messaging, pubsub, message-queue
tips
TiKV based Pub/Sub server
Stars: ✭ 31 (-98.82%)
Mutual labels:  pubsub, distributed, message-queue
Activemq Artemis
Mirror of Apache ActiveMQ Artemis
Stars: ✭ 685 (-73.93%)
Mutual labels:  mqtt, messaging, broker
Volantmq
High-Performance MQTT Server
Stars: ✭ 785 (-70.13%)
Mutual labels:  mqtt, broker, iot
Sandglass
Sandglass is a distributed, horizontally scalable, persistent, time sorted message queue.
Stars: ✭ 1,531 (-41.74%)
Mutual labels:  messaging, message-queue, distributed
Mainflux
Industrial IoT Messaging and Device Management Platform
Stars: ✭ 1,341 (-48.97%)
Mutual labels:  mqtt, messaging, iot
Enmasse
EnMasse - Self-service messaging on Kubernetes and OpenShift
Stars: ✭ 185 (-92.96%)
Mutual labels:  mqtt, messaging, broker
Xxl Mq
A lightweight distributed message queue framework.(分布式消息队列XXL-MQ)
Stars: ✭ 358 (-86.38%)
Mutual labels:  message-queue, broker, distributed
Rpc Websockets
JSON-RPC 2.0 implementation over WebSockets for Node.js and JavaScript/TypeScript
Stars: ✭ 344 (-86.91%)
Mutual labels:  scalable, messaging, iot
Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+23.82%)
Mutual labels:  iot, distributed, industrial-iot
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (-25.53%)
Mutual labels:  mqtt, messaging, broker
aop
AMQP on Pulsar protocol handler
Stars: ✭ 93 (-96.46%)
Mutual labels:  messaging, pubsub, message-queue
Mqtt
MQTT broker written in D, using vibe.d
Stars: ✭ 59 (-97.75%)
Mutual labels:  mqtt, broker, iot
Msgflo
Distributed Flow-Based Programming via message queues
Stars: ✭ 136 (-94.82%)
Mutual labels:  mqtt, pubsub, distributed
Message Bus
Go simple async message bus
Stars: ✭ 166 (-93.68%)
Mutual labels:  pubsub, message-queue, broker

VerneMQ: A Distributed MQTT Broker

Build and Smoketest Status Documentation Maintenance GitHub Release Date GitHub last commit Twitter: VerneMQ Google group : VerneMQ Users

Old Docker Repo New Docker Repo
Docker Pulls from Old Repo Docker Pulls from New Repo

New: VerneMQ can now use Github Discussions! To join the discussion on features and roadmap, and be part of the VerneMQ Community Team on Github, send us your Github username for an invite! (on Twitter, Slack etc.)

Make sure to visit the new VerneMQ Forum hosted on Erlang Forums. We're happy to discuss any of your questions and ideas around VerneMQ on the Forum too!


VerneMQ is known to be deployed and used in: 🇺🇸 🇨🇦 🇧🇷 🇲🇽 🇩🇪 🇫🇷 🇨🇭 🇩🇰 🇳🇱 🇧🇪 🇮🇹 🇪🇸 🇷🇴 🇵🇹 🇷🇺 🇱🇹 🇨🇿 🇸🇰 🇦🇹 🇵🇱 🇳🇴 🇸🇪 🇮🇳 🇯🇵 🇮🇩 🇻🇳 🇰🇷 🇿🇦 🇰🇪 🇷🇸 🇭🇷 🇬🇷 🇬🇧 🇺🇦 🇦🇺 🇳🇿 🇨🇳 🇪🇬 🇫🇮 🇭🇺 🇮🇱 🇸🇬 🇱🇧 🇵🇭 🇵🇰 🇲🇾 🇹🇷 🇹🇼 🇮🇷 ☁️


VerneMQ Logo

VerneMQ is a high-performance, distributed MQTT message broker. It scales horizontally and vertically on commodity hardware to support a high number of concurrent publishers and consumers while maintaining low latency and fault tolerance. VerneMQ is the reliable message hub for your IoT platform or smart products.

VerneMQ is an Apache2 licensed distributed MQTT broker, developed in Erlang.

MQTT used to stand for MQ Telemetry Transport, but it no longer is an acronym. It is an extremely simple and lightweight publish/subscribe messaging protocol, that was invented at IBM and Arcom (now Eurotech) to connect restricted devices in low bandwidth, high-latency or unreliable networks.

VerneMQ implements the MQTT 3.1, 3.1.1 and 5.0 specifications. Currently the following features are implemented and delivered as part of VerneMQ:

  • QoS 0, QoS 1, QoS 2
  • Basic Authentication and Authorization
  • Bridge Support
  • $SYS Tree for monitoring and reporting
  • TLS (SSL) Encryption
  • Websockets Support
  • Cluster Support
  • Logging (Console, Files, Syslog)
  • Reporting to Graphite
  • Extensible Plugin architecture
  • Multiple Sessions per ClientId
  • Session Balancing
  • Shared subscriptions
  • Message load regulation
  • Message load shedding (for system protection)
  • Offline Message Storage (based on LevelDB)
  • Queue can handle messages FIFO or LIFO style.
  • MongoDB auth & integration
  • Redis auth & integration
  • MySQL auth & integration
  • PostgreSQL auth & integration
  • CockroachDB auth & integration
  • Memcached integration
  • HTTP Webhooks
  • PROXY Protocol v2
  • Administration HTTP API
  • Real-time MQTT session tracing
  • Full multitenancy
  • Cluster status web page

The following features are also applies to MQTT 5.0 clients:

  • Enhanced authentication schemes (AUTH)
  • Message expiration
  • Last Will and Testament delay
  • Shared subscriptions
  • Request/response flow
  • Topic aliases
  • Flow control
  • Subscription flags (Retain as Published, No Local, Retain Handling)
  • Subscriber identifiers
  • All property types are supported: user properties, reason strings, content types etc.

Commercial Support. Binary Packages. Documentation

Below you'll find a basic introduction to building and starting VerneMQ. For more information about the binary package installation, configuration, and administration of VerneMQ, please visit our documentation at VerneMQ Documentation or checkout the product page VerneMQ if you require more information on the available commercial support options.

Community Release Schedule

Next major release: not yet scheduled.

Minor releases: At the end of March, July and November (every 4th month).

Bugfix releases: Usually a bugfix release is released between minor releases or if there's an urgent bugfix pending.

Custom release cycles and releases are available for commercial users.

Quick Start

This section assumes that you have a copy of the VerneMQ source tree. To get started, you need to first build VerneMQ.

Building VerneMQ

Note: VerneMQ requires Erlang/OTP 22-24 and libsnappy-dev installed in your system. You'll also need a C compiler for Eleveldb. (on Debian, you install build-essential, as an example).

Assuming you have a working Erlang installation, building VerneMQ should be as simple as:

$ cd $VERNEMQ
$ make rel

Starting VerneMQ

Once you've successfully built VerneMQ, you can start the server with the following commands:

$ cd $VERNEMQ/_build/default/rel/vernemq
$ bin/vernemq start

If VerneMQ is running it is possible to check the status on http://localhost:8888/status and it should look something like:

Note that the $VERNEMQ/_build/default/rel/vernemq directory is a complete, self-contained instance of VerneMQ and Erlang. It is strongly suggested that you move this directory outside the source tree if you plan to run a production instance.

Important links

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].