c16a / Hermes
Licence: mit
Tiny MQTT broker written in Go
Stars: ✭ 50
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
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
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
Enmasse
EnMasse - Self-service messaging on Kubernetes and OpenShift
Stars: ✭ 185 (+270%)
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
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.
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
- Java (eclipse/paho.mqtt.java)
- Go (eclipse/paho.golang)
- Other clients can be found here
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].