Lannister is a lightweight MQTT broker equipped with full specifications support, Clustering, WebSocket, SSL written in Java.
MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol. It was designed as an extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is at a premium. For example, it has been used in sensors communicating to a broker via satellite link, over occasional dial-up connections with healthcare providers, and in a range of home automation and small device scenarios. It is also ideal for mobile applications because of its small size, low power usage, minimised data packets, and efficient distribution of information to one or many receivers - http://mqtt.org
- Full Protocol Specifications(MQTT Version 3.1.1, MQTT Version 3.1) support includes
- QoS 0,1,2 on Publish / Subscribe
- Clean / Persistent Session
- Retained / Will Message
- For more information, refer Specification Conformance Test/Review Report.
- Clustering
- Distribution Transparency / High Availability / Distributed Cache
- Easy, elastic Scaling out
- For more information, refer Clustering.
- WebSocket
- Built-in WebSocket support on the same JVM of regular TCP channel
- For more information, refer WebSocket settings.
- SSL (TCP / WebSocket channels both)
- Built-in SSL support for both TCP(
mqtts://
) and WebSocket(wss://
) channels - For more information, refer SSL settings.
- Built-in SSL support for both TCP(
- Plug-In Support
- Adapter/Framework for customizing broker logics against MQTT events
- For more information, refer Plug-In.
- $SYS topics
- Static / Required Topics supported described in SYS Topics
- For more information, refer $SYS topics.
- Features arranged for Lannister version 1.1 (Under development)
- Web administration Site
- extended HTTP REST APIs for admin, client
- Bridge
- Data Persistency
- Optional $SYS Topics
- Before getting into Lannister installation, check the follows are installed in your machine.
- Java 8 or later
- Maven 3 (case for starting from source)
- Go to https://goo.gl/GJ1piF
- Download a compressed file preferred (
zip
/tar.gz
/tar.bz2
) - Unpack downloaded file and move into the directory
- Execute
./bin/startup.sh
- For shutdown, execute
./bin/shutdown.sh
# Download lannister source
git clone https://github.com/anyflow/lannister.git
# Change directory to lannister
cd lannister
# Build(The command builds all sub-projects(interface, server, plugin-example simultaneously)
mvn install
# Run lannister server
mvn exec:java -pl server
For deeper understanding of Lannister, please visit http://anyflow.github.io/lannister. The site has complete information of Lannister includes all of the above links and development/production information.
Park Hyunjeong / anyflow@gmail.com
Lannister is released under version 2.0 of the Apache License.