{"id":18745962,"url":"https://github.com/eclipse-uprotocol/up-cpp","last_synced_at":"2025-04-12T21:33:19.133Z","repository":{"id":166587091,"uuid":"636246142","full_name":"eclipse-uprotocol/up-cpp","owner":"eclipse-uprotocol","description":"uProtocol Language Specific Library for C++","archived":false,"fork":false,"pushed_at":"2025-03-20T22:33:31.000Z","size":897,"stargazers_count":21,"open_issues_count":55,"forks_count":28,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-20T23:28:55.059Z","etag":null,"topics":["core","cpp","uprotocol"],"latest_commit_sha":null,"homepage":null,"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/eclipse-uprotocol.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE","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}},"created_at":"2023-05-04T12:27:04.000Z","updated_at":"2025-03-20T22:33:36.000Z","dependencies_parsed_at":"2023-08-27T10:04:37.896Z","dependency_job_id":"798810ab-dff2-4a1c-b3f7-0657dbe6963e","html_url":"https://github.com/eclipse-uprotocol/up-cpp","commit_stats":null,"previous_names":["eclipse-uprotocol/uprotocol-sdk-cpp","eclipse-uprotocol/uprotocol-cpp","eclipse-uprotocol/up-cpp"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-uprotocol%2Fup-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-uprotocol%2Fup-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-uprotocol%2Fup-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eclipse-uprotocol%2Fup-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eclipse-uprotocol","download_url":"https://codeload.github.com/eclipse-uprotocol/up-cpp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248636556,"owners_count":21137481,"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":["core","cpp","uprotocol"],"created_at":"2024-11-07T16:20:13.163Z","updated_at":"2025-04-12T21:33:14.112Z","avatar_url":"https://github.com/eclipse-uprotocol.png","language":"C++","readme":"# uProtocol C++ Interface Library (up-cpp)\n\n[![CI](https://github.com/eclipse-uprotocol/up-cpp/actions/workflows/ci.yml/badge.svg)](https://github.com/eclipse-uprotocol/up-cpp/actions/workflows/ci.yml)\n\n## Welcome!\n\nThis library provides the primary interface to uProtocol for uEntity\napplications. The primary point of interaction for most applications will be the\nlayer 2 \"communications\" objects.\n\nIn addition to `up-cpp`, a uEntity will also need at least on transport\nimplementation, such as [up-transport-zenoh-cpp][zenoh-transport-repo].\n\n*_IMPORTANT NOTE:_ This project is under active development*\n\n## Getting Started\n\n### Requirements:\n- Compiler: GCC/G++ 11 or Clang 13\n- Conan : 1.59 or latest 2.x\n\n#### Conan packages\n\nUsing the recipes found in [up-conan-recipes][conan-recipe-repo], build these\nConan packages:\n\n1. [up-core-api][spec-repo]: `conan create --version 1.6.0-alpha3 --build=missing up-core-api/release`\n\n**NOTE:** all `conan` commands in this document use  Conan 2.x syntax. Please\nadjust accordingly when using Conan 1.x.\n\n## How to Use the Library\n\nTo add up-cpp to your conan build dependencies, place following in your\n[conanfile.txt][conan-txt-reference]:\n\n```\n[requires]\nup-cpp/[~1.0]\n\n[generators]\nCMakeDeps\nCMakeToolchain\n\n[layout]\ncmake_layout\n```\n\n**NOTE:** If using conan version 1.59 Ensure that the conan profile is\nconfigured to use ABI 11 (libstdc++11: New ABI) standards according to\n[the Conan documentation for managing gcc ABIs][conan-abi-docs].\n\n## Building locally\n\nThe following steps are only required for developers to locally build and test\nup-cpp, If you are making a project that uses up-cpp, follow the steps in the\n[How to Use the Library](#how-to-use-the-library) section above.\n\n### With Conan for dependencies\n\nFrom the root of this repo, run:\n\n```bash\nconan install --build=missing .\ncmake --preset conan-release\ncd build/Release\ncmake --build . -- -j\n```\n\nOnce the build completes, tests can be run with `ctest`.\n\nDebug builds can be generated by changing those steps to:\n\n```bash\nconan install --build=missing --settings=build_type=Debug .\ncmake --preset conan-debug\ncd build/Debug\ncmake --build . -- -j\n```\n\n### Generate UT Coverage\n\nTo get code coverage, perform the steps above, but replace `cmake --preset...` with\n```\ncd build/Release\ncmake ../../ -DCMAKE_TOOLCHAIN_FILE=generators/conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Coverage\n```\nOnce the tests complete, the Unit Test Coverage report can be generated from the base up-cpp folder with: ./Coverage.sh\n```\n./coverage.sh\n```\n\n### With dependencies installed as system libraries\n\n**TODO** Verify steps for pure cmake build without Conan.\n\n### Creating the Conan package\n\nSee: [up-conan-recipes][conan-recipe-repo]\n\n## Show your support\n\nGive a ⭐️ if this project helped you!\n\n[zenoh-transport-repo]: https://github.com/eclipse-uprotocol/up-transport-zenoh-cpp\n[conan-recipe-repo]: https://github.com/eclipse-uprotocol/up-conan-recipes\n[spec-repo]: https://github.com/eclipse-uprotocol/up-spec\n[conan-abi-docs]: https://docs.conan.io/en/1.60/howtos/manage_gcc_abi.html\n[conan-txt-reference]: https://docs.conan.io/2/reference/conanfile_txt.html\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-uprotocol%2Fup-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feclipse-uprotocol%2Fup-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feclipse-uprotocol%2Fup-cpp/lists"}