MQ Light is designed to allow applications to exchange discrete pieces of information in the form of messages. This might sound a lot like TCP/IP networking, and MQ Light does use TCP/IP under the covers, but MQ Light takes away much of the complexity and provides a higher level set of abstractions to build your applications with.

This Ruby gem provides the high-level API by which you can interact with the MQ Light runtime.

See for more details.

Getting Started


Ruby, as a language, has a few different implementations. Currently, the MQ Light gem only supports the reference implementation, often referred to as Ruby MRI ("Matz's Ruby Interpreter").

You will need a Ruby 1.9.x runtime environment or newer to use the MQ Light API module. This can be installed from, or by using your operating system's package manager.

The following are the currently supported platform architectures:

  • 64-bit runtime on Linux (x64)
  • 64-bit runtime on Mac OS X (x64)

You will receive an error if you attempt to use any other combination.


This Ruby gem is subject to the follow limitations:

  • Requires an 1.0.2 release of the MQ Light server
  • No TLS/SSL support for secure encrypted connections for platform Mac (Mac OpenSSL 0.9.8 does not support TLS 1.2)


Install using gem:

gem install mqlight

Alternatively, add 'mqlight' as a runtime dependency in your gemspec / Gemfile.


The API has been documented using Yardoc tag formatting within the Ruby code and can either be viewed online from the Documentation link at, or locally by running the YARD tooling.


To run the samples, install the module via gem and navigate to the <install path>/samples folder, where the <install path> can be determined from the output of gem list --details mqlight.


You can help shape the product we release by trying out the beta code and leaving your feedback.

Reporting bugs

If you think you've found a bug, please leave us feedback.

Release notes


  • Experimental support for Ruby 2.4


  • Bugfix for file handle leak on client stop


  • Support for sending and receiving
  • Support for 'at-most-once' and 'at-least-once' messaging.
  • Support for wildcard subscriptions.
  • Support for shared subscriptions.
  • Support for multiple services
  • Support for round-tripping binary or JSON messages
  • Support for dealing with malformed messages
  • Support for SASL
  • Support for SSL on Linux


  • Initial beta release.
  • Support for sending and receiving 'at-most-once' messages.
  • Support for wildcard subscriptions.
  • Support for shared subscriptions.