Skip to content

A Lightweight and fully asynchronous MQTT client C library based on libev

License

Notifications You must be signed in to change notification settings

zhaojh329/libumqtt

Repository files navigation

libumqtt

license PRs Welcome Issue Welcome Release Version Build Status

A Lightweight and fully asynchronous MQTT 3.1.1 client C library based on libev. And provide Lua-binding.

Features

  • Lightweight - 27KB(Using glibc,stripped)
  • Fully asynchronous - Use libev as its event backend
  • Support QoS 0, 1 and 2
  • Support ssl - OpenSSL, mbedtls and CyaSSl(wolfssl)
  • Code structure is concise and understandable, also suitable for learning
  • Lua-binding

Dependencies

  • libev
  • mbedtls - If you choose mbedtls as your SSL backend
  • CyaSSl(wolfssl) - If you choose wolfssl as your SSL backend
  • openssl - If you choose openssl as your SSL backend

Install dependent packages

sudo apt install libev-dev libssl-dev liblua5.2-dev

Build and install

git clone --recursive https://github.com/zhaojh329/libumqtt.git
cd libumqtt
mkdir build && cd build
cmake .. && sudo make install && ldconfig

Contributing

If you would like to help making libumqtt better, see the CONTRIBUTING.md file.