2016-04-28 22:07:16 +02:00
# Mainflux
2015-10-02 14:15:46 +00:00
2017-09-23 02:27:49 +02:00
[![build][ci-badge]][ci-url]
[![go report card][grc-badge]][grc-url]
[![license][license]](LICENSE)
[![chat][gitter-badge]][gitter]
2015-07-06 23:43:19 +02:00
2017-09-23 02:27:49 +02:00
![banner][banner]
2015-07-06 23:43:19 +02:00
2017-09-23 02:27:49 +02:00
Mainflux is modern, massively-scalable, highly-secured open source and patent-free IoT cloud
platform written in Go.
2015-10-02 16:18:35 +02:00
2017-09-23 02:27:49 +02:00
It allows device, user and application connections over various network protocols, like HTTP, MQTT,
WebSocket, and CoAP, making a seamless bridge between them. It is used as the IoT middleware for
building complex IoT solutions.
2016-11-12 19:49:23 +01:00
2017-09-23 02:27:49 +02:00
For more details, check out the [official documentation][docs].
2015-10-02 16:18:35 +02:00
2017-09-23 02:27:49 +02:00
## Features
2016-11-24 02:19:06 +01:00
2017-09-23 02:27:49 +02:00
An extensive (and incomplete) list of features includes:
- Responsive and scalable microservice architecture
- Set of clean APIs: HTTP RESTful, MQTT, WebSocket and CoAP
- SDK - set of client libraries for many HW platforms in several programming languages: C/C++, JavaScript, Go and Python
- Device management and provisioning and OTA FW updates
- Highly secured connections via TLS and DTLS
- Enhanced and fine-grained security with Access Control Lists
- Easy deployment and high system scalability via [Docker][docker] images
- Clear project roadmap, extensive development ecosystem and highly skilled developer community
- And many more
## Architecture
2016-11-12 19:29:14 +01:00
2017-09-23 02:27:49 +02:00
TBD
2017-01-15 00:57:59 +01:00
2017-09-23 02:27:49 +02:00
## Quickstart
2017-09-18 21:38:06 +02:00
2017-09-23 02:27:49 +02:00
#### Docker
2016-04-28 22:16:01 +02:00
- Clone the repo:
```bash
2017-09-23 02:27:49 +02:00
git clone https://github.com/mainflux/mainflux.git
2017-09-18 21:38:06 +02:00
```
- Go to `mainflux/docker` dir:
```
cd mainflux/docker
2016-04-28 22:16:01 +02:00
```
2015-10-02 16:18:35 +02:00
2017-09-18 21:41:57 +02:00
- Use [`mainflux-docker.sh` ](docker/mainflux-docker.sh ) script to start the Docker composition:
2015-07-06 23:43:19 +02:00
```bash
2017-09-18 21:41:57 +02:00
./mainflux-docker.sh start
2015-10-02 16:18:35 +02:00
```
2016-04-28 22:19:08 +02:00
2017-09-23 02:27:49 +02:00
Once started, the script will download and start Docker images required by the composition.
2016-04-28 22:07:16 +02:00
2017-09-23 02:27:49 +02:00
#### From sources
2017-09-18 21:41:57 +02:00
Use script [`install_sources.sh` ](install_sources.sh ).
2017-09-18 21:38:06 +02:00
This will create `./mainflux_sources` dir, git-clone all the sources from GitHub repos and place them in appropriate destination (Go code goes to $GOPATH, symlinks are created).
It will also give you the instructions how to finish the installation manually.
2017-09-23 02:27:49 +02:00
## Community
- [Google group][forum]
- [Gitter][gitter]
- [Twitter][twitter]
[banner]: https://github.com/mainflux/doc/blob/master/docs/img/gopherBanner.jpg
[ci-badge]: https://semaphoreci.com/api/v1/mainflux/mainflux/branches/master/badge.svg
[ci-url]: https://semaphoreci.com/mainflux/mainflux
[docs]: http://mainflux.readthedocs.io
[docker]: https://www.docker.com
[forum]: https://groups.google.com/forum/#!forum/mainflux
[gitter]: https://gitter.im/mainflux/mainflux?utm_source=badge& utm_medium=badge& utm_campaign=pr-badge& utm_content=badge
[gitter-badge]: https://badges.gitter.im/Join%20Chat.svg
[grc-badge]: https://goreportcard.com/badge/github.com/mainflux/mainflux
[grc-url]: https://goreportcard.com/report/github.com/mainflux/mainflux
[license]: https://img.shields.io/badge/license-Apache%20v2.0-blue.svg
[twitter]: https://twitter.com/mainflux