testcontainers
testcontainers-rs
Rust

A library for integration-testing against docker containers from within Rust.

Last updated Jul 8, 2026
1.1k
Stars
194
Forks
28
Issues
+4
Stars/day
Attention Score
92
Language breakdown
No language data available.
Files click to expand
README

Testcontainers-rs

Continuous Integration Crates.io Docs.rs Slack

Testcontainers-rs is the official Rust language fork of http://testcontainers.org.

Usage

testcontainers is the core crate

The crate provides an API for working with containers in a test environment.

  • Depend on testcontainers
  • Implement testcontainers::core::Image for necessary docker-images
  • Run it with any available runner testcontainers::runners::* (use blocking feature for synchronous API)

Example:

  • Blocking API (under blocking feature)
use testcontainers::{core::{IntoContainerPort, WaitFor}, runners::SyncRunner, GenericImage, ImageExt};

#[test] fn test_redis() { let container = GenericImage::new("redis", "7.2.4") .withexposedport(6379.tcp()) .withwaitfor(WaitFor::messageonstdout("Ready to accept connections")) .with_network("bridge") .withenvvar("DEBUG", "1") .start() .expect("Failed to start Redis"); }

  • Async API
use testcontainers::{core::{IntoContainerPort, WaitFor}, runners::AsyncRunner, GenericImage, ImageExt};

#[tokio::test] async fn test_redis() { let container = GenericImage::new("redis", "7.2.4") .withexposedport(6379.tcp()) .withwaitfor(WaitFor::messageonstdout("Ready to accept connections")) .with_network("bridge") .withenvvar("DEBUG", "1") .start() .await .expect("Failed to start Redis"); }

Ready-to-use images

The easiest way to use testcontainers is to depend on ready-to-use images (aka modules).

Modules are available as a community-maintained crate: testcontainers-modules

License

Licensed under either of

  • Apache License, Version 2.0
(LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license
(LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

🔗 More in this category

© 2026 GitRepoTrend · testcontainers/testcontainers-rs · Updated daily from GitHub