Habari Client for RabbitMQ is a library for Delphi and Free Pascal which provides access to the RabbitMQ free open source Message Broker.

language

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.

favorite_border

It is easy to configure and provides a high-level API and programming model, based on connections, sessions, destinations, message producers, and message consumers.

filter_list

The library uses the STOMP protocol for its communication with the message broker. Supported STOMP protocol version levels are 1.0, 1.1 and 1.2.

Habari Client libraries support several broker-specific extensions of the STOMP protocol standard. Please note that library support for broker-specific extensions may be limited or incompatible across clients and broker versions.

timer

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.

traffic

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.

storage

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.

pause_circle_outline

Durable Subscriptions

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.

import_export

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)

sync

Temporary Queues

Temporary destinations are typically used to receive response messages in a request/response messaging exchange. (Not supported by Apache ActiveMQ Artemis)

filter_list

Message Selector

Message selectors allow a subscription to only receive a subset of the messages sent to a destination. (Not supported by RabbitMQ)

Released 18 August 2018

book

Manual

Read the "Getting Started" user guide for Habari Client for RabbitMQ

search

API

Browse the online API documentation for Habari Client for RabbitMQ

list

Release notes

Browse release notes (new features, enhancements, and bug fixes)

help_outline

FAQ

Frequently asked questions: use cases, licensing, and technical

alternate_email

Contact

Contact Habarisoft for support and sales inqueries

bug_report

#$*!0@

Submit a bug report

Code Examples

code

Code for sending (producing) messages:

// Getting connection from the server and starting it
ConnectionFactory := TBTConnectionFactory.Create;

try
    Connection := ConnectionFactory.CreateConnection;
    Connection.Start;

    // 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.
    Destination := Session.CreateQueue('ExampleQueue');

    // MessageProducer is used for sending messages (as opposed
    // to MessageConsumer which is used for receiving them)
    Producer := Session.CreateProducer(Destination);                

    // We will send a small TextMessage saying 'My hovercraft is full of eels' in Mandarin:
    TextMessage := Session.CreateTextMessage("我的氣墊船裝滿了鱔魚");

    // Here we are sending the message
    Producer.Send(Message);
finally
    Connection.Close;
end;
code

Code for receiving (consuming) messages:

// Getting connection from the server and starting it
ConnectionFactory := TBTConnectionFactory.Create;

try
    Connection := ConnectionFactory.CreateConnection;
    Connection.Start;

    // 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.
    Destination := Session.CreateQueue('ExampleQueue');

    // MessageConsumer is used for receiving messages (as opposed
    // to MessageProducer which is used for sending them)
    Consumer := Session.CreateConsumer(Destination);                

    // We will try to receive send a TextMessage within 5 seconds:
    TextMessage := Consumer.Receive(5000);

    WriteLn(TextMessage.Text);

finally
    Connection.Close;
end;

add_shopping_cart

Not a registered user? Purchase your developer license of Habari Client for RabbitMQ:

Buy now »

lock

Registered users may download the installer for version 5.5 of Habari Client for RabbitMQ here:

Download »

get_app

Try before you buy - get the demo applications of Habari Client for RabbitMQ:

Download »

alternate_email

Instant electronic delivery

code

Full library source code included

share

Free redistribution with your product when used in binary compiled applications

cake

Non-exclusive lifetime license and optional subscription (yearly renewal)

update

Minor and major updates included for one year after purchase

credit_card

60 day money back guarantee

About the RabbitMQ free open source message broker

RabbitMQ logo

RabbitMQ provides robust messaging for applications. It is easy to use, fit for purpose at cloud scale and supported on all major operating systems and developer platforms.

RabbitMQ is designed from the ground up to interoperate with other messaging systems: it is the leading implementation of AMQP, the open standard for business messaging, and, through plug-ins, supports STOMP, HTTP for lightweight web messaging, and other protocols.

https://www.rabbitmq.com/