7 releases
0.2.0 | Feb 11, 2025 |
---|---|
0.1.8 | Feb 11, 2025 |
#1299 in Network programming
638 downloads per month
17KB
98 lines
RabbitMQ Service
================
A library to accelerate RabbitMQ deployment and management.
Features
- Connect to RabbitMQ using a specified URI.
- Declare two queues:
<queue_name>_requests
and<queue_name>_responses
. - Publish messages to the
_requests
queue. - Receive responses from the
_responses
queue. - Message serialization and deserialization with
serde
. - Automatic message acknowledgment.
Installation
To include this crate in your project, add it to your Cargo.toml
:
[dependencies]
rabbitmq_servicess = "0.1.3"
Then, run cargo build
to download and compile the crate.
Usage
Below is a basic example of how to use the RabbitMQService
in your application.
Example
use rabbitmq_servicess::RabbitMQService;
use tokio;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create a new RabbitMQ service connected to your RabbitMQ server
let service = RabbitMQService::new("amqp://localhost", "my_queue").await?;
// Send a message to the requests queue
service.send_message_request("my_queue", "Hello, RabbitMQ!".into()).await?;
// Wait for a response from the responses queue
let response = service.receive_message_response("my_queue".into()).await?;
println!("Received response: {}", response);
Ok(())
}
Dependencies
rabbit_mqr
for RabbitMQ management.serde
andserde_json
for message serialization and deserialization.uuid
for generating unique message IDs.tokio
for asynchronous runtime.
License
This project is licensed under the Apache-2.0 License.
Contributing
Contributions are welcome! Please feel free to fork the repository, make changes, and submit pull requests.
Author
- Femure maxime.femery@gmail.com
Documentation
You can find the documentation for this crate on docs.rs.
Repository
The source code for this crate is available on GitHub.
Dependencies
~8–18MB
~271K SLoC