Skip to content

Releases: michaelklishin/rabbitmq-http-api-rs

v0.56.0

21 Sep 08:58
12d694a

Choose a tag to compare

v0.56.0 (Sep 21, 2025)

Module Organization

  • crate::api was split into multiple smaller modules, crate::api::*. Re-exports are provided for backwards compatibility.
  • Similarly, crate::blocking_api was split into multiple smaller modules, crate::blocking_api::*, with re-exports in place.
  • Similarly, crate::requests was split into multiple smaller modules, crate::requests::*.
  • crate::requests was split into multiple smaller modules, crate::requests::*.
  • Similarly, crate::responses was split into multiple smaller modules, crate::responses::*, with re-exports in place.

v0.55.0

20 Sep 07:22
b1029b9

Choose a tag to compare

v0.55.0 (Sep 20, 2025)

Enhancements

  • Optimized uris::UriBuilder for updates of multiple query parameters

Bug Fixes

  • Fix several uris::UriBuilder bugs around query parameter updates

v0.54.0

19 Sep 13:11
466e72a

Choose a tag to compare

v0.54.0 (Sep 19, 2025)

Enhancements

  • FederationUpstream and ``FederationUpstreamParams` no longer have a "fidelity gap," a difference between fields
    that had made it impossible to convert the former into the latter
  • FederationUpstream now includes several missing (rarely used) fields such as bind_using_nowait, channel_use_mode`

Breaking Changes

  • FederationUpstream#prefetch_count and FederationUpstream#reconnect_delay were bumped to u32

v0.53.0

18 Sep 23:43
d3d1640

Choose a tag to compare

v0.53.0 (Sep 18, 2025)

Enhancements

  • uris::UriBuilder is a convenient way of modifying URIs used by federation upstreams and shovels.
    Its replace and merge methods are now much more efficient
    as they no longer rebuild the URI query string multiple times.

    use rabbitmq_http_client::uris::UriBuilder;
    use rabbitmq_http_client::commons::TlsPeerVerificationMode;
    
    let uri = UriBuilder::new("amqps://user:pass@localhost:5671/vhost")
        .unwrap()
        .with_tls_peer_verification(TlsPeerVerificationMode::Enabled)
        .with_ca_cert_file("/path/to/ca_bundle.pem")
        .build()
        .unwrap();
  • uris::TlsClientSettings makes it possible to group TLS settings and apply them
    to a uris::UriBuilder in one go.

    use rabbitmq_http_client::uris::{TlsClientSettings, UriBuilder};
    use rabbitmq_http_client::commons::TlsPeerVerificationMode;
    
    let settings = TlsClientSettings::new()
         .peer_verification(TlsPeerVerificationMode::Enabled)
         .ca_cert_file("/path/to/ca_bundle.pem");
    
    let uri = UriBuilder::new("amqps://user:pass@localhost:5671/vhost?verify=verify_none")
        .unwrap()
        .replace(settings)
        .build()
        .unwrap();
  • commons::TlsPeerVerificationMode is a new enum representing TLS peer verification modes

  • commons::TLS_PEER_VERIFICATION_KEY is a new constant for the verify key used by federation
    and shovel URIs, and more

v0.52.0

18 Sep 04:12
002ab40

Choose a tag to compare

v0.52.0 (Sep 17, 2025)

Enhancements

  • VirtualHostDefinitionSetTransformer trait and VirtualHostTransformationChain for transforming virtual host-specific definition sets
  • Virtual host equivalents of cluster-wide transformers: PrepareForQuorumQueueMigrationVhost, StripCmqKeysFromVhostPolicies, DropEmptyVhostPolicies
  • PrepareForQuorumQueueMigration and PrepareForQuorumQueueMigrationVhost transformers now also strip CMQ-related x-arguments
    (such as x-ha-mode) from queues definitions, as they won't pass validation on RabbitMQ 4.x

v0.51.0

16 Sep 22:59
7980b85

Choose a tag to compare

v0.51.0 (Sep 16, 2025)

Enhancements

  • responses::TagList, responses::PluginList, responses::XArguments, responses::NodeList, responses::MessageList,responses::FeatureFlagList,
    responses::DeprecatedFeatureList now all implement Deref and DerefMut
  • responses::Channel#state now uses an enum, responses::ChannelState, instead of a string.
  • Client#enable_vhost_deletion_protection protects a virtual host from deletion (using the POST /api/vhosts/{vhost}/deletion/protection endpoint).
  • Client#disable_vhost_deletion_protection lifts deletion protection (using the DELETE /api/vhosts/{vhost}/deletion/protection endpoint).
  • Client#auth_attempts_statistics is a new function providing support for the GET /api/auth/attempts/{node} endpoint.
  • Client#list_topic_permissions is a new function that provides support for the GET /api/topic-permissions endpoint.
  • Client#list_topic_permissions_in is a new function that provides support for the GET /api/vhosts/{vhost}/topic-permissions endpoint.
  • Client#get_topic_permissions_of is a new function that provides support for the GET /api/topic-permissions/{vhost}/{user} endpoint.
  • Client#list_channels_on is a new function that provides support for the GET /api/connections/{connection}/channels endpoint.
  • Client#get_channel_info returns information about a specific channel.
  • Client#current_user is a new function providing support for the GET /api/whoami endpoint.

Bug Fixes

  • Client#delete_binding could panic if the optional x-arguments value was passed in as None
  • api::Client#enable_schema_definition_sync_on_node was unintentionally named enable_schema_definition_sync_one_node

v0.50.0

13 Sep 23:50
9d393c1

Choose a tag to compare

v0.50.0 (Sep 13, 2025)

Breaking Changes

  • blocking_api::Client#enable_schema_definition_sync, blocking_api::Client#disable_schema_definition_sync were
    removed in favor of blocking_api::Client#enable_schema_definition_sync_on_node and blocking_api::Client#disable_schema_definition_sync_on_node
    that accept an Option<&str> for name, like in api::Client. None means "on all cluster nodes".

Enhancements

  • Adopted a few type aliases: common::Username, common::VirtualHostName, common::PermissionPattern, common::ChannelId.
  • responses::TagList, responses::PluginList, responses::NodeList, responses::FeatureFlagList, responses::DeprecatedFeatureList
    now implement contains.

v0.49.0

07 Sep 08:10
0e08be9

Choose a tag to compare

v0.49.0 (Sep 07, 2025)

Enhancements

  • responses::TagList, responses::PluginList, responses::FeatureFlagList, responses::DeprecatedFeatureList,
    responses::MessageList now all have len and is_empty methods.
  • responses::TagList, responses::PluginList, responses::NodeList, responses::FeatureFlagList, responses::DeprecatedFeatureList,
    responses::MessageList now all implement IntoIterator.

v0.48.0

07 Sep 06:24
6b93b2d

Choose a tag to compare

v0.48.0 (Sep 07, 2025)

  • responses::NodeList#len is now properly accompanied by responses::NodeList#is_empty.

v0.47.0

07 Sep 06:24
c8e1616

Choose a tag to compare

v0.47.0 (Sep 07, 2025)

Enhancements

  • responses::ClusterIdentity now implements ToString, From<String>, and From<&str>.
  • responses::NodeList#len is a new function that returns the length of the list.