{"id":17477442,"url":"https://github.com/testcontainers/testcontainers-native","last_synced_at":"2026-01-12T01:53:49.383Z","repository":{"id":192205413,"uuid":"686277756","full_name":"testcontainers/testcontainers-native","owner":"testcontainers","description":"Testcontainers for C/C++/Swift and other native projects, built on the top of Testcontainers for Go","archived":false,"fork":false,"pushed_at":"2025-10-31T10:37:31.000Z","size":689,"stargazers_count":36,"open_issues_count":20,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-12-24T19:47:19.530Z","etag":null,"topics":["c","cpp","hacktoberfest","native","swift","testcontainers","testcontainers-custom-container","wiremock"],"latest_commit_sha":null,"homepage":"https://testcontainers.github.io/testcontainers-native/","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/testcontainers.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"docs/SECURITY.md","support":"docs/SUPPORT.md","governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":"github:oleg-nenashev"},"created_at":"2023-09-02T08:59:08.000Z","updated_at":"2025-11-15T18:34:28.000Z","dependencies_parsed_at":"2023-09-03T11:01:55.684Z","dependency_job_id":"7bcdbc1c-4f04-489c-8967-961956e28651","html_url":"https://github.com/testcontainers/testcontainers-native","commit_stats":{"total_commits":77,"total_committers":4,"mean_commits":19.25,"dds":0.09090909090909094,"last_synced_commit":"f2e76b2ce7021ff960148ec5ada671a001addc46"},"previous_names":["oleg-nenashev/testcontainers-c","testcontainers/testcontainers-c","testcontainers/testcontainers-native"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/testcontainers/testcontainers-native","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testcontainers%2Ftestcontainers-native","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testcontainers%2Ftestcontainers-native/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testcontainers%2Ftestcontainers-native/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testcontainers%2Ftestcontainers-native/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/testcontainers","download_url":"https://codeload.github.com/testcontainers/testcontainers-native/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/testcontainers%2Ftestcontainers-native/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28331272,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T00:36:25.062Z","status":"ssl_error","status_checked_at":"2026-01-12T00:36:15.229Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["c","cpp","hacktoberfest","native","swift","testcontainers","testcontainers-custom-container","wiremock"],"created_at":"2024-10-18T20:08:07.927Z","updated_at":"2026-01-12T01:53:49.375Z","avatar_url":"https://github.com/testcontainers.png","language":"C","readme":"# Testcontainers for C/C++/Swift and other native languages\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"512px\" src=\"docs/images/logo/logo_testcontainers_native_wide.png\" alt=\"Testcontainers Native Logo\"/\u003e\n\u003c/p\u003e\n\n[![Slack: testcontainers-native on slack.testcontainers.org](https://img.shields.io/badge/Slack-%23testcontainers%E2%80%94native-brightgreen?style=flat\u0026logo=slack)](https://slack.testcontainers.org/)\n[![Stability: Experimental](https://masterminds.github.io/stability/experimental.svg)](https://masterminds.github.io/stability/experimental.html)\n[![GitHub release (latest by date)](https://img.shields.io/github/v/release/oleg-nenashev/testcontainers-c)](https://github.com/oleg-nenashev/testcontainers-c/releases)\n\n\u003e [!WARNING]\n\u003e This is a prototype. There is a lot to do before it can be distributed and used in production, see the GitHub Issues and the [project roadmap](./ROADMAP.md)\n\nThis is not a standalone [Testcontainers](https://testcontainers.org/) engine,\nbut a C-style shared library adapter for native languages like C/C++, D, Lua, Swift, etc.\nIt is an MVP SDK that can be later extended for the languages.\nThe project is based on [Testcontainers for Go](https://golang.testcontainers.org/)\nwhich is one of the most powerful Testcontainers implementations.\n\nContributions and feedback are welcome!\nAlso join the `#testcontainers-native` channel on the [Testcontainers Slack](https://slack.testcontainers.org/).\n\n## Key Features\n\n- _Testcontainers for C/C++_ - a shared library and C-style headers that can be used in native projects\n- Support for [C](./docs/c/README.md), [C++](./docs/cpp/README.md), [Swift](./docs/swift/README.md) and other native projects.\n- Minimum viable Testcontainers API functionality:\n  starting and terminating containers, passing files, exposing ports,\n  accessing container logs, etc.\n- Minimum HTTP client wrapper to simplify requests and assertions\n- [Testcontainers for Go](https://golang.testcontainers.org/) under the hood, with all its reporting and resource management capabilities.\n  Memory might leak a lot in the current versions, but we do not want containers to leak :)\n- Support for [Testcontainers Modules](./modules/README.md)\n\nThis is what a very simple run without a test framework may look like.\n\n[![Sample Output](./demo/wiremock/sample_output.png)](./demo/wiremock/README.md)\n\n## Quick Start\n\nFollow the [Getting Started Guide](./docs/getting-started.md).\n\n### Installing the library\n\nIt is advised to include CMake as a dependent module for now.\nIf you like living dangerously until proper vcpkg and Conan packages are ready,\nyou can optionally install the library to your system:\n\n```bash\n# NOT RECOMMENDED\ncmake --install ..\n```\n\n## Documentation\n\n### Using in C/C++/Swift projects\n\n- [C projects](./docs/c/README.md)\n- [C++ projects](./docs/cpp/README.md)\n- [Swift projects](./docs/swift/README.md)\n\nSee [the examples and demos](./demo/README.md) for more examples.\n\n### Using in other languages\n\nTL;DR: You get the C header file, a shared library object or a DLL file from the\n[Testcontainers for C](./docs/c/README.md) module.\nThen, you can bind this native library in your project type.\nIt allows supporting many other languages that support using\nnative tooling via dynamically or statically linked libraries:\n\n![Languages that can leverage Testcontainers for C](docs/images/supported-languages.png)\n\nDisclaimer:\nThe schema above shows the most popular languages for Embedded systems,\nbased on the\n[IEEE Spectrum 2021 Report](https://spectrum.ieee.org/top-programming-languages-2021)\nand the [JetBrains 2021 Developer Ecosystem Survey for Embedded Software](https://www.jetbrains.com/lp/devecosystem-2021/embedded/).\nMore native languages exist and can be supported by Testcontainers Native.\n\nFeel free to contribute examples or SDKs for the languages!\nSee the [Swift Solution Page](./docs/swift/README.md) for examples.\n[Testcontainers Native Architecture](./docs/architecture/README.md)\ndescribes how it can be done in principle.\n\n## Credits\n\nUsing a complex Golang framework from C/C++ is not trivial.\nNeither are the CMake files. This project would not succeed without many quality articles and help from the community.\n\nKudos to:\n\n- All Testcontainers, Golang C-Shared build mode, CGO and WireMock contributors!\n- [Manuel de la Peña](https://github.com/mdelapenya) for maintaining [Testcontainers for Go](https://github.com/testcontainers/testcontainers-go) and answering bizarre questions about the implementations `:-)`\n- [Vladimir Vivien](https://github.com/vladimirvivien) for\n  [Calling Go Functions from Other Languages using C Shared Libraries](https://github.com/vladimirvivien/go-cshared-examples)\n- [Ben McClelland](https://twitter.com/hpc_ben) for\n   [An Adventure into CGO - Calling Go code with C](https://medium.com/@ben.mcclelland/an-adventure-into-cgo-calling-go-code-with-c-b20aa6637e75)\n- [Insu Jang](https://github.com/insujang) for\n  [Implementing Kubernetes C++ Client Library using Go Client Library](https://insujang.github.io/2019-11-28/implementing-kubernetes-cpp-client-library)\n- An infinite number of StackOverflow contributors\n\n## Discuss\n\nFor any questions and feedback,\njoin the `#testcontainers-native` channel on the [Testcontainers Slack](https://slack.testcontainers.org/).\n\n## Support the Project\n\nThe best support is investing some time in the project.\nAll contributions are welcome, checkout the [Contributor Guide](./CONTRIBUTING.md).\nOf course, [GitHub Sponsorships](https://github.com/sponsors/oleg-nenashev) will be appreciated too.\n\n## Contributing\n\nAny contributions are welcome!\nSee the [Contributor Guide](./CONTRIBUTING.md).\n\n## Read More\n\n- [Testcontainers](https://testcontainers.org/)\n- [WireMock and Testcontainers](https://wiremock.org/docs/solutions/testcontainers/)\n- [Testcontainers Modules](https://testcontainers.com/modules)\n- [WireMock modules for Testcontainers](https://testcontainers.com/modules/wiremock/)\n","funding_links":["https://github.com/sponsors/oleg-nenashev"],"categories":["Testcontainers and C/C++/Swift"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestcontainers%2Ftestcontainers-native","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftestcontainers%2Ftestcontainers-native","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftestcontainers%2Ftestcontainers-native/lists"}