{"id":33182934,"url":"https://github.com/azure/azure-uamqp-c","last_synced_at":"2025-12-29T23:46:53.896Z","repository":{"id":2976964,"uuid":"46543317","full_name":"Azure/azure-uamqp-c","owner":"Azure","description":"AMQP library for C","archived":false,"fork":false,"pushed_at":"2025-01-28T21:53:59.000Z","size":4443,"stargazers_count":60,"open_issues_count":45,"forks_count":65,"subscribers_count":55,"default_branch":"master","last_synced_at":"2025-10-29T00:45:19.666Z","etag":null,"topics":["amqp","amqp-client","amqp-messages","amqp-protocol","amqp10","amqplib","amqps","azure-uamqp","c"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Azure.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.MD","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-11-20T06:13:31.000Z","updated_at":"2025-07-19T00:31:20.000Z","dependencies_parsed_at":"2024-02-12T23:27:59.960Z","dependency_job_id":"f38f002c-552b-4867-99d8-79624e10ef62","html_url":"https://github.com/Azure/azure-uamqp-c","commit_stats":{"total_commits":1045,"total_committers":79,"mean_commits":"13.227848101265822","dds":0.7607655502392344,"last_synced_commit":"fce194c98326f08f9de9b26ad5f35712a91c46c0"},"previous_names":[],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/Azure/azure-uamqp-c","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-uamqp-c","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-uamqp-c/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-uamqp-c/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-uamqp-c/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Azure","download_url":"https://codeload.github.com/Azure/azure-uamqp-c/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-uamqp-c/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285519539,"owners_count":27185526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-20T02:00:05.334Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amqp","amqp-client","amqp-messages","amqp-protocol","amqp10","amqplib","amqps","azure-uamqp","c"],"created_at":"2025-11-16T04:00:32.462Z","updated_at":"2025-11-20T22:02:08.470Z","avatar_url":"https://github.com/Azure.png","language":"C","funding_links":[],"categories":["Table of Contents"],"sub_categories":["Libraries and Clients"],"readme":"This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n# uAMQP\n\n`uAMQP` is a C library for AMQP 1.0 communication to Azure Cloud Services.\n\nThe goals are:\n\n- Compliance with the standard\n- Optimizing for low RAM footprint\n- Be as portable as possible\n\nIt is currently a client side implementation only.\n\n## Dependencies\n\n`uAMQP` uses `azure-c-shared-utility`, which is a C library providing common functionality for basic tasks (string manipulation, list manipulation, IO, etc.).\n`azure-c-shared-utility` is available here: https://github.com/Azure/azure-c-shared-utility and it is used as a submodule.\n\nPlease note that azure-c-shared-utility in turn depends on several libraries (libssl-dev, libuuid-dev, libcurl-dev).\n\nOn an Ubuntu distro it is recommended to install all needed packages by running:\n\n```\n  sudo apt-get update\n  sudo apt-get install -y git cmake build-essential curl libcurl4-openssl-dev libssl-dev uuid-dev\n```\n\nazure-c-shared-utility provides several tlsio implementations, some being:\n- tlsio_schannel - runs only on Windows\n- tlsio_openssl - depends on OpenSSL being installed\n- tlsio_wolfssl - depends on WolfSSL being installed\n- tlsio_mbedtls\n- ...\n\nFor more information about configuring `azure-c-shared-utility` see https://github.com/Azure/azure-c-shared-utility.\n\n`uAMQP` uses cmake for configuring build files.\n\nFor WebSockets support `uAMQP` depends on the support provided by azure-c-shared-utility.\n\n## Setup\n\n### Build\n\n- Clone `azure-uamqp-c` by:\n\n```\ngit clone --recursive https://github.com/Azure/azure-uamqp-c.git\n```\n\n- Create a folder named `cmake` under `azure-uamqp-c`\n\n- Switch to the `cmake` folder and run\n\n```\ncmake ..\n```\n\n- Build\n\n```\ncmake --build .\n```\n\n### Installation and Use\n\nOptionally, you may choose to install azure-uamqp-c on your machine:\n\n1. Switch to the `cmake` folder and run\n    ```\n    cmake -Duse_installed=ON ../\n    ```\n    ```\n    cmake --build . --target install\n    ```\n    \n    or install using the follow commands for each platform:\n\n    On Linux:\n    ```\n    sudo make install\n    ```\n\n    On Windows:\n    ```\n    msbuild /m INSTALL.vcxproj\n    ```\n\n2. Use it in your project (if installed)\n    ```\n    find_package(uamqp REQUIRED CONFIG)\n    target_link_library(yourlib uamqp)\n    ```\n\n_This requires that azure-c-shared-utility is installed (through CMake) on your machine._\n\n_If running tests, this requires that umock-c, azure-ctest, and azure-c-testrunnerswitcher are installed (through CMake) on your machine._\n\n### Building the tests\n\nIn order to build the unit tests use:\n\n```\ncmake .. -Drun_unittests:bool=ON\n```\n\nIn order to build the end to end tests use:\n\n```\ncmake .. -Drun_e2e_tests:bool=ON\n```\n\nPlease note that some end to end tests (talking to Event Hubs or IoT Hubs) require setup of environment variables so that the tests have the information about the endpoints that they need to connect to.\n\n## Switching branches\n\nAfter any switch of branches (git checkout for example), one should also update the submodule references by:\n\n```\ngit submodule update --init --recursive\n```\n\n## Samples\n\nSamples are available in the azure-uamqp-c/samples folder:\n\n- Send messages to an Event Hub\n- Receive messages from an Event Hub\n- Send messages to an IoT Hub using CBS\n- Send messages to an IoT Hub using AMQP over WebSockets\n- Simple client/server sample using raw TCP\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure%2Fazure-uamqp-c","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazure%2Fazure-uamqp-c","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure%2Fazure-uamqp-c/lists"}