azure-sdk-for-cpp/sdk/core/azure-core-amqp
Anton Kolesnyk 397ae78b1e
Delete cgmanifest.json when being installed via vcpkg, but also update SHAs (#6789)
* Delete cgmanifest.json when being installed via vcpkg, but also update SHAs

* Update cspell

---------

Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
2025-10-17 14:51:11 -07:00
..
inc Use TokenCredential *const* everywhere (#6453) 2025-03-12 11:57:11 -07:00
samples Merged Rust AMQP stack with main. (#6442) 2025-03-11 22:30:13 +00:00
src Fix AMQP compilation on Android (#6740) 2025-09-16 19:11:01 +00:00
test Disable azure-core-amqp.TestManagement.BasicTests on Mac (#6727) 2025-09-08 14:22:10 -07:00
vcpkg Delete cgmanifest.json when being installed via vcpkg, but also update SHAs (#6789) 2025-10-17 14:51:11 -07:00
cgmanifest.json
CHANGELOG.md Merged Rust AMQP stack with main. (#6442) 2025-03-11 22:30:13 +00:00
CMakeLists.txt Bump github.com/microsoft/vcpkg from master to 2025.08.27 (#6726) 2025-09-09 16:59:00 -07:00
cspell.json
NOTICE.txt
README.md Remove impressions pixel from Markdown files (#6435) 2025-02-26 16:38:16 +00:00
Test-Cleanup.ps1 Merged Rust AMQP stack with main. (#6442) 2025-03-11 22:30:13 +00:00
Test-Setup.ps1 Fix image demands to be inline (#6640) 2025-06-24 15:03:09 -07:00
vcpkg.json

Azure SDK AMQP Library for C++

Azure::Core::Amqp (azure-core-amqp) provides an implementation to enable developers to create Azure SDKs which consume the AMQP protocol. Note that this is NOT a general purpose AMQP library, it is intended solely for the purposes of building Azure C++ SDK clients which communicate with Azure services over AMQP.

Getting started

Include the package

The easiest way to acquire the AMQP library is leveraging vcpkg package manager. See the corresponding Azure SDK for C++ readme section.

To install Azure Core AMQP package via vcpkg:

> vcpkg install azure-core-amqp-cpp

Then, use in your CMake file:

find_package(azure-core-amqp-cpp CONFIG REQUIRED)
target_link_libraries(<your project name> PRIVATE Azure::azure-core-amqp)

Key concepts

The AMQP Protocol is a relatively complicated protocol which is used by Azure services to communicate with clients. This library provides a set of classes which can be used to build Azure SDK clients which communicate with Azure services over AMQP.

The AMQP library provides the following classes:

  • AmqpClient - The basic client used to communicate with the AMQP server.
  • MessageSender - A class which is used to send messages to an AMQP server.
  • MessageReceiver - A class which is used to receive messages from an AMQP server.

Examples

Create an AMQP Message Sender

An AMQP Message Sender is responsible for sending messages to an AMQP server over an AMQP Session.

Azure::Core::Amqp::_internal::MessageSenderOptions senderOptions;
senderOptions.Name = "sender-link";
senderOptions.MessageSource = "source";
senderOptions.SettleMode = Azure::Core::Amqp::_internal::SenderSettleMode::Unsettled;
senderOptions.MaxMessageSize = (std::numeric_limits<uint16_t>::max)();

Azure::Core::Amqp::_internal::MessageSender sender(
    session, credentials->GetEntityPath(), senderOptions, nullptr);

Once the message sender has been created, it can be used to send messages to the remote server.

Azure::Core::Amqp::Models::AmqpMessage message;
message.SetBody(Azure::Core::Amqp::Models::AmqpBinaryData{'H', 'e', 'l', 'l', 'o'});

constexpr int maxMessageSendCount = 5;

int messageSendCount = 0;
while (messageSendCount < maxMessageSendCount)
{
  auto result = sender.Send(message);
  messageSendCount += 1;
}

Next steps

You can build and run the tests locally by executing azure-core-amqp-test. Explore the test folder to see advanced usage and behavior of the public classes.

Troubleshooting

If you run into issues while using this library, please feel free to file an issue.

Reporting security issues and security bugs

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.

License

Azure SDK for C++ is licensed under the MIT license.