# Welcome to Testcontainers for Go!

<p align="center"><strong>Not using Go? Here are other supported languages!</strong></p>
<div class="card-grid">
    <a href="https://java.testcontainers.org" class="card-grid-item"><img src="language-logos/java.svg" alt=""/>Java</a>
    <a class="card-grid-item"><img src="language-logos/go.svg" alt=""/>Go</a>
    <a href="https://dotnet.testcontainers.org/" class="card-grid-item"><img src="language-logos/dotnet.svg" alt=""/>.NET</a>
    <a href="https://node.testcontainers.org/" class="card-grid-item"><img src="language-logos/nodejs.svg" alt=""/>Node.js</a>
    <a href="https://testcontainers-python.readthedocs.io/en/latest/" class="card-grid-item"><img src="language-logos/python.svg" alt=""/>Python</a>
    <a href="https://rust.testcontainers.org/" class="card-grid-item"><img src="language-logos/rust.svg" alt=""/>Rust</a>
    <a href="https://github.com/testcontainers/testcontainers-ruby/" class="card-grid-item"><img src="language-logos/ruby.svg" alt=""/>Ruby</a>
    <a href="https://php.testcontainers.org/" class="card-grid-item"><img src="language-logos/php.svg" alt=""/>PHP</a>
    <a href="https://github.com/testcontainers/testcontainers-hs/" class="card-grid-item"><img src="language-logos/haskell.svg" alt=""/>Haskell</a>
    <a href="https://cljdoc.org/d/clj-test-containers/clj-test-containers/" class="card-grid-item"><img src="language-logos/clojure.svg" alt=""/>Clojure</a>
    <a href="https://github.com/testcontainers/testcontainers-elixir" class="card-grid-item"><img src="language-logos/elixir.svg" alt=""/>Elixir</a>
    <a href="https://github.com/testcontainers/testcontainers-scala/" class="card-grid-item"><img src="language-logos/scala.svg" alt=""/>Scala</a>
    <a href="https://github.com/testcontainers/testcontainers-native" class="card-grid-item"><img src="language-logos/c.svg" alt=""/>Native</a>
</div>

## About Testcontainers for Go

_Testcontainers for Go_ is a Go package that makes it simple to create and clean up container-based dependencies for
automated integration/smoke tests. The clean, easy-to-use API enables developers to programmatically define containers
that should be run as part of a test and clean up those resources when the test is done.

To start using _Testcontainers for Go_ please read our [quickstart guide](./quickstart.md).

## GoDoc

Inline documentation and docs where the code live is crucial for us. Go has nice support for them and we provide
examples as well. Check it out at
[pkg.go.dev/github.com/testcontainers/testcontainers-go](https://pkg.go.dev/github.com/testcontainers/testcontainers-go).

## Who is using Testcontainers Go?

* [Elastic](https://www.elastic.co) - Testing of the APM Server, and E2E testing for Beats
* [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/) - Integration testing the plugin-driven server agent for collecting & reporting metrics
* [Intel](https://intel.com/) - Reference implementation design E2E testing for microservice-based solutions
* [OpenTelemetry](https://opentelemetry.io/) - Integration testing of the OpenTelemetry Collector receivers

## License

This project is opensource and you can have a look at the code on
[GitHub](https://github.com/testcontainers/testcontainers-go). See [LICENSE](https://github.com/testcontainers/testcontainers-go/blob/main/LICENSE).

## Copyright

Copyright (c) 2018-present Gianluca Arbezzano and other authors. Check out our
[lovely contributors](https://github.com/testcontainers/testcontainers-go/graphs/contributors).
