{"id":21327877,"url":"https://github.com/SiddiqSoft/AzureCppUtils","last_synced_at":"2025-07-12T07:31:42.091Z","repository":{"id":47315381,"uuid":"398170538","full_name":"SiddiqSoft/AzureCppUtils","owner":"SiddiqSoft","description":"Azure helper functions for modern C++ (Linux and Windows)","archived":false,"fork":false,"pushed_at":"2025-04-04T06:52:34.000Z","size":632,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-01T21:49:07.914Z","etag":null,"topics":["azure","azure-cosmos-db","azure-event-grid","azure-service-bus","azure-storage","base64","cosmos","cpp20","darwin","hmac-sha256","linux","macos","md5","openssl","rest-api","sas-token","url-encoder"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SiddiqSoft.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":"2021-08-20T05:55:22.000Z","updated_at":"2025-04-04T06:52:37.000Z","dependencies_parsed_at":"2024-10-26T09:25:19.067Z","dependency_job_id":"1f59ebc8-e68b-4497-9573-42001f4d1336","html_url":"https://github.com/SiddiqSoft/AzureCppUtils","commit_stats":null,"previous_names":["siddiqsoft/azurecpputils","siddiqsoft/azure-cpp-utils"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/SiddiqSoft/AzureCppUtils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiddiqSoft%2FAzureCppUtils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiddiqSoft%2FAzureCppUtils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiddiqSoft%2FAzureCppUtils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiddiqSoft%2FAzureCppUtils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SiddiqSoft","download_url":"https://codeload.github.com/SiddiqSoft/AzureCppUtils/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SiddiqSoft%2FAzureCppUtils/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264958135,"owners_count":23689006,"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","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":["azure","azure-cosmos-db","azure-event-grid","azure-service-bus","azure-storage","base64","cosmos","cpp20","darwin","hmac-sha256","linux","macos","md5","openssl","rest-api","sas-token","url-encoder"],"created_at":"2024-11-21T21:20:18.892Z","updated_at":"2025-07-12T07:31:42.086Z","avatar_url":"https://github.com/SiddiqSoft.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Azure C++ Utils : Azure REST API Helpers for Modern C++\n-------------------------------------------\n\u003c!-- badges --\u003e\n[![Build Status](https://dev.azure.com/siddiqsoft/siddiqsoft/_apis/build/status/SiddiqSoft.AzureCppUtils?branchName=main)](https://dev.azure.com/siddiqsoft/siddiqsoft/_build/latest?definitionId=16\u0026branchName=main)\n![](https://img.shields.io/nuget/v/SiddiqSoft.AzureCppUtils)\n![](https://img.shields.io/github/v/tag/SiddiqSoft/AzureCppUtils)\n![](https://img.shields.io/azure-devops/tests/siddiqsoft/siddiqsoft/16)\n![](https://img.shields.io/azure-devops/coverage/siddiqsoft/siddiqsoft/16)\n\u003c!-- end badges --\u003e\n\n# Objective\n\n- Collect useful helpers for Azure REST API in a single location.\n- Requires C++20\n  - Clang 18+ or GCC 14+ or MSVC 2019+\n- Header-only\n  - Use the nuget package or CMakeLists to import into your project.\n- Use Win32 functions on Windows\n- OpenSSL v3.x required for Linux and MacOS\n\n\n# Features \n\u003e Not every facility of OpenSSL or Crypto lib is provided here. Our focus is to curate code that is of most use when using the Azure ServiceBus, Cosmos, Events REST API.\n\u003e Moreover, the API focusses on the `std::string` and while we've attempted to provide for an API that can be used with `std::wstring` the later is utf-8 conversion from `std::string`.\n\n- DateUtils (`date-utils.hpp`)\n  - RFC7231 and RFC1123\n  - ISO8601\n- Bas64Utils (`base64-utils.hpp`)\n  - encode, decode\n- EncryptionUtils (`encryption-utils.hpp`)\n  - MD5, HMAC, JWTSHA256, SASToken, CosmosToken  \n\n## Usage\n- Use the nuget [SiddiqSoft.AzureCppUtils](https://www.nuget.org/packages/SiddiqSoft.AzureCppUtils/)\n- Use the CPM in your CMakeLists file.\n\n```cmake\n..\n.. # import the CPM.cmake module and activate..\n..\nCPMAddModule(\"gh:siddiqsoft/AzureCppUtils#3.0.0\")\n..\n..\ntarget_link_libraries(your-project PRIVATE AzureCppUtils::AzureCppUtils)\n```\n\n```cpp\n// Get a SAS signature for ServiceBus API\nstd::string keyname {\"RootManageSharedAccessKey\"};\nstd::string key {\"myPrimaryKey\"};\nstd::string url {\"myNamespace.servicebus.windows.net/myEventHub\"};\n// In this test, we're providing the epoch as the expiry string: 1629608276.\n// corresponds to Sunday, August 22, 2021 4:57:56 AM UTC\nauto sas = EncryptionUtils::SASToken\u003cchar\u003e(key, url, keyname, \"1629608276\");\n// Alternatively, you can specify minutes, hours from \"now\"\nauto sas = EncryptionUtils::SASToken\u003cchar\u003e(key, url, keyname, std::chrono::minutes(60));\n```\n\n\u003cp align=\"right\"\u003e\n\u0026copy; 2021 Siddiq Software. All rights reserved.\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSiddiqSoft%2FAzureCppUtils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSiddiqSoft%2FAzureCppUtils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSiddiqSoft%2FAzureCppUtils/lists"}