20 April 2018

Habari Client libraries 2018.04

Release 2018.04 of Object Pascal STOMP client libraries for Apache ActiveMQ, Apache ActiveMQ Artemis, Open MQ and RabbitMQ now available

Habari Client libraries enable Object Pascal applications to take advantage of message broker / message queue technology - which is distributed, loosely coupled, reliable and asynchronous - to build integrated systems, using peer-to-peer and publish-subscribe communication models

Use cases for Habari Client libraries include:

  • Alerting and logging
  • Client notification in multi-tiered applications
  • Delayed activity such as billing, order processing, provisioning...
  • Distributed processing and load balancing
  • Dynamically configuring and controlling software
  • Integration with ISAPI, PHP, .NET, Python or Java™ based web applications

Habari Client libraries support the Apache ActiveMQ, ActiveMQ Artemis, OpenMQ, and RabbitMQ open source message brokers

All Habari Client library versions use the same high-level API and programming model. Migrations from one message broker to another can be as simple as a rebuild.


1.0 1.1 1.2

Habari Client libraries use the language-agnostic STOMP protocol. This interoperable wire format allows STOMP clients to talk with any message broker supporting the protocol. As they take care of many broker-specific implementation details, Habari Client libraries save you development time.

Habari Client libraries support many broker-specific extensions of the STOMP protocol standard. Please note that some extensions are not available on all brokers. Exceptions are indicated below and in the feature matrix. Widely adopted STOMP extensions are:

Message Expiration

By default, a message never expires. If a message will become obsolete after a certain period, however, you may want to set an expiration time for the message.

Message Priority

A client can specify a priority for each message it sends. Message priorities affect the order in which the messages are delivered to the consumers.

Persistent Messages

Brokers support reliable messaging by allowing messages to be persisted so that they can be recovered if there is failure which kills the broker.

Durable Topics

Even if the client which created the durable subscription is not online, he can still get a copy of all the messages sent to the topic when he comes back online.

Rich Message Conversion

Binary and text messages can be exchanged between STOMP and non-STOMP clients. (Object and map messages are exchanged as text messages)

Temporary Queues

Temporary destinations are typically used to receive response messages in a request/response messaging exchange. (Not supported by ActiveMQ Artemis)

Message Selector

Message selectors allow a subscription to only receive a subset of the messages sent to a destination. (Not supported by RabbitMQ)


Heart-beating can optionally be used to test the healthiness of the underlying TCP connection and to make sure that the remote end is alive. (Not supported by OpenMQ)

Feature Matrix

Version Habari Client for ActiveMQ Habari Client for Artemis Habari Client for OpenMQ Habari Client for RabbitMQ
Message Types
STOMP Standard Support
1.0/1.2 Support ✓/✓ ✓/✓ ✓/partial ✓/✓
Transacted Send
Transacted Ack
Supported broker-side STOMP extensions
Message Expiration
Message Priority
Persistent Messages
Durable Topics
Rich Message Conversion
Temporary Queues
Message Selector
Queue Browser
Client-side extensions
Failover Protocol
Connection Builder
Example JSON and XML ObjectMessage / MapMessage binding classes
DUnit Tests
FPCUnit Tests
Management API client for unit tests
Getting started (PDF)
Unit test source code
Tutorials and examples
Delphi 2009+
Free Pascal 3.0.2+
TCP/IP Libraries
Internet Direct (Indy) 10.6
Ararat Synapse b40
Windows 32/64 bit
Linux (limited support)

① - not supported by message broker STOMP implementation

Airbus Defence and Space GmbH

Airport Business Information System GmbH - Hamburg Airport


Almasoft AB

Bally Technologies MCC

C.Ed. Schulte GmbH

Clinicient, Inc.

CompuGroup Medical Malaysia

De Wolfe Music

EMC Corporation


HSEB Dresden GmbH

Kubikenborg Aluminium AB

Maxim Integrated Products


Peer Software, Inc.

Pfizer Manufacturing Belgium


Retail Pro International, LLC


Shandong Tianlihe Software Co., Ltd.

Taiwan Semiconductor Manufacturing Company Limited

TransMedia Dynamics Ltd.

TV2 Norway


Westfalia Werkzeugcompany GmbH & Co KG