랭킹으로 돌아가기

vernemq/vernemq

Erlangvernemq.com

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!

mqttm2mscalablebrokererlangdistributedmessagingpubsubvernemqiot-middlewareiotvernemq-users
스타 성장
스타
3.6k
포크
427
주간 성장
이슈
154
1k2k3k
2023년 1월2024년 3월2025년 5월2026년 7월
README

VerneMQ: A Distributed MQTT Broker

Build and Smoketest Status Documentation Maintenance GitHub Release Date GitHub last commit Twitter: VerneMQ VerneMQ on Fosstodon

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: :us: :canada: :brazil: :mexico: :de: :fr: :switzerland: :denmark: :netherlands: :belgium: :it: :es: :romania: :portugal: :ru: :lithuania: :czech_republic: :slovakia: :austria: :poland: :norway: :sweden: :india: :jp: :indonesia: :vietnam: :kr: :south_africa: :kenya: :serbia: :croatia: :greece: :uk: :ukraine: :australia: :new_zealand: :cn: :egypt: :finland: :hungary: :israel: :singapore: :lebanon: :philippines: :pakistan: :malaysia: :tr: :taiwan: :iran: :cloud:


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.

VerneMQ Release Schedule

VerneMQ releases will be annonced based on bugfixes and features.

Usually a bugfix release will be cut between minor releases or if there's an urgent bugfix pending.

Custom releases can be offered 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 25-27 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.

Thank you to all our contributors!

contributors

관련 저장소
home-assistant/core

:house_with_garden: Open source home automation that puts local control and privacy first.

PythonPyPIApache License 2.0pythonhome-automation
home-assistant.io
89.4k38.1k
curl/curl

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

COtherhttphttps
curl.se
42.4k7.3k
blakeblackshear/frigate

NVR with realtime local object detection for IP cameras

TypeScriptnpmMIT Licensertsprealtime
frigate.video
34.5k3.4k
pppscn/SmsForwarder

短信转发器——监控Android手机短信、来电、APP通知,并根据指定规则转发到其他手机:钉钉群自定义机器人、钉钉企业内机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等。包括主动控制服务端与客户端,让你轻松远程发短信、查短信、查通话、查话簿、查电量等。(V3.0 新增)PS.这个APK主要是学习与自用,如有BUG请提ISSUE,同时欢迎大家提PR指正

KotlinBSD 2-Clause "Simplified" Licensesmsdingding
27.2k3.3k
arendst/Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

CGNU General Public License v3.0tasmotafirmware
tasmota.github.io/docs
24.6k5.1k
thingsboard/thingsboard

Open-source IoT Platform - Device management, data collection, processing and visualization.

JavaMavenApache License 2.0visualizationiot
thingsboard.io
22.1k6.4k
influxdata/telegraf

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.

GoGo ModulesMIT Licensetelegrafmonitoring
influxdata.com/telegraf
17.7k5.8k
emqx/emqx

The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles

ErlangOthermqttiot
emqx.com
16.5k2.5k
rabbitmq/rabbitmq-server

Open source RabbitMQ: core server and tier 1 (built-in) plugins

JavaScriptnpmOtherrabbitmqamqp
rabbitmq.com
13.8k4k
cesanta/mongoose

Embedded web server, with TCP/IP network stack, MQTT and Websocket

COtherwebsocketmqtt
mongoose.ws
12.9k2.9k
esphome/esphome

ESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.

C++Otherhome-automationiot
esphome.io
11.4k5.5k
eclipse-mosquitto/mosquitto

Eclipse Mosquitto - An open source MQTT broker

COthermqttbroker
mosquitto.org
11.1k2.6k