GithubHelp home page GithubHelp logo

gsalomao / maxmq Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 1.0 5.45 MB

An Open-Source, Cloud-Native and High-Performance MQTT Broker for IoT.

License: Apache License 2.0

Makefile 6.50% Go 88.51% Dockerfile 1.48% Smarty 1.53% Shell 1.98%
go golang mqtt iot pubsub mqtt-broker broker mqtt-server mqtt-protocol iot-broker

maxmq's People

Contributors

gsalomao avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

moayyaed

maxmq's Issues

Keep MQTT clients connected

Description

The broker must keep the clients connected, this means that it must respond with PINGRESP when the client sends the PINGREQ packet, based on the MQTT specification.
When the client does not send the PINGREQ within the Keep Alive window, the broker must disconnect the client.

Subscribe to topics on MQTT SUBSCRIBE packet

Description

The broker must create subscriptions when it receives MQTT SUBSCRIBE packets. The subscriptions created must be associated with the session of the client who sent the SUBSCRIBE packet.

Start/Stop broker by command line

Description

The broker must be started and stopped by the command line.

The command line must have at least the following commands:

  • --help to show the available commands
  • --version to show the application version
  • start to start the broker

The broker must stop on SIGINT signal.

Generate a Docker image

Description

The project must allow anyone generates a Docker image with everything needed to start the broker.

Load configuration from maxmq.conf

Description

The application must load its configuration from the maxmq.conf file on startup. The file can be stored at the following locations with the following order:

  • Same location of the binary
  • In the path above the binary
  • /etc/maxmq
  • /etc

Allow different log formats and destinations

Description

Allow logging using different formats and destinations.

The allowed formats are:

  • pretty where the output is in text with colours
  • text where the output is in plain text (no colours)
  • json where the output is in JSON format

The allowed destinations are:

  • console where the output goes to the console
  • file where the output goes to a file

The format and destination shall be chosen by configuration (maxmq.conf or environment variables).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.