Connect Object Pascal applications with Open Source Message Brokers

Release 2021.06 is 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


Four library versions are available, specialized for different message brokers


Use the feature matrix below to compare their broker-specific features


For downloads and more information choose your version from the top menu or in the 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 ARTEMIS-3164
Message Selector
Queue Browser
Client-side extensions
Failover Protocol
Connection Builder
DUnit Tests
FPCUnit Tests
Getting started (PDF)
Unit test source code
Tutorials and examples
Delphi 2009+
Free Pascal 3.0.4+
TCP/IP Libraries
Internet Direct (Indy) 10.6.2 (recommended)
Ararat Synapse b40 (deprecated) ②
Logging (optional)
SLF4P logging facade
Windows 32 bit (Delphi/FPC) ✓/✓ ✓/✓ ✓/✓ ✓/✓
Windows 64 bit (Delphi ②/FPC) ✓/✓ ✓/✓ ✓/✓ ✓/✓
Linux ② with Delphi 10.3/FPC ✓/✓ ✓/✓ ✓/✓ ✓/✓
Additional information
Source included
Tested with Apache ActiveMQ 5.16.2 ActiveMQ Artemis 2.17.0 Eclipse GlassFish 6.0 RabbitMQ 3.8.17
Release date 26 June 2021 26 June 2021 26 June 2021 26 June 2021
Buy now » Buy now » Buy now » Buy now »

① - Not supported by message broker STOMP implementation

② - Limited support and/or experimental feature

Use cases


Load balancing/distributed processing, client notification in multi-tiered applications, dynamically configuring and controlling software, alerting and logging, integration with ISAPI, PHP, .NET, Python or Java™ based web applications



Yes! Basic support is included for one year. Advanced and experimental features such as (for example) SSL/TLS, third party libraries, Linux, non-Unicode Delphi versions and message broker configuration are not covered by the basic support plan.

On the library home page you will find a link to the download area for registered users. The credentials (user name and password) will be sent to you when a new release is available.

A trial version with precompiled units (DCU) is not available. To see if the library works, you may use the free demo applications which are included in the download file. Also, you may contact Habarisoft to receive additional source code examples.



Yes, each developer that uses our products must have their own license.


No, the licenses are perpetual. However, you will be using the last product version released before your free upgrade period expired.

Distribution Questions


No, the source code is not redistributable, even if you change it.


Internet Direct (Indy) or the Synapse TCP/IP network library is required.

Indy is hosted on GitHub at

No, just add the Indy directories Lib\Core, Lib\Protocols and Lib\System to the project search path. The Indy version which is included in Delphi may remain unchanged.

The library includes two experimental adapter classes for usage with OpenSSL, one for Indy (Internet Direct) and one for Synapse. Technical support for these adapter classes and OpenSSL configuration is not included in the basic support package.

No, using a connection concurrently by different threads is unsafe. If different threads need to communicate with the message broker, every thread must use its own IConnection object.


Yes! When it is used correctly and as designed, no memory leaks will appear.


Yes! Service applications can use the library to communicate with the message broker, if connections are not used concurrently by different threads.


Yes! ISAPI DLL modules can use the library to communicate with the message broker, if connections are not used concurrently by different threads.


Yes! All library versions include support for transactional sending of messages. Transactional message ack currently is provided for ActiveMQ and RabbitMQ.


Yes, the core library works with Free Pascal 3.0.2+

No, the library only supports the STOMP wire format.

Advanced Chemistry Development

Airport Business Information System - Hamburg Airport

Allcop Foto Online Service


Bangkok Medical Software

C.Ed. Schulte


CompuGroup Medical Malaysia

De Wolfe Music

Deutsches Zahnärztliches Rechenzentrum




HSEB Dresden

Inkwazi Tracking

Kubikenborg Aluminium

Pfizer Manufacturing Belgium

Prime Vision

Polaris Elements

QDA Solutions

Racing Industry Transition Agency

Retail Pro International


Shandong Tianlihe Software

Shift4 Payments

Stemcell Technologies

Taiwan Semiconductor Manufacturing Company

TransMedia Dynamics

TV2 Norway


Westfalia Werkzeugcompany

Yixing Technology