A lightweight MQTT broker library and standalone server written in Go, supporting TCP and WebSocket connections.
Hrotti is an MQTT broker written in Go that provides both a library for embedding MQTT server capabilities into applications and a standalone server binary. It enables lightweight, real-time messaging for IoT devices, web applications, and other systems using the MQTT protocol, with support for TCP and WebSocket connections.
Go developers building IoT platforms, real-time messaging systems, or applications that require a lightweight, embeddable MQTT broker.
Developers choose Hrotti for its simplicity, ease of integration as a Go library, and flexibility to run as a standalone server—all without the overhead of larger broker solutions.
An MQTT broker written in Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a simple API to embed MQTT functionality directly into Go applications, as demonstrated with NewHrotti() and AddListener() calls for programmatic control.
Supports both standard TCP and WebSocket listeners via URL configuration, enabling compatibility with diverse clients including IoT devices and browsers.
Allows setting maxQueueDepth per client to manage message buffering and prevent memory overflow, offering control in high-load scenarios.
Includes a pre-built binary configurable via environment variables or JSON files, making deployment quick with minimal setup for basic use cases.
Stores all messages and sessions in memory, so data is lost on server restarts or crashes, limiting reliability for applications requiring message durability.
ListenerConfig currently only supports URL specification, lacking settings for security, timeouts, or other advanced parameters, as noted in the README.
Focuses on minimal implementation, with no mention of advanced MQTT features like QoS 2, retained messages, or built-in authentication, which are common in other brokers.