https://github.com/absmach/supermq
Event-driven Infrastructure for Modern Cloud
https://github.com/absmach/supermq
coap distributed-systems edge edge-computing golang iiot internet-of-things iot iot-cloud iot-gateway iot-platform lora lorawan lwm2m message-broker messaging mqtt opc-ua telecom web-socket
Last synced: about 2 months ago
JSON representation
Event-driven Infrastructure for Modern Cloud
- Host: GitHub
- URL: https://github.com/absmach/supermq
- Owner: absmach
- License: apache-2.0
- Created: 2015-07-06T20:31:50.000Z (about 10 years ago)
- Default Branch: main
- Last Pushed: 2025-08-14T14:47:23.000Z (about 2 months ago)
- Last Synced: 2025-08-16T09:08:16.135Z (about 2 months ago)
- Topics: coap, distributed-systems, edge, edge-computing, golang, iiot, internet-of-things, iot, iot-cloud, iot-gateway, iot-platform, lora, lorawan, lwm2m, message-broker, messaging, mqtt, opc-ua, telecom, web-socket
- Language: Go
- Homepage: https://www.abstractmachines.fr/magistrala.html
- Size: 142 MB
- Stars: 2,522
- Watchers: 101
- Forks: 672
- Open Issues: 202
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# SuperMQ
**Planetary event-driven infrastructure**
**Made with β€οΈ by [Abstract Machines](https://abstractmachines.fr/)**
[](https://github.com/absmach/supermq/actions/workflows/build.yaml)
[](https://github.com/absmach/supermq/actions/workflows/check-license.yaml)
[](https://github.com/absmach/supermq/actions/workflows/check-generated-files.yaml)
[](https://goreportcard.com/report/github.com/absmach/supermq)
[](https://codecov.io/gh/absmach/supermq)
[](LICENSE)
[](https://matrix.to/#/#supermq:matrix.org)
### [Guide](https://docs.supermq.abstractmachines.fr) | [Contributing](CONTRIBUTING.md) | [Website](https://abstractmachines.fr/) | [Chat](https://matrix.to/#/#supermq:matrix.org)## Introduction π
SuperMQ is a distributed, highly scalable, and secure open-source cloud platform for messaging and event-driven architecture (EDA). It is a planetarily distributed, highly scalable, and secure platform that serves as a robust foundation for building advanced real-time and reactive systems.
## Why SuperMQ Stands Out π
SuperMQ bridges the gap between various network protocols (HTTP, MQTT, WebSocket, CoAP, and more) to provide a seamless messaging experience. Whether you're working on IoT solutions, real-time data pipelines, or event-driven systems, SuperMQ has you covered. πβ¨
## Key Features π
- **Multi-Protocol Connectivity**: HTTP, MQTT, WebSocket, CoAP, and more! π
- **Secure by Design**: Mutual TLS (mTLS) with X.509 Certificates, JWT support, and multi-protocol authorization. π
- **Fine-Grained Access Control**: Support for ABAC and RBAC policies. π
- **Multi-Tenant**: Manage multiple domains seamlessly. π’
- **Multi-User**: Unlimited organizational hierarchies for user management. π₯
- **Application Management**: Group and share messaging clients for streamlined operations. π±
- **Ease of Use**: Simple and powerful communication channel management, grouping, and sharing. β¨
- **Personal Access Tokens (PATs)**: Scoped and revocable tokens for enhanced security. π
- **Observability**: Integrated logging and instrumentation with Prometheus and OpenTelemetry. π
- **Event Sourcing**: Build robust and scalable architectures. β‘
- **Edge and IoT Ready**: Supports MQTT and CoAP protocols for seamless IoT gateway and sensor communication and management. π
- **Developer-Friendly**: SDKs, CLI tools, and comprehensive documentation to get you started. π©βπ»π¨βπ»
- **Production-Ready**: Container-based deployment using Docker and Kubernetes. π³βΈοΈ## Installation π οΈ
Clone the repository and start SuperMQ services:
```bash
git clone https://github.com/absmach/supermq.git
cd supermq
docker compose -f docker/docker-compose.yaml --env-file docker/.env up
```Or use the [Makefile](Makefile) for a simpler command:
```bash
make run
```For production deployments, check our [Kubernetes guide](https://docs.supermq.abstractmachines.fr/kubernetes). βοΈ
### Usage π€π₯
#### Using the CLI:
```bash
make cli
./build/supermq-cli status
```This command retrieves the status of the SuperMQ server and outputs it to the console.
#### Using HTTP with Curl:
```bash
curl -X GET http://localhost:8080/status
```This request fetches the server status over HTTP and provides a JSON response.
See our [CLI documentation](https://docs.supermq.abstractmachines.fr/cli) for more details.
## Documentation π
The official documentation is hosted at [SuperMQ docs page](https://docs.supermq.abstractmachines.fr).
Documentation is auto-generated, check out the instructions in the [docs repository](https://github.com/absmach/supermq-docs).
If you spot an error or a need for corrections, please let us know - or even better: send us a PR! π## Community and Contributing π€
Thank you for your interest in SuperMQ and the desire to contribute!
1. Take a look at our [open issues](https://github.com/absmach/supermq/issues). The [good-first-issue](https://github.com/absmach/supermq/labels/good-first-issue) label is specifically for issues that are great for getting started.
2. Checkout the [contribution guide](CONTRIBUTING.md) to learn more about our style and conventions.
3. Make your changes compatible to our workflow.Join our community:
- [Matrix Room](https://matrix.to/#/#supermq\:matrix.org)
## Professional Support πΌ
Need help deploying SuperMQ or integrating it into your system? Reach out to **[Abstract Machines](https://abstractmachines.fr/)** for professional support and guidance.
## License π
SuperMQ is open-source software licensed under the [Apache License 2.0](LICENSE). Contributions are welcome!
## Acknowledgments π
Special thanks to the amazing contributors who make SuperMQ possible. Check out the [MAINTAINERS](MAINTAINERS) file to see the team behind the magic.
Ready to build the future of messaging and event-driven systems? Let's get started! π