This GitHub repository contains an open source implementation of the JMQT protocol version 1.0. There are four primary modules which are freely available to use :
- A python based JMQT server (with Load Balancer support for distributed environment) developed using python asyncio (python 3.5 or above)
- A python based JMQT client (python 2.7 or above)
- A python load blanacer developed using python PumpkinLB library (python 3.5 or above)
- A Javascript based JMQT client which can directly run on web browsers (Angular JS 1.6.5)
JMQT is a publish-subscribe based IoT and messaging protocol. JMQT protocol is open & free, and can be used without any license agreement. No one owns JMQT.
To know more about JMQT, visit JMQT website
- pyjmqt : Python based JMQT server, client and load balancer libraries
- server - Libary for JMQT server developed using asyncio which supports python 3.5 or above.
- client - Library for JMQT client which supports python 2.7 or above
- jsclient : Library for JMQT client developed using Javascript which can directly run on web browsers :
- jmqt-client.js - Actual Javascript library file
- examples : Example projects that use pyjmqt and jsclient libraries
- sample_angularjs_client - Browser based application developed using AngularJS 1.6.5 and 'jmqt-client.js' to demonstrate JMQT functionalities
- sample_server.py - Python (3.5 or above) based JMQT server application developed using 'pyjmqt.server' library
- sample_client.py - Python (2.7 or above) based JMQT client application developed using 'pyjmqt.client' library
- sample_load_balancer.py - Python (3.5 or above) based JMQT Load Balancer developed using PumpkinLB
- pyjmqt.server :
- Developed using Python 3 asyncio for JMQT 1.0
- Supports Socket and WebSocket
- Supports SSL on Socket and WebSocket
- Integration with MySQL or SQLite for storage
- Supports distributed architecture using Redis pub/sub
- Supports load balancing using python PumpkinLB library
- pyjmqt.client :
- Developed using Python 2.7 for JMQT 1.0
- Supports Socket and SSL
- Requires no additional python libraries
- Supports Linux Single Board Computers (tested on RaspberryPi and BeagleBone Black)
- jsclient :
- Developed using plain Javascript for JMQT 1.0
- Supports WebSocket
- Requires no additional Javascript libraries
- Supports any browser with WebSocket support
- pyjmqt.server :
- Python 3.5 or above (recommended 3.6 or above)
- MySQL (required for distributed environment) or SQLite for permanent storage of packets
- Redis server (required for distributed environment)
- Python libraries as listed in pip_requirements/server.txt
- pyjmqt.client :
- Python 2.7 or above
- jsclient :
- No special requirements
- load balancer :
- Python 3.5 or above (recommended 3.6 or above)
- Python libraries as listed in pip_requirements/load_balancer.txt
For the instructions to run the examples or to read the developer guides, please open the examples directory and have a look at README.md.
This repository is open source and under MIT license.