The RabbitMQ Stream Java Client is a Java library to communicate with the RabbitMQ Stream Plugin. It allows to create and delete streams, as well as to publish to and consume from these streams. This library requires at least Java 11 but Java 21 or more is recommended. See the overview for a quick glance at the features.
Stream PerfTest is a performance testing tool based on this client library.
Please refer to the documentation to find out more.
The project is in development and stabilization phase. Features and API are subject to change, but breaking changes will be kept to a minimum.
-
For questions: RabbitMQ Users
-
For bugs and feature requests: GitHub Issues
See the RabbitMQ Java libraries support page for the support timeline of this library.
The RabbitMQ Stream Java Client is in development and stabilization phase. When the stabilization phase ends, a 1.0.0 version will be cut, and semantic versioning is likely to be enforced.
Before reaching the stable phase, the client will use a versioning scheme of [0.MINOR.PATCH]
where:
-
0
indicates the project is still in a stabilization phase. -
MINOR
is a 0-based number incrementing with each new release cycle. It generally reflects significant changes like new features and potentially some programming interfaces changes. -
PATCH
is a 0-based number incrementing with each service release, that is bux fixes.
Breaking changes between releases can happen but will be kept to a minimum.
You need JDK 11 or later installed.
To build the JAR file:
./mvnw clean package -DskipITs -DskipTests
Launch the broker:
docker run -it --rm --name rabbitmq -p 5552:5552 -p 5672:5672 \ -e RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS='-rabbitmq_stream advertised_host localhost' \ rabbitmq:4.0
Enable the stream plugin:
docker exec rabbitmq rabbitmq-plugins enable rabbitmq_stream
Launch the tests:
./mvnw test -Drabbitmqctl.bin=DOCKER:rabbitmq
The project uses the Google Java Format. Read the documentation to support the format in your favorite IDE.
Please launch the ./mvnw spotless:apply
command to format your changes before committing.
(c) 2020-2024 Broadcom. All Rights Reserved. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
Double licensed under the MPL2.0 and ASL2. See LICENSE for details.