Link Search Menu Expand Document Edit GitHub

What is HiveMQ MQTT Client?

HiveMQ MQTT Client is an MQTT 5.0 and MQTT 3.1.1 compatible and feature-rich high-performance Java client library with different API flavours and backpressure support.

HiveMQ MQTT Client is an Open Source project backed by HiveMQ and BMW CarIT.

View it on GitHub

Features

  • All MQTT 3.1.1 and MQTT 5.0 features
  • API flavors:
    • Reactive: Reactive Streams compatible, RxJava and Reactor APIs are available
    • Asynchronous API: futures and callbacks
    • Blocking API: for quick start and testing
    • Switch flexibly between flavours and use them concurrently
    • Flavours are clearly separated but have a consistent API style
  • Backpressure support:
    • QoS 1 and 2
    • QoS 0 (dropping incoming messages, if necessary)
    • Bringing MQTT flow control and reactive pull backpressure together
  • Transports:
    • TCP
    • SSL/TLS
      • All TLS versions up to TLS 1.3 are supported
      • TLS mutual authentication
      • TLS Server Name Indication (SNI)
      • TLS Session Resumption
      • Default and customizable hostname verification
    • WebSocket, Secure WebSocket
    • Proxy: SOCKS4, SOCKS5, HTTP CONNECT
    • All possible combinations
  • Automatic and configurable thread management
  • Automatic and configurable reconnect handling and message redelivery
  • Automatic and configurable resubscribe if the session expired
  • Manual message acknowledgment
    • Selectively enable manual acknowledgment for specific streams
    • Acknowledge messages that are emitted to multiple streams independently per stream (the client aggregates the acknowledgments before sending MQTT acknowledgments)
    • Order of manual acknowledgment does not matter (the client automatically ensures the order of MQTT acknowledgments for 100% compatibility with the MQTT specification)
  • Lifecycle listeners
    • When connected
    • When disconnected or connection failed
  • MQTT 5 specific:
    • Pluggable Enhanced Authentication support (additional to MQTT specification: server-triggered re-authentication)
    • Automatic Topic Alias mapping
    • Interceptors for QoS flows

Users

If you use the HiveMQ MQTT Client in a project that is not listed here, feel free to open an issue or pull request.

Contributors