All Projects → c16a → Hermes

c16a / Hermes

Licence: mit
Tiny MQTT broker written in Go

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Hermes

Vernemq
A distributed MQTT message broker based on Erlang/OTP. Built for high quality & Industrial use cases.
Stars: ✭ 2,628 (+5156%)
Mutual labels:  mqtt, broker
gmqtt
Golang MQTT Broker.
Stars: ✭ 75 (+50%)
Mutual labels:  mqtt, broker
ccu-addon-mosquitto
Mosquitto packaged as Addon for the Homematic CCU3 and RaspberryMatic
Stars: ✭ 23 (-54%)
Mutual labels:  mqtt, broker
Emqx
An Open-Source, Cloud-Native, Distributed MQTT Message Broker for IoT.
Stars: ✭ 8,951 (+17802%)
Mutual labels:  mqtt, broker
Ejabberd
Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server)
Stars: ✭ 5,077 (+10054%)
Mutual labels:  mqtt, broker
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 (+4872%)
Mutual labels:  mqtt, broker
aedes-cli
Run Aedes MQTT Broker from the CLI
Stars: ✭ 29 (-42%)
Mutual labels:  mqtt, broker
Mqtt
MQTT broker written in D, using vibe.d
Stars: ✭ 59 (+18%)
Mutual labels:  mqtt, broker
Mosquitto
Eclipse Mosquitto - An open source MQTT broker
Stars: ✭ 5,794 (+11488%)
Mutual labels:  mqtt, broker
mqttbeat
Elasticsearch beat to save messages received with the MQTT protocol.
Stars: ✭ 18 (-64%)
Mutual labels:  mqtt, broker
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (+3814%)
Mutual labels:  mqtt, broker
Activemq Artemis
Mirror of Apache ActiveMQ Artemis
Stars: ✭ 685 (+1270%)
Mutual labels:  mqtt, broker
Moquette
Java MQTT lightweight broker
Stars: ✭ 1,897 (+3694%)
Mutual labels:  mqtt, broker
Enmasse
EnMasse - Self-service messaging on Kubernetes and OpenShift
Stars: ✭ 185 (+270%)
Mutual labels:  mqtt, broker
Rumqttd
rust mqtt broker
Stars: ✭ 77 (+54%)
Mutual labels:  mqtt, broker
MQTT.jl
An asynchronous MQTT client library for julia
Stars: ✭ 15 (-70%)
Mutual labels:  mqtt, broker
emqx-docs-en
EMQ X Broker Documentation
Stars: ✭ 12 (-76%)
Mutual labels:  mqtt, broker
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 (+1024%)
Mutual labels:  mqtt, broker
Volantmq
High-Performance MQTT Server
Stars: ✭ 785 (+1470%)
Mutual labels:  mqtt, broker
Haskell Mqtt
An MQTT protocol implementation (client and server)
Stars: ✭ 42 (-16%)
Mutual labels:  mqtt

Hermes

Hermes is a tiny MQTT compatible broker written in Go.

Go Workflow Status

CodeQL Workflow Status

Go Report Card

The goals of the project are as below

  • Easy to compile, and run
  • Tiny footprint
  • Extensible
  • Adhering to standards

Current features

This is in no way ready to be consumed. This is a project which arose out of my boredom during COVID-19, and general issues whilst working with other production ready brokers such as ActiveMQ, Solace, NATS etc.

  • [x] CONNECT
  • [x] PUBLISH, PUBACK
  • [x] SUBSCRIBE, SUBACK
  • [x] DISCONNECT
  • [x] Persistent sessions
  • [x] QoS 2 support
  • [x] Offline messages
  • [ ] Wildcard subscriptions
  • [ ] Shared Subscriptions
  • [ ] Extended authentication
  • [ ] MQTT over WebSocket
  • [ ] Clustering

Usage

Any compatible MQTT client library can be used to interact with the broker

Planned features

The following are some features from the top of my head which I will work on

  • Support for more transports such as WebSocket, gRPC, Rsocket(?)
  • Support for clustering
  • Authentication & extensible middleware
  • Message Persistence

Contributing

Fork it, give it a spin, and let me know!

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].