Habari Client for Artemis is a library for Delphi and Free Pascal which provides access to the ActiveMQ Artemis free open source message broker.

With this library, developers can build integrated solutions, connecting cross language clients and protocols, using the peer-to-peer or the publish-and-subscribe communication model.


Habari Client for Artemis is easy to install and configure, and provides a high-level API and programming model, based on connections, sessions, destinations, message producers, and message consumers. This design hides the internals of STOMP and many broker-specific implementation differences.

STOMP:// protocol adapter

The library uses the STOMP protocol for communication with the message broker. Internet Direct (Indy) or Ararat Synapse is required as the only dependency.

About the ActiveMQ Artemis message broker

ActiveMQ logo

Apache ActiveMQ Artemis has a proven non blocking architecture. It delivers outstanding performance.

Its features include AMQP and OpenWire support, HornetQ Core protocol support for HornetQ 2.4/2.5 clients, JMS 2.0 and 1.1 support.

WildFly 10 (released in January 2016) includes Artemis as its JMS broker, and due to the protocol compatibility, it fully replaces the HornetQ project.


Download Demo Download »

20 April 2018
Tested with
ActiveMQ Artemis 2.4.0
Chat, Performance test, Throughput test

A local installation of a message broker is required for Habari Client for Artemis demo applications

Developer License

Habari Client for Artemis

  • Instant electronic delivery
  • Full library source code included
  • Free redistribution with your product when used in binary compiled applications
  • Non-exclusive lifetime license
  • Updates included for one year after purchase
  • 60 day money back guarantee

Buy now »

Registered version

Code Example

Code for sending (producing) messages:

// Getting connection from the server and starting it

ConnectionFactory := TBTConnectionFactory.Create;
Connection := ConnectionFactory.CreateConnection;

// Messages are sent and received using a Session. We will
// create here a non-transactional session object. If you want
// to use transactions you should set the first parameter to 'true'

Session := Connection.CreateSession(False, amAutoAcknowledge);

// Destination represents here our queue 'ExampleQueue' on the
// server. You don't have to do anything special on the
// server to create it, it will be created automatically (except with Artemis and HornetQ).

Destination := Session.CreateQueue('ExampleQueue');

// MessageProducer is used for sending messages (as opposed
// to MessageConsumer which is used for receiving them)

MessageProducer := Session.CreateProducer(Destination);                
// We will send a small text message saying 'My hovercraft is full of eels' in Swahili:

TextMessage := Session.CreateTextMessage("Gari langu linaloangama limejaa na mikunga");
// Here we are sending the message



Quick Facts

Technical Information


Habari Client libraries are compatible with

  • Delphi 2009 (32 bit) and newer
  • Free Pascal 3.0.2
TCP/IP Libraries

The library includes communication adapter units for the free open source libraries

  • Internet Direct (Indy) 10.6
  • Ararat Synapse rev. 40
Logging Support for the SLF4P logging framework


Bug reports Bugs can be reported at cases@habarisoft.com
Email support Basic support is included for one year after purchase