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 6.7 | Habari Client for Artemis 6.7 | Habari Client for OpenMQ 6.7 | Habari Client for RabbitMQ 6.7 |
---|---|---|---|---|
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 | ✓ | ✓ | ✓ | ✓ |
Documentation | ||||
API (HTML) | ✓ | ✓ | ✓ | ✓ |
Getting started (PDF) | ✓ | ✓ | ✓ | ✓ |
Unit test source code | ✓ | ✓ | ✓ | ✓ |
Tutorials and examples | ✓ | ✓ | ✓ | ✓ |
Compiler | ||||
Delphi 2009+ | ✓ | ✓ | ✓ | ✓ |
Free Pascal 3.0.4+ | ✓ | ✓ | ✓ | ✓ |
Delphi 6 to 2007 ② | ✓ | ✓ | ✓ | ✓ |
TCP/IP Libraries | ||||
Internet Direct (Indy) 10.6.2 (recommended) | ✓ | ✓ | ✓ | ✓ |
Ararat Synapse b40 (deprecated) ② | ✓ | ✓ | ✓ | ✓ |
Logging (optional) | ||||
SLF4P logging facade | ✓ | ✓ | ✓ | ✓ |
Platforms | ||||
Windows 32 bit (Delphi/FPC) | ✓/✓ | ✓/✓ | ✓/✓ | ✓/✓ |
Windows 64 bit (Delphi ②/FPC) | ✓/✓ | ✓/✓ | ✓/✓ | ✓/✓ |
Linux ② with Delphi 10.3/FPC | ✓/✓ | ✓/✓ | ✓/✓ | ✓/✓ |
① - Not supported by message broker STOMP implementation ② - Limited support and/or experimental feature |
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
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.
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.
block
No, the source code is not redistributable, even if you change it.
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 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
Affinity
Airbus Defence and Space
Airport Business Information System - Hamburg Airport
Allcop Foto Online Service
Almasoft
Bally Technologies
Bangkok Medical Software
C.Ed. Schulte
Clinicient
CompuGroup Medical Malaysia
De Wolfe Music
Deutsches Zahnärztliches Rechenzentrum
Edge-Airport
Emery-Waterhouse
Fasthosts
Frio Servicio de Monterrey
HSEB Dresden
Inkwazi Tracking
Kubikenborg Aluminium
Maxim Integrated Products
OXXO
Peer Software
Pfizer Manufacturing Belgium
Prime Vision
Polaris Elements
QDA Solutions
Racing Industry Transition Agency
Retail Pro International
Sabre
Shandong Tianlihe Software
Shift4 Payments
Taiwan Semiconductor Manufacturing Company
TransMedia Dynamics
TV2 Norway
wareconsult
Westfalia Werkzeugcompany
Yixing Technology