Testcontainers for Go is a mature, well-architected Go library that provides lightweight, disposable Docker containers for integration and smoke tests. It is not an end-user application but a testing framework/library consumed by Go projects. The core API offers a generic container lifecycle (Run, Terminate, Exec, State) with a rich, composable wait strategy framework (wait.ForLog, wait.ForHTTP, wait.ForSQL, etc.) and lifecycle hooks. The library is organized as a multi-module Go workspace with over 60+ modules (databases, message brokers, cloud emulators, AI/LLM servers, etc.), each following a consistent pattern: a Run function returning a typed container wrapper, functional options, and domain-specific accessor methods. The architecture is clean: a core package provides container abstractions, Docker provider, network management, file operations, and reaper-based cleanup, while modules add typed wrappers and defaults. Key entry points include testcontainers.Run, module-specific Run functions, and the wait package. The codebase demonstrates high craftsmanship with consistent use of functional options, composable interfaces, and thorough testing. Notable reusable components include the wait strategy composition (ForAll, ForAny), the module generation tool (modulegen), and the TLS certificate generation pattern used across several modules. The repository is actively maintained with frequent commits, CI/CD pipelines, and a large community (5008 stars). Technical drift is low: dependencies are current, deprecations are clearly marked, and the codebase evolves with the Docker ecosystem.