This is a Rust client for the RabbitMQ HTTP API.
This is not an AMQP 0-9-1 client (see amqprs), an AMQP 1.0 client (see fe2o3-amqp) or RabbitMQ Stream protocol client library.
This library is relatively young, breaking API changes are possible.
rabbitmq_http_client = { git = "https://github.com/michaelklishin/rabbitmq-http-api-rs", features = ["core", "blocking"] }
rabbitmq_http_client = { git = "https://github.com/michaelklishin/rabbitmq-http-api-rs", features = ["core", "async"] }
rabbitmq_http_client = { git = "https://github.com/michaelklishin/rabbitmq-http-api-rs", features = ["core", "blocking", "tabled"] }
rabbitmq_http_client = { git = "https://github.com/michaelklishin/rabbitmq-http-api-rs", features = ["core", "async", "tabled"] }
This library offers two client implementations: a blocking one and an async one,
in rabbitmq_http_client::blocking_api
and rabbitmq_http_client::api
, respectively.
Both API versions and tabled
support are optional features.
Documentation for async API follows that of the blocking API.
The examples below do not cover the entire API. Most ``
use rabbitmq_http_client::blocking_api::ClientBuilder;
// a type alias for convenience
type APIClient<'a> = Client<&'a str, &'a str, &'a str>;
let endpoint = "http://localhost:15672/api";
let username = "username";
let password = "password";
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
// list cluster nodes
let _ = rc.list_nodes();
// list user connections
let _ = rc.list_connections();
// fetch information and metrics of a specific queue
let _ = rc.get_queue_info("/", "qq.1");
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
let _ = rc.list_nodes();
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
let _ = rc.list_connections();
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
// fetch information and metrics of a specific queue or stream
let _ = rc.get_queue_info("/", "qq.1");
use rabbitmq_http_client::api::ClientBuilder;
// a type alias for convenience
type APIClient<'a> = Client<&'a str, &'a str, &'a str>;
let endpoint = "http://localhost:15672/api";
let username = "username";
let password = "password";
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
rc.list_nodes().await;
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
rc.list_connections().await;
let rc = ClientBuilder::new().with_endpoint(&endpoint).with_basic_auth_credentials(&username, &password).build();
rc.get_queue_info("/", "qq.1").await;
This crate, rabbitmq-http-api-client-rs, is dual-licensed under the Apache Software License 2.0 and the MIT license.