20 April 2018
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:
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.
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:
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.2+ | ✓ | ✓ | ✓ | ✓ |
TCP/IP Libraries | ||||
Internet Direct (Indy) 10.6 | ✓ | ✓ | ✓ | ✓ |
Ararat Synapse b40 | ✓ | ✓ | ✓ | ✓ |
Platforms | ||||
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
Allcop
Almasoft AB
Bally Technologies MCC
BETLAB
C.Ed. Schulte GmbH
Clinicient, Inc.
De Wolfe Music
EMC Corporation
Emery-Waterhouse
HSEB Dresden GmbH
Infobase Systems
Kubikenborg Aluminium AB
Maxim Integrated Products
OXXO
Peer Software, Inc.
Plexo
Retail Pro International, LLC
Sabre
Shandong Tianlihe Software Co., Ltd.
Taiwan Semiconductor Manufacturing Company Limited
TransMedia Dynamics Ltd.
Trondent Development Corp.
Tudor Investment Corporation
TV2 Norway
UCWARE Inc.
Westfalia Werkzeugcompany GmbH & Co KG