Skip to content

Latest commit

 

History

History
31 lines (22 loc) · 1.14 KB

File metadata and controls

31 lines (22 loc) · 1.14 KB

Architecture

!!! note This section is coming soon. All contributions are welcome, just submit a pull request!

Build Process

Testcontainers Native Build Process

Stage 1. Testcontainers for C shared library

The core testcontainers-c shared library is built with Cgo. For that the -buildmode=c-shared is used in the Golang builder, and it also receives a customized header so that the types can be mapped between C and Golang. For that, we also have to flatten the structure and to switch the reference-based build process to fixed Objects stored in the Golang namespace, and C API using unique object IDs.

Stage 2. Language Bindings

Then, we build custom binding libraries, by using Testcontainers for C as a static library that is bundled into the language specific libs. This stage depends on the language and common practices there.

Stage 3. Executable Code

Well, you build it. From the previous stages, you get a header file, binding libraries, a shared library object or a DLL file from the Testcontainers for C module. Then, you know the drill.