You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ This library has been built from experience learned while supporting other Rabbi
31
31
+`rmqcpp` always declares topology when creating consumers & producers, as per RabbitMQ best practices.
32
32
4. ✉ Reliable Message Delivery 'on' by default
33
33
+ Publisher confirmations. This ensures clients are aware when messages are owned by RabbitMQ, and avoids messages being silently black holed.
34
-
+ Consumer acknowledgements. Switching these on manually helps avoid messages being silently dropped during restart/outages, as would be the case with 'autoack'.
34
+
+ Consumer acknowledgements. Switching these on manually helps avoid messages being silently dropped during restart/outages, as would be the case with 'autoack'.
35
35
+ Durable queues and persistent delivery mode ensure messages always persist during broker restarts and total datacenter shutdowns.
36
36
+[Mandatory flag](https://www.rabbitmq.com/amqp-0-9-1-reference.html#basic.publish.mandatory) is defaulted to 'true' for all messages to ensure none are silently dropped due to missed bindings.
37
37
+ All of the above properties are used by default. Publisher confirms and consumer acknowledgements are required.
@@ -58,7 +58,7 @@ graph TD;
58
58
rmqp-->rmqt;
59
59
```
60
60
61
-
**Library** | **Purpose** | **Examples**
61
+
**Library** | **Purpose** | **Examples**
62
62
:--- | :---- | :----
63
63
[rmqp](src/rmq/rmqp) | RabbitMQ library interface (protocol) | Interfaces used to allow testing/mocking of `rmqcpp` applications
64
64
[rmqa](src/rmq/rmqa) | RabbitMQ Library interface implementation | The main concrete objects used by applications
@@ -70,7 +70,7 @@ graph TD;
70
70
71
71
## Quick Start
72
72
The quickest way to get started is to take a look at our integration tests and sample 'hello world' program, which is possible by following the Docker [Build](#building) steps and then: from the interactive shell window running `./build/examples/helloworld/rmqhelloworld_producer`
73
-
73
+
74
74
75
75
## Usage
76
76
@@ -195,7 +195,7 @@ consumer->cancelAndDrain();
195
195
196
196
## Documentation
197
197
Doxygen generated API documentation can be found [here](https://bloomberg.github.io/rmqcpp/index.html)
198
-
198
+
199
199
## Building
200
200
201
201
### Prerequisites
@@ -206,6 +206,8 @@ Doxygen generated API documentation can be found [here](https://bloomberg.github
206
206
207
207
There are build configuration options which can be specified using the environment variable `CMAKE_PRESET` (choose from configurations in `CMakePresets.json`) - eg. `export CMAKE_PRESET=macos-arm64-vcpkg`.
208
208
209
+
`zstd` compression support is enabled by default, and requires the `zstd` library to be installed. To disable this, pass the `-DENABLE_COMPRESSION=OFF` option to cmake.
210
+
209
211
### Build Steps
210
212
Once the prerequisites are configured:
211
213
@@ -221,8 +223,8 @@ We also provide Dockerfiles for building and running this in an isolated
221
223
environment. If you don't wish to get vcpkg set up on your build machine, this can be an alternative
222
224
quick way to get started.
223
225
224
-
1. `make docker-setup` - Build required base images and setup vcpkg, prerequisite for running commands below
225
-
2. `make docker-build` - Build rmqcpp in the container using vcpkg
226
+
1. `make docker-setup` - Build required base images and setup vcpkg, prerequisite for running commands below
227
+
2. `make docker-build` - Build rmqcpp in the container using vcpkg
226
228
3. `make docker-unit` - Build rmqcpp and run unit tests in the container
227
229
4. `make docker-shell` - Get an interactive shell within the build environment container
Creating a `rmqa::VHost` instance **does not** immediately create a connection with the RabbitMQ broker. These connections are created lazily when calling `rmqa::VHost::createProducer` and `rmqa::VHost::createConsumer`.
0 commit comments