Mainflux.mainflux/README.md

93 lines
4.6 KiB
Markdown
Raw Normal View History

2016-04-29 04:07:16 +08:00
# Mainflux
2015-10-02 22:15:46 +08:00
2016-09-21 03:24:27 +08:00
[![License](https://img.shields.io/badge/license-Apache%20v2.0-blue.svg)](LICENSE)
[![Join the chat at https://gitter.im/Mainflux/mainflux](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Mainflux/mainflux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
2015-07-07 05:43:19 +08:00
2017-09-03 04:28:23 +08:00
> **NOTE**
>
2017-09-03 04:29:46 +08:00
> Mainflux is currently under heavy refactoring, moving to `go-kit` framework and `Cassandra` database for `v1.0.0` release.
2017-09-03 04:28:23 +08:00
> Release ETA: end of September
>
> **Docker composition will unusable during this period - use direct install**
### About
2017-06-04 03:22:17 +08:00
Mainflux is modern massively-scalable and [highly-secured](#security) open source and patent-free IoT cloud platform written in Go, based on a set of [microservices](#architecture).
2015-07-07 05:43:19 +08:00
2016-04-29 04:19:08 +08: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.
2017-09-03 05:33:58 +08:00
![gophersBanner](https://github.com/mainflux/doc/blob/master/docs/images/gopherBanner.jpg)
2016-11-13 02:49:23 +08:00
2017-06-04 03:09:26 +08:00
Mainflux is built with <3 by [Mainflux company](https://www.mainflux.com/) and community contributors.
2016-11-13 02:29:14 +08:00
### Architecture
Mainflux IoT cloud is composed of several components, i.e. microservices:
2016-11-24 09:19:06 +08:00
| Link | Description |
|:--------------|:----------------------|
2017-08-24 05:34:18 +08:00
| [http-adapter](https://github.com/mainflux/http-adapter) | HTTP message API server |
2017-07-08 23:04:01 +08:00
| [manager](https://github.com/mainflux/manager) | Service for managing platform resources, including auth |
2017-08-24 05:34:18 +08:00
| [message-writer](https://github.com/mainflux/message-writer) | Worker behind NATS that writes messages into Cassandra DB |
| [mqtt-adapter](https://github.com/mainflux/mqtt-adapter) | MQTT PUB/SUB Broker (with WebSocket support) |
2017-03-02 06:58:00 +08:00
| [mainflux-coap](https://github.com/mainflux/mainflux-coap) | CoAP Server |
2016-11-24 09:19:06 +08:00
| [mainflux-ui](https://github.com/mainflux/mainflux-ui) | System Dashboard in Angular 2 Material |
2016-11-24 09:22:40 +08:00
| [mainflux-cli](https://github.com/mainflux/mainflux-cli) | Interactive command-line interface |
2017-08-24 05:34:18 +08:00
| [Cassandra](https://github.com/apache/cassandra) | System Database |
2016-11-24 09:19:06 +08:00
| [Redis](https://github.com/antirez/redis) | System async events and caching |
2016-12-05 03:32:20 +08:00
| [NATS](https://github.com/nats-io/gnatsd) | System event bus |
2016-12-31 03:41:40 +08:00
| [NGINX](https://github.com/nginx/nginx) | Reverse Proxy with Auth forwarding |
2016-11-13 02:29:14 +08:00
2017-09-03 05:33:58 +08:00
![arch](https://github.com/mainflux/doc/blob/master/docs/images/architecture.jpg)
2017-01-15 07:57:59 +08:00
2016-11-13 02:29:14 +08:00
Docker composition that constitues Mainflux IoT infrastructure is defined in the [`docker-compose.yml`](https://github.com/Mainflux/mainflux/blob/master/docker-compose.yml).
2016-04-29 04:16:01 +08:00
### Install/Deploy
2016-11-13 02:29:14 +08:00
2016-04-29 04:16:01 +08:00
- Clone the repo:
```bash
git clone https://github.com/Mainflux/mainflux.git && cd mainflux
```
2016-04-29 04:16:01 +08:00
- Start the Docker composition:
2015-07-07 05:43:19 +08:00
```bash
2016-04-29 04:16:01 +08:00
docker-compose up
```
2016-04-29 04:19:08 +08:00
2016-11-13 02:29:14 +08:00
This will automatically download Docker images from [Mainflux Docker Hub](https://hub.docker.com/u/mainflux/) and deploy the composition of Mianflux microservices.
2016-04-29 04:07:16 +08:00
2016-08-23 05:54:41 +08:00
### Features
An extensive (and incomplete) list of features includes:
- Responsive and scalable architecture based on a set of [microservices](https://en.wikipedia.org/wiki/Microservices)
- 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
2017-08-24 05:34:18 +08:00
- Enhanced and fine-grained security with Access Control Lists
2016-08-23 05:54:41 +08:00
- Easy deployment and high system scalability via [Docker](https://www.docker.com/) images
- Clear project roadmap, extensive development ecosystem and highly skilled developer community
- And many more
2015-10-17 06:03:21 +08:00
### Documentation
2016-12-04 01:49:41 +08:00
Mainflux documentation can be found [here](http://mainflux.io/).
2015-12-07 08:03:28 +08:00
2015-10-17 06:03:21 +08:00
### Community
2016-08-23 16:50:31 +08:00
#### Mailing list
2016-09-21 02:03:31 +08:00
[mainflux](https://groups.google.com/forum/#!forum/mainflux) Google group
2016-08-23 16:50:31 +08:00
For quick questions and suggestions you can also use GitHub Issues.
2015-10-17 06:03:21 +08:00
#### IRC
[Mainflux Gitter](https://gitter.im/Mainflux/mainflux?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
#### Twitter
[@mainflux](https://twitter.com/mainflux)
2016-08-23 06:21:32 +08:00
### Authors
2016-10-30 02:07:58 +08:00
Main architect and BDFL of Mainflux project is [@drasko](https://github.com/drasko). Additionaly, initial version of Mainflux was architectured and crafted by [@janko-isidorovic](https://github.com/janko-isidorovic), [@nmarcetic](https://github.com/nmarcetic) and [@mijicd](https://github.com/mijicd).
2016-08-23 06:21:32 +08:00
Maintainers are listed in [MAINTAINERS](MAINTAINERS) file.
2016-10-30 02:07:58 +08:00
Contributors are listed in [CONTRIBUTORS](CONTRIBUTORS) file.
### License
2015-10-10 06:55:04 +08:00
[Apache License, version 2.0](LICENSE)