{"id":19330529,"url":"https://github.com/teiacare/teiacareinferenceclient","last_synced_at":"2025-09-25T22:54:15.043Z","repository":{"id":245341242,"uuid":"817169557","full_name":"TeiaCare/TeiaCareInferenceClient","owner":"TeiaCare","description":"TeiaCareInferenceClient is a C++ inference client library that implements KServe protocol.","archived":false,"fork":false,"pushed_at":"2024-10-02T10:10:33.000Z","size":464,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"develop","last_synced_at":"2025-03-26T12:46:39.561Z","etag":null,"topics":["cpp","cross-platform","deep-learning","grpc","inference","kserve","machine-learning"],"latest_commit_sha":null,"homepage":"https://teiacare.github.io/TeiaCareInferenceClient/","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/TeiaCare.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","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":"2024-06-19T06:55:43.000Z","updated_at":"2024-10-02T19:14:35.000Z","dependencies_parsed_at":"2024-06-21T15:02:22.583Z","dependency_job_id":"00b5fc6e-d289-41dd-984e-396774ce79a8","html_url":"https://github.com/TeiaCare/TeiaCareInferenceClient","commit_stats":null,"previous_names":["teiacare/teiacareinferenceclient"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeiaCare%2FTeiaCareInferenceClient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeiaCare%2FTeiaCareInferenceClient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeiaCare%2FTeiaCareInferenceClient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TeiaCare%2FTeiaCareInferenceClient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TeiaCare","download_url":"https://codeload.github.com/TeiaCare/TeiaCareInferenceClient/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248611500,"owners_count":21133117,"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":["cpp","cross-platform","deep-learning","grpc","inference","kserve","machine-learning"],"created_at":"2024-11-10T02:36:59.215Z","updated_at":"2025-09-25T22:54:15.035Z","avatar_url":"https://github.com/TeiaCare.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TeiaCareInferenceClient\n\nWelcome to TeiaCareInferenceClient!\n\n*TeiaCareInferenceClient* is a C++ inference client library that implements KServe protocol.\n\n[![Docs](https://img.shields.io/badge/Docs-TeiaCareInferenceClient-white.svg)](https://teiacare.github.io/TeiaCareInferenceClient/md_README.html)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/dcb5cf32538040209d16b856bd432a21)](https://app.codacy.com/gh/TeiaCare/TeiaCareInferenceClient/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n[![Codacy Badge](https://app.codacy.com/project/badge/Coverage/dcb5cf32538040209d16b856bd432a21)](https://app.codacy.com/gh/TeiaCare/TeiaCareInferenceClient/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_coverage)\n\n![TeiaCareInferenceClient](https://socialify.git.ci/TeiaCare/TeiaCareinferenceclient/image?description=1\u0026font=Raleway\u0026name=1\u0026pattern=Solid\u0026theme=Auto)\n\n## Getting Started\n\nThis project uses git submodules so it is required to clone it using the *--recursive* flag in order to retrive the required submodules.\n\n```bash\ngit clone https://github.com/TeiaCare/TeiaCareInferenceClient.git --recursive\n```\n\n### Create Development Environment\nIn order to setup a development environment it is sufficient to run the script *scripts/env/setup.\u003cbat|sh\u003e* depending on your operating system.\n\n```bash\n# Linux/MacOS\nscripts/env/setup.sh\n\n# Windows\nscripts\\env\\setup.bat\n```\n\n### Start Development Environment\nIn order to start the development environment it is sufficient to activate the Python Virtual Environment just created the step above.\n\n```bash\n# Linux/MacOS\nsource .venv/bin/activate\n\n# Windows\n.venv\\Scripts\\activate.bat\n```\n\n### Setup Build Environment (Windows Only)\nWhen building from command line on Windows it is necessary to activate the Visual Studio Developer Command Prompt.\n\nDepending on the version of Visual Studio compiler and on its install location it is required to run *vcvars64.bat* script the set the development environment properly.\n\n*Note*: using Visual Studio IDE or the CMake extension for VSCode this step is already managed in the background, so no action is required.\n\nExamples:\n\n```bash\n# Visual Studio 2022 - Build Tools\n\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Auxiliary\\Build\\vcvars64.bat\"\n\n# Visual Studio 2019 - Enterprise\n\"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\VC\\Auxiliary\\Build\\vcvars64.bat\"\n```\n\n### Dependencies Setup\nThis script must be executed in order to setup the 3rd party dependencies using conan packages.\n```bash\nconan remote add teiacare https://artifactory.app.teiacare.com/artifactory/api/conan/teiacare --insert 0 --force\nconan user \u003cUSERNAME\u003e -p \u003cPASSWORD\u003e -r teiacare\n\npython scripts/conan/setup.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n```\n\n### Configure, Build and Install\nThis script configures, builds and installs the library.\n```bash\npython scripts/cmake.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n```\n\n## Examples\n\n```bash\n# Build all the examples\npython scripts/cmake.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e --examples --warnings\n\n# Run all the examples\npython scripts/tools/run_examples.py install/examples\n```\nExamples are installed in $PWD/install/examples.\n\n\n## Unit Tests and Code Coverage\n\n```bash\n# Build Unit Tests with Code Coverage enabled (if supported)\npython scripts/cmake.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e --coverage --warnings\n\n# Run Unit Tests\npython scripts/tools/run_unit_tests.py \u003cDebug|Release|RelWithDebInfo\u003e\n\n# Run Code Covergae\npython scripts/tools/run_coverage.py \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n```\nNote that code coverage is not available on Windows.\n\nUnit tests results are available in $PWD/results/unit_tests.\nCoverage results are available in $PWD/results/coverage.\n\n\n## Sanitizers\n\n### Address Sanitizer\n\n```bash\n# Build Unit Tests with Address Sanitizer enabled (if supported)\npython scripts/cmake.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e --address_sanitizer --unit_tests\n\n# Run Unit Tests with Address Sanitizer\npython scripts/tools/run_sanitizer.py --address_sanitizer install/unit_tests/teiacare_inference_client_unit_tests\n```\nNote that Address Sanitizer is supported only on Linux.\n\n\n### Thread Sanitizer\n\n```bash\n# Build Unit Tests with Thread Sanitizer enabled (if supported)\npython scripts/cmake.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e --thread_sanitizer --unit_tests\n\n# Run Unit Tests with Thread Sanitizer\npython scripts/tools/run_sanitizer.py --thread_sanitizer install/unit_tests/teiacare_inference_client_unit_tests\n```\nNote that Thread Sanitizer is supported only on Linux.\n\n\n## Benchmarks\n\n```bash\n# Build Benkmarks\npython scripts/cmake.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e --benchmarks --warnings\n\n# Run Benchmarks\npython scripts/tools/run_benchmarks.py \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n```\nBenchmarks are installed in $PWD/install/benchmarks.\n\n\n## Code Formatting\n\n- [clang-format](https://clang.llvm.org/docs/ClangFormat.html)\n\n*clang-format* can be installed via *pip* using the provided *scripts/requirements.txt*\n\n```bash\npython scripts/tools/run_clang_format.py -r -i inference_client\n```\n\n\n## Code Analysis\n\n- [clang-tidy](https://clang.llvm.org/extra/clang-tidy/)\n\n*clang-tidy* can be installed via *pip* using the provided *scripts/requirements.txt*\n\n```bash\npython scripts/tools/run_clang_tidy.py -header-filter=.* inference_client\n```\n\n- [cppcheck](http://cppcheck.net/)\n\nFirst install and setup *cppcheck* from your OS package manager.\n```bash\n# Linux\nsudo apt install cppcheck\n\n# Windows\nwinget install cppcheck\n```\n\nThen run CppCheck using the provided python script:\n```bash\npython scripts/tools/run_cppcheck.py \u003cDebug|Release|RelWithDebInfo\u003e\n```\n\n\n## Generate Documentation\n\nFirst install and setup *Doxygen* from your OS package manager.\n```bash\n# Linux\napt-get install doxygen graphviz\n\n# Windows\nwinget install doxygen\n```\n\nThen run Doxygen using the provided python script:\n```bash\npython scripts/tools/run_doxygen.py\n```\nDocumentation is now installed in $PWD/docs.\n\n\n## Conan Package\n\n### Local Install\n\nCreate, test and install local package.\n\nNotes:\n1) The install directory path must be a valid Conan cache (i.e. \".conan\" folder) located in the current directory.\n   So, in order to install the package in a desired repository folder, it is required to run this script from the repository folder directly.\n2) The Conan package tests are automatically run during package creation.\n   The directory test_package contains a test project that is built to validate the proper package creation.\n\n```bash\n# Create the Conan package locally\npython scripts/conan/create.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n\n# Build and install the test package executable\npython test_package/build.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n\n# Run the test package executable\n$PWD/install/test_package/teiacare_inference_client_test_package\n```\n\n\n### Artifactory Upload\n\nIn order to upload a Conan package to TeiaCare Artifactory server it is required to setup you local Conan client once with the following commands:\n\n```bash\n# Add TeiaCare Artifactory remote to local Conan client\nconan remote add teiacare $(artifactory.url)/teiacare\n\n# Authenticate with Artifactory credentials\nconan user $(artifactory.username) -p $(artifactory.password) -r teiacare\n```\n\nNow it is possible to create and upload a Conan package with the following commands:\n\n```bash\n# Create the Conan package locally\npython scripts/conan/create.py \u003cDebug|Release|RelWithDebInfo\u003e \u003cCOMPILER_NAME\u003e \u003cCOMPILER_VERSION\u003e\n\n# Upload the package to Artifactory on the teicare remote\npython scripts/conan/upload.py teiacare teiacare_inference_client\n```\n\n\n## Contributing\n\nIn order to contribute to TeiaCareInferenceClient, please follow our [contribution guidelines](./CONTRIBUTING).\n\n[![Contributions](https://img.shields.io/badge/Contributions-Welcome-green.svg)](./CONTRIBUTING)\n\n\n## License\n\nThis project is licensed under the [Apache License, Version 2.0](./LICENSE).\nCopyright © 2024 [TeiaCare](https://teiacare.com/)\n\n[![License](https://img.shields.io/badge/License-Apache_v2-blue)](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteiacare%2Fteiacareinferenceclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteiacare%2Fteiacareinferenceclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteiacare%2Fteiacareinferenceclient/lists"}