Habari Client libraries logo

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.

STOMP://

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

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
TextMessage / BytesMessage ✓/✓ ✓/✓ ✓/✓ ✓/✓
ObjectMessage / MapMessage ✓/✓ ✓/✓ ✓/✓ ✓/✓
STOMP Features
1.0/1.2 Support ✓/✓ ✓/✓ ✓/② ✓/✓
Transacted Send
Transacted Ack
Heart-beating
STOMP Extensions
Message Expiration
Message Priority
Persistent Messages
Temporary Queues
Durable Topics
Message Selector
Queue Browser
Rich Message Conversion
Advanced and Experimental
Failover Protocol
Example ObjectMessage/MapMessage bindings (NativeXML, OmniXML, SuperObject, lkJSON, IXMLDocument)
Connection Pool
Connection Builder
Testing
DUnit Tests
FPCUnit Tests
Documentation
API (HTML)
Getting started (PDF)
Unit test source code
Tutorials and examples
Compiler
Delphi 2009+ (32 bit)
Free Pascal 2.6.4 / 3.0 ✓/✓ ✓/✓ ✓/✓ ✓/✓
TCP/IP Libraries
Internet Direct (Indy) 10.6
Ararat Synapse 40

① - not supported by message broker STOMP implementation

② - please contact Habarisoft or check the FAQ

Airbus Defence and Space GmbH

Airport Business Information System GmbH - Hamburg Airport

Almasoft AB

Bally Technologies MCC

C.Ed. Schulte GmbH

Clinicient, Inc.

De Wolfe Music

EMC Corporation

Emery-Waterhouse

HSEB Dresden GmbH

Kubikenborg Aluminium AB

Maxim Integrated Products

Retail Pro International, LLC

Taiwan Semiconductor Manufacturing Company Ltd

TransMedia Dynamics Ltd.

TV2 Norway