Mainflux is modern, scalable, secure open source and patent-free IoT cloud platform written in Go.
It accepts user, device, and application connections over various network protocols (i.e. HTTP, MQTT, WebSocket, CoAP), thus making a seamless bridge between them. It is used as the IoT middleware for building complex IoT solutions.
For more details, check out the official documentation.
Mainflux is member of the Linux Foundation and an active contributor
to the EdgeX Foundry project. It has been made with
- Multi-protocol connectivity and protocol bridging (HTTP, MQTT, WebSocket and CoAP)
- Device management and provisioning
- Fine-grained access control
- Storage support (Cassandra, InfluxDB and MongoDB)
- Platform logging and instrumentation support
- Event sourcing
- Container-based deployment using Docker and Kubernetes
- LoRaWAN network integration
- Small memory footprint and fast execution
- Domain-driven design architecture, high-quality code and test coverage
Before proceeding, install the following prerequisites:
Once everything is installed, execute the following commands from project root:
docker-compose -f docker/docker-compose.yml up -d
This will bring up all Mainflux dockers and inter-connect them in the composition.
Best way to quickstart using Mainflux is via CLI:
make cli ./build/mainflux-cli version
Mainflux CLI can also be downloaded as a tarball from offical release page
If this works, head to official documentation to understand Mainflux provisioning and messaging.
Official documentation is hosted at Mainflux Read The Docs page.
Documentation is auto-generated from Markdown files in
If you spot an error or need for corrections, please let us know - or even better: send us a PR.
Additional practical information, news and tutorials can be found on the Mainflux blog.
Main architect and BDFL of Mainflux project is @drasko.
Additionally, @nmarcetic and @janko-isidorovic assured overall architecture and design, while @manuIO and @darkodraskovic helped with crafting initial implementation and continiusly work on the project evolutions.
Maintainers are listed in MAINTAINERS file.
Thank you for your interest in Mainflux and wish to contribute!
- Take a look at our open issues.
- Checkout the contribution guide to learn more about our style and conventions.
- Make your changes compatible to our workflow.
Note that the best way to grab our attention is by sending PRs