{"id":15710322,"url":"https://github.com/aws/aws-iot-device-sdk-cpp-v2","last_synced_at":"2025-05-16T09:04:53.017Z","repository":{"id":37057680,"uuid":"157451948","full_name":"aws/aws-iot-device-sdk-cpp-v2","owner":"aws","description":"Next generation AWS IoT Client SDK for C++ using the AWS Common Runtime","archived":false,"fork":false,"pushed_at":"2025-05-15T03:14:32.000Z","size":8091,"stargazers_count":190,"open_issues_count":11,"forks_count":110,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-15T04:23:57.617Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aws.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-11-13T21:51:08.000Z","updated_at":"2025-05-09T20:37:22.000Z","dependencies_parsed_at":"2023-11-25T01:29:18.416Z","dependency_job_id":"9409365b-15ed-45e0-84b8-28a9f7021bd4","html_url":"https://github.com/aws/aws-iot-device-sdk-cpp-v2","commit_stats":{"total_commits":365,"total_committers":39,"mean_commits":9.35897435897436,"dds":0.8164383561643835,"last_synced_commit":"6bf060ae7d96ca4be363630840554bf2ddd99216"},"previous_names":[],"tags_count":123,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-iot-device-sdk-cpp-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-iot-device-sdk-cpp-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-iot-device-sdk-cpp-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aws%2Faws-iot-device-sdk-cpp-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aws","download_url":"https://codeload.github.com/aws/aws-iot-device-sdk-cpp-v2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501557,"owners_count":22081528,"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":["hacktoberfest"],"created_at":"2024-10-03T21:06:10.106Z","updated_at":"2025-05-16T09:04:48.009Z","avatar_url":"https://github.com/aws.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AWS IoT Device SDK for C++ v2\n\nThis document provides information about the AWS IoT device SDK for C++ V2. This SDK is built on the [AWS Common Runtime](https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html)\n\n__Jump To:__\n\n* [Supported Architectures](#supported-architectures)\n* [Installation](#installation)\n* [Samples](./samples)\n* [Mac-Only TLS Behavior](#mac-only-tls-behavior)\n* [Getting Help](#getting-help)\n* [FAQ](./documents/FAQ.md)\n* [API Docs](https://aws.github.io/aws-iot-device-sdk-cpp-v2/)\n* [MQTT5 User Guide](./documents/MQTT5_Userguide.md)\n* [Migration Guide from the AWS IoT SDK for C++ v1](./documents/MIGRATION_GUIDE.md)\n\n## Supported Architectures\n\n### Linux\n- manylinux2014-x64\n- manylinux2014-x86\n- al2-x64\n- alpine-3.16-x64\n- alpine-3.16-x86\n- alpine-3.16-armv6\n- alpine-3.16-armv7\n- alpine-3.16-arm64\n- raspberry pi bullseye\n- ARM64 /aarch64\n- ArmV7\n- x86\\_64\n- x86\n### Windows\n- Win32\n- x64\n- ARM64\n### Mac\n- Apple Silicone (M1 and higher)\n- Apple Intel Chips (x86\\_64)\n\n## Installation\n\n### Minimum Requirements\n* C++ 11 or higher\n    * Clang 3.9+ or GCC 4.8+ or MSVC 2015+\n* CMake 3.9+\n\n[Step-by-step instructions](./documents/PREREQUISITES.md)\n\n\n### Build from source\n\n``` sh\n# Create a workspace directory to hold all the SDK files\nmkdir sdk-workspace\ncd sdk-workspace\n# Clone the repository\ngit clone --recursive https://github.com/aws/aws-iot-device-sdk-cpp-v2.git\n# Make a build directory for the SDK. Can use any name.\nmkdir aws-iot-device-sdk-cpp-v2-build\ncd aws-iot-device-sdk-cpp-v2-build\n# continue with the build steps below based on OS\n```\n\n#### MacOS and Linux\n```sh\n# Generate the SDK build files.\n# -DCMAKE_INSTALL_PREFIX needs to be the absolute/full path to the directory.\n#     (Example: \"/Users/example/sdk-workspace/).\n# -DCMAKE_BUILD_TYPE can be \"Release\", \"RelWithDebInfo\", or \"Debug\"\ncmake -DCMAKE_INSTALL_PREFIX=\"\u003cabsolute path to sdk-workspace\u003e\" -DCMAKE_BUILD_TYPE=\"Debug\" ../aws-iot-device-sdk-cpp-v2\n# Build and install the library. Once installed, you can develop with the SDK and run the samples\ncmake --build . --target install\n```\n\n#### Windows\n``` sh\n# Generate the SDK build files.\n# -DCMAKE_INSTALL_PREFIX needs to be the absolute/full path to the directory.\n#     (Example: \"C:/users/example/sdk-workspace/).\ncmake -DCMAKE_INSTALL_PREFIX=\"\u003cabsolute path sdk-workspace dir\u003e\" ../aws-iot-device-sdk-cpp-v2\n# Build and install the library. Once installed, you can develop with the SDK and run the samples\n# -config can be \"Release\", \"RelWithDebInfo\", or \"Debug\"\ncmake --build . --target install --config \"Debug\"\n```\n\n**Windows specific notes**:\n* Due to maximum path length limitations in the Windows API, we recommend cloning to a short path like: `C:\\dev\\iotsdk`\n* `--config` is only REQUIRED for multi-configuration build tools (VisualStudio/MsBuild being the most common).\n\n**Linux specific notes**:\n\nIf your application uses OpenSSL, configure with `-DUSE_OPENSSL=ON`.\n\nThe IoT SDK does not use OpenSSL for TLS.\nOn Apple and Windows, the OS's default TLS library is used.\nOn Linux, [s2n-tls](https://github.com/aws/s2n-tls) is used.\nBut s2n-tls uses libcrypto, the cryptography math library bundled with OpenSSL.\nTo simplify the build process, the source code for s2n-tls and libcrypto are\nincluded as git submodules and built along with the IoT SDK.\nBut if your application is also loading the system installation of OpenSSL\n(i.e. your application uses libcurl which uses libssl which uses libcrypto)\nthere may be crashes as the application tries to use two different versions of libcrypto at once.\n\nSetting `-DUSE_OPENSSL=ON` will cause the IoT SDK to link against your system's\nexisting `libcrypto`, instead of building its own copy.\n\n## Samples\n\n[Samples README](./samples)\n\n### Mac-Only TLS Behavior\n\nPlease note that on Mac, once a private key is used with a certificate, that certificate-key pair is imported into the Mac Keychain.  All subsequent uses of that certificate will use the stored private key and ignore anything passed in programmatically.  Beginning in v1.7.3, when a stored private key from the Keychain is used, the following will be logged at the \"info\" log level:\n\n```\nstatic: certificate has an existing certificate-key pair that was previously imported into the Keychain.  Using key from Keychain instead of the one provided.\n```\n\n## Getting Help\n\nThe best way to interact with our team is through GitHub. You can open a [discussion](https://github.com/aws/aws-iot-device-sdk-cpp-v2/discussions) for guidance questions or an [issue](https://github.com/aws/aws-iot-device-sdk-cpp-v2/issues/new/choose) for bug reports, or feature requests. You may also find help on community resources such as [StackOverFlow](https://stackoverflow.com/questions/tagged/aws-iot) with the tag [#aws-iot](https://stackoverflow.com/questions/tagged/aws-iot) or if you have a support plan with [AWS Support](https://aws.amazon.com/premiumsupport/), you can also create a new support case.\n\nPlease make sure to check out our resources too before opening an issue:\n\n* [FAQ](./documents/FAQ.md)\n* [API Docs](https://aws.github.io/aws-iot-device-sdk-cpp-v2/)\n* [IoT Guide](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) ([source](https://github.com/awsdocs/aws-iot-docs))\n* Check for similar [Issues](https://github.com/aws/aws-iot-device-sdk-cpp-v2/issues)\n* [AWS IoT Core Documentation](https://docs.aws.amazon.com/iot/)\n* [Dev Blog](https://aws.amazon.com/blogs/?awsf.blog-master-iot=category-internet-of-things%23amazon-freertos%7Ccategory-internet-of-things%23aws-greengrass%7Ccategory-internet-of-things%23aws-iot-analytics%7Ccategory-internet-of-things%23aws-iot-button%7Ccategory-internet-of-things%23aws-iot-device-defender%7Ccategory-internet-of-things%23aws-iot-device-management%7Ccategory-internet-of-things%23aws-iot-platform)\n* Integration with AWS IoT Services such as\n[Device Shadow](https://docs.aws.amazon.com/iot/latest/developerguide/iot-device-shadows.html)\nand [Jobs](https://docs.aws.amazon.com/iot/latest/developerguide/iot-jobs.html)\nis provided by code that been generated from a model of the service.\n* [Secure Tunnel User Guide](./documents/Secure_Tunnel_Userguide.md)\n* [Contributions Guidelines](./documents/CONTRIBUTING.md)\n\n## License\n\nThis library is licensed under the [Apache 2.0 License](./documents/LICENSE).\n\nLatest released version: v1.35.1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws%2Faws-iot-device-sdk-cpp-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faws%2Faws-iot-device-sdk-cpp-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faws%2Faws-iot-device-sdk-cpp-v2/lists"}