97327ab05f
* refactor code Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * connect each thing with each channel Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * reverting - structure fields must be exported Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * reverting - structure fields must be exported Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * revert some names Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * move meausuring time start Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add pub-to-sub delivery time measure Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add pub-to-sub delivery time measure Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add pub-to-sub delivery time measure Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add pub-to-sub delivery time measure Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * improve sync between pub and sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * improve sync between pub and sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * improve sync between pub and sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * improve sync between pub and sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * improve sync between pub and sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * improve sync between pub and sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add random payload Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * revert changes for config.toml Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add random payload Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * remove printfs Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add logging Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add payload Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add payload Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * rename variable Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * add payload Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * small changes Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * refactor sync Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * refactor sync Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * refactor results Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * change sync and result collecting for sub Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> * fix comments Signed-off-by: Mirko Teodorovic <mirko.teodorovic@gmail.com> |
||
---|---|---|
.github | ||
bootstrap | ||
cli | ||
cmd | ||
coap | ||
docker | ||
docs | ||
http | ||
k8s | ||
load-test | ||
logger | ||
lora | ||
metrics | ||
mqtt | ||
normalizer | ||
readers | ||
scripts | ||
sdk/go | ||
things | ||
tools | ||
ui | ||
users | ||
vendor | ||
writers | ||
ws | ||
.dockerignore | ||
.env | ||
.gitignore | ||
CHANGELOG.md | ||
CONTRIBUTING.md | ||
Gopkg.lock | ||
Gopkg.toml | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README.md | ||
api.go | ||
doc.go | ||
env.go | ||
internal.pb.go | ||
internal.proto | ||
message.go | ||
message.pb.go | ||
message.proto | ||
mkdocs.yml | ||
publisher.go | ||
topics.go | ||
version.go |
README.md
Mainflux
Mainflux is modern, scalable, secure open source and patent-free IoT cloud platform written in Go.
It accepts user and thing 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 ❤️ by Mainflux Labs company, which maintains the project and offers professional services around it.
Features
- Multi-protocol connectivity and bridging (HTTP, MQTT, WebSocket and CoAP)
- Device management and provisioning (Zero Touch provisioning)
- Mutual TLS Authentication (mTLS) using X.509 Certificates
- Fine-grained access control
- Message persistence (Cassandra, InfluxDB, MongoDB and PostgresSQL)
- Platform logging and instrumentation support (Grafana, Prometheus and OpenTracing)
- Event sourcing
- Container-based deployment using Docker and Kubernetes
- LoRaWAN network integration
- SDK
- CLI
- Small memory footprint and fast execution
- Domain-driven design architecture, high-quality code and test coverage
Install
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.
Usage
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.
Documentation
Official documentation is hosted at Mainflux Read The Docs page.
Documentation is auto-generated from Markdown files in ./docs
directory.
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.
Authors
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.
Besides them, Mainflux is constantly improved and actively developed by @anovakovic01, @dusanb94, @srados, @gsaleh, @blokovi, @chombium, @mteodor and a large set of contributors.
Maintainers are listed in MAINTAINERS file.
Mainflux team would like to give special thanks to @mijicd for his monumental work on designing and implementing highly improved and optimized version of the platform, and @malidukica for his effort on implementing initial user interface.
Contributing
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.
We're Hiring
If you are interested in working professionally on Mainflux, please head to company's careers page or shoot us an e-mail at careers@mainflux.com.
Note that the best way to grab our attention is by sending PRs 😎.