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

language

Four library versions are available, specialized for different message brokers

view_comfy

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

get_app

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
TextMessage
BytesMessage
ObjectMessage
MapMessage
Message
STOMP Standard Support
1.0/1.2 Support ✓/✓ ✓/✓ ✓/partial ✓/✓
Heart-beating
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
Testing
DUnit Tests
FPCUnit Tests
Management API client for unit tests
-
Documentation
API (HTML)
Getting started (PDF)
Unit test source code
Tutorials and examples
Compiler
Delphi 2009+
Free Pascal 3.0.4+
TCP/IP Libraries
Internet Direct (Indy) 10.6.2 ②
Ararat Synapse b40
Logging
SLF4P logging facade③
Platforms
Windows 32/64 bit
Linux (limited support)

① - not supported by message broker STOMP implementation

② - Recommended

③ - Optional, not required for compilation

Use cases

apps

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

General

check

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

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 check if the library meets your requirements, you can purchase a Single Developer license, which includes a 60 days full money back guarantee. This allows to test the full version of the library without any risk. The reseller (ShareIt) will give a full refund if you find that the library does not work as expected.

Licensing

check

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.

check

Yes! If you are a registered user, please contact Habarisoft and ask for discount coupon code.

Distribution Questions

block

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

Technical

Internet Direct (Indy) or the Synapse TCP/IP network library is required. Logging (SLF4P) and object serialization (XML, JSON) are optional dependencies.

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.

check

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

check

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

check

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

check

Yes! All library versions include support for transactional sending of messages. Transactional message ack currently is provided for ActiveMQ, Open MQ (5.1b09) and RabbitMQ.

check

Yes, the core library works with Free Pascal 3.0.2+

No, AMQP and MQTT are not supported. The library only supports the STOMP wire format.

Advanced Chemistry Development, Inc.

Airbus Defence and Space GmbH

Airport Business Information System GmbH - Hamburg Airport

Allcop

Almasoft AB

Bally Technologies MCC

C.Ed. Schulte GmbH

Clinicient, Inc.

CompuGroup Medical Malaysia

De Wolfe Music

DZR GmbH

Edge-Airport

EMC Corporation

Emery-Waterhouse

HSEB Dresden GmbH

Inkwazi Tracking

Kubikenborg Aluminium AB

Maxim Integrated Products

OXXO

Peer Software, Inc.

Pfizer Manufacturing Belgium

Plexo

Prime Vision B.V.

Retail Pro International, LLC

Sabre

Shandong Tianlihe Software Co., Ltd.

Shift4 Payments, LLC

Taiwan Semiconductor Manufacturing Company Limited

TransMedia Dynamics Ltd.

TV2 Norway

UCWARE Inc.

Westfalia Werkzeugcompany GmbH & Co KG