Go to file
Mirko Teodorovic 97327ab05f NOISSUE - Add measuring time from pub to sub (#839)
* 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>
2019-09-06 14:59:35 +02:00
.github NOISSUE - Housekeeping. Update README. (#497) 2018-12-09 20:06:20 +01:00
bootstrap NOISSUE - Use Thing ID to update certs data (#827) 2019-09-03 13:54:56 +02:00
cli NOISSUE - Typo fix (#777) 2019-07-04 09:57:03 +02:00
cmd NOISSUE - Support encrypted bootstrap (#796) 2019-08-02 14:35:31 +02:00
coap NOISSUE - Add content type as part of MQTT subscription topic (#810) 2019-07-29 17:42:04 +02:00
docker NOISSUE - Improve VerneMQ plugin code, add configurable gRPC pool size (#836) 2019-09-03 01:05:36 +02:00
docs update mqtts commands (#815) 2019-08-05 11:43:05 +02:00
http NOISSUE - Add content type as part of MQTT subscription topic (#810) 2019-07-29 17:42:04 +02:00
k8s Add nginx ingress config to k8s services (#472) 2018-11-27 12:56:36 +01:00
load-test Added changelog for 0.9.0 release (#799) 2019-07-19 17:56:23 +02:00
logger Fixing level_test.go (#406) 2018-09-26 20:22:26 +02:00
lora MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
metrics NOISSUE - Add exported metrics visualization for grafana (#326) 2018-06-15 17:08:49 +02:00
mqtt fix: Correct 404 and Content-Type Issues in MQTT Version Endpoint (#837) 2019-09-05 15:10:18 +02:00
normalizer MF-757 - Add support for explicit content type (#771) 2019-07-25 02:22:28 +02:00
readers MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
scripts Fix MF_THINGS_AUTH_GRPC_PORT in addons' docker-compose files (#781) 2019-07-11 23:19:08 +02:00
sdk/go MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
things MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
tools NOISSUE - Add measuring time from pub to sub (#839) 2019-09-06 14:59:35 +02:00
ui Switch secure of WS connection according to secure of http connection of UI (#829) 2019-08-30 16:23:28 +02:00
users Fix users service to work in offline mode (#795) 2019-07-19 12:28:45 +02:00
vendor MF-295 add mqtt benchmark tool (#817) 2019-08-13 12:56:31 +02:00
writers NOISSUE - Add measuring time from pub to sub (#839) 2019-09-06 14:59:35 +02:00
ws NOISSUE - Add content type as part of MQTT subscription topic (#810) 2019-07-29 17:42:04 +02:00
.dockerignore MF-571 - Elm UI (#632) 2019-03-06 16:21:09 +01:00
.env Add config to writers docs (#812) 2019-08-01 13:13:24 +02:00
.gitignore NOISSUE - update mqtt prov tool and some refactor (#831) 2019-09-05 13:39:58 +02:00
CHANGELOG.md Added changelog for 0.9.0 release (#799) 2019-07-19 17:56:23 +02:00
CONTRIBUTING.md Corrected grammar and rephrased a few sentences to read nicely (#641) 2019-03-07 16:25:37 +01:00
Gopkg.lock MF-295 add mqtt benchmark tool (#817) 2019-08-13 12:56:31 +02:00
Gopkg.toml MF-295 add mqtt benchmark tool (#817) 2019-08-13 12:56:31 +02:00
LICENSE Update licnese year (#533) 2019-01-09 16:23:30 +01:00
MAINTAINERS Update MAINTAINERS 2018-08-28 22:42:47 +02:00
Makefile NOISSUE - Use gRPC for VerneMQ (#835) 2019-09-02 23:22:46 +02:00
README.md Updated Readme (#808) 2019-07-25 19:20:11 +02:00
api.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
doc.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
env.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
internal.pb.go MF-783 - Allow access checking by a thing ID (#784) 2019-07-15 18:28:15 +02:00
internal.proto MF-783 - Allow access checking by a thing ID (#784) 2019-07-15 18:28:15 +02:00
message.go MF-757 - Add support for explicit content type (#771) 2019-07-25 02:22:28 +02:00
message.pb.go Fix CI with fixed plugin versions (#747) 2019-05-15 17:41:18 +02:00
message.proto MF-596 - Add subtopic to RawMessage (#642) 2019-03-15 18:38:07 +01:00
mkdocs.yml Fix typo (#814) 2019-08-02 15:22:28 +02:00
publisher.go MF-399 - Add open tracing support (#782) 2019-07-18 15:01:09 +02:00
topics.go MF-325 - Add SPDX license and copyright headers (#362) 2018-08-26 13:15:48 +02:00
version.go MF-757 - Add support for explicit content type (#771) 2019-07-25 02:22:28 +02:00

README.md

Mainflux

build go report card coverage license chat

banner

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!

  1. Take a look at our open issues.
  2. Checkout the contribution guide to learn more about our style and conventions.
  3. 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 😎.

Community

License

Apache-2.0