Skip to content

A lightweight MQTT broker w/ full spec,Clustering,WebSocket,SSL written in Java

License

Notifications You must be signed in to change notification settings

anyflow/lannister

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lannister

Build Status Codacy Badge Codacy Badge

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

Features

  • Full Protocol Specifications(MQTT Version 3.1.1, MQTT Version 3.1) support includes
  • 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.
  • Plug-In Support
    • Adapter/Framework for customizing broker logics against MQTT events
    • For more information, refer Plug-In.
  • $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

Getting Started

  • Before getting into Lannister installation, check the follows are installed in your machine.
    • Java 8 or later
    • Maven 3 (case for starting from source)

Starting from package

  1. Go to https://goo.gl/GJ1piF
  2. Download a compressed file preferred (zip / tar.gz / tar.bz2)
  3. Unpack downloaded file and move into the directory
  4. Execute ./bin/startup.sh
  5. For shutdown, execute ./bin/shutdown.sh

Starting from source

# 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

Project site

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.

Author

Park Hyunjeong / anyflow@gmail.com

License

Lannister is released under version 2.0 of the Apache License.

About

A lightweight MQTT broker w/ full spec,Clustering,WebSocket,SSL written in Java

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages