{"id":15290986,"url":"https://github.com/azure/azure-c-shared-utility","last_synced_at":"2025-05-15T17:06:22.567Z","repository":{"id":40362749,"uuid":"44986892","full_name":"Azure/azure-c-shared-utility","owner":"Azure","description":"Azure C SDKs common code","archived":false,"fork":false,"pushed_at":"2025-01-28T20:29:54.000Z","size":11413,"stargazers_count":111,"open_issues_count":9,"forks_count":203,"subscribers_count":59,"default_branch":"master","last_synced_at":"2025-05-10T00:11:49.374Z","etag":null,"topics":["azure","c","cmake","general-purpose","library"],"latest_commit_sha":null,"homepage":"","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-10-26T17:53:51.000Z","updated_at":"2025-02-14T08:26:53.000Z","dependencies_parsed_at":"2023-11-27T23:23:15.640Z","dependency_job_id":"29232e76-e339-4851-b843-7dc983387dd3","html_url":"https://github.com/Azure/azure-c-shared-utility","commit_stats":{"total_commits":1937,"total_committers":127,"mean_commits":"15.251968503937007","dds":0.7124419204956118,"last_synced_commit":"887a223700abce3eb5173e85d6fe6bf5d382dbd9"},"previous_names":[],"tags_count":69,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-c-shared-utility","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-c-shared-utility/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-c-shared-utility/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azure%2Fazure-c-shared-utility/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Azure","download_url":"https://codeload.github.com/Azure/azure-c-shared-utility/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254384988,"owners_count":22062422,"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","c","cmake","general-purpose","library"],"created_at":"2024-09-30T16:10:24.942Z","updated_at":"2025-05-15T17:06:17.560Z","avatar_url":"https://github.com/Azure.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"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# Azure C Shared Utility\n\nazure-c-shared-utility is a C library providing common functionality for basic tasks (like string, list manipulation, IO, etc.).\n\n## Dependencies\n\nazure-c-shared-utility provides 3 tlsio implementations:\n- tlsio_schannel - runs only on Windows\n- tlsio_openssl - depends on OpenSSL being installed\n- tlsio_wolfssl - depends on WolfSSL being installed \n\nazure-c-shared-utility depends on curl for HTTPAPI for Linux.\n\nazure-c-shared-utility uses cmake for configuring build files.\n\n## Setup\n\n1. Clone **azure-c-shared-utility** using the recursive option:\n\n```\ngit clone --recursive https://github.com/Azure/azure-c-shared-utility.git\n```\n\n2. Create a folder called *cmake* under *azure-c-shared-utility*\n\n3. Switch to the *cmake* folder and run\n```\ncmake ..\n```\n\n4. Build\n\n```\ncmake --build .\n```\n\n### Installation and Use\nOptionally, you may choose to install azure-c-shared-utility on your machine:\n\n1. Switch to the *cmake* folder and run\n    ```\n    cmake -Duse_installed_dependencies=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(azure_c_shared_utility REQUIRED CONFIG)\n    target_link_library(yourlib aziotsharedutil)\n    ```\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 tests use:\n\n```\ncmake .. -Drun_unittests:bool=ON\n```\n\n## Configuration options\n\nIn order to turn on/off the tlsio implementations use the following CMAKE options:\n\n* `-Duse_schannel:bool={ON/OFF}` - turns on/off the SChannel support\n* `-Duse_openssl:bool={ON/OFF}` - turns on/off the OpenSSL support. If this option is used, an environment variable named OpenSSLDir should be set to point to the OpenSSL folder.\n* `-Duse_wolfssl:bool={ON/OFF}` - turns on/off the WolfSSL support. If this option is used, an environment variable named WolfSSLDir should be set to point to the WolfSSL folder.\n* `-Duse_http:bool={ON/OFF}` - turns on/off the HTTP API support. \n* `-Duse_installed_dependencies:bool={ON/OFF}` - turns on/off building azure-c-shared-utility using installed dependencies. This package may only be installed if this flag is ON.\n* `-Drun_unittests:bool={ON/OFF}` - enables building of unit tests. Default is OFF.\n* `-Duse_default_uuid:bool={ON/OFF}` - use the out-of-the-box UUID implementation that comes with the SDK rather than platform specific implementations. Default is OFF.\n* `-Dno_openssl_engine:bool={ON/OFF}` - disables the use of ENGINEs in OpenSSL. Default is OFF.\n\n## Porting to new devices\n\nInstructions for porting the Azure IoT C SDK to new devices are located\n[here](https://github.com/Azure/azure-c-shared-utility/blob/master/devdoc/porting_guide.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure%2Fazure-c-shared-utility","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazure%2Fazure-c-shared-utility","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazure%2Fazure-c-shared-utility/lists"}