Drop-in local cloud emulator suite: 47 AWS services, 8 Azure services, and 7 GCP services on a single native binary. Starts in 24 ms and idles at 13 MiB — compared to LocalStack's Docker container that takes seconds to spin up and hundreds of MB of RAM. MIT-licensed with no pricing tiers and no community-edition sunset. Listens on port 4566 so existing LocalStack clients work unchanged. The main reason to switch: it runs wherever a Rust binary runs, needs no Docker daemon, and has no authentication gates.
floci-io/floci→The original local AWS emulator. Runs as a Docker container and emulates S3, SQS, DynamoDB, Lambda, IAM, and ~80 other services. Community edition covers the most common services; Pro adds more. The dominant choice for existing projects and the one most SDKs and tutorials target — if you're starting a new project, consider floci for the lighter footprint, but LocalStack's ecosystem depth (CDK local, SAM local, Terraform provider) is unmatched.
localstack/localstack→Spin up real Docker containers as throwaway test dependencies — a Postgres instance, a Redis cluster, a Kafka broker — directly from your test code, with automatic lifecycle management and port mapping. Polyglot: official SDKs for Go, Java, .NET, Node, Python, and Rust. The key insight is that your test spins up a real database rather than a mock, giving you confidence that your code works against the actual engine. Containers are destroyed at the end of the test run with no manual cleanup.
testcontainers/testcontainers-go→Go library for writing automated tests for Terraform modules, Helm charts, Packer templates, and Kubernetes configs. Tests run terraform apply, make real cloud API calls to verify resources, then run terraform destroy. Built-in helpers cover SSH, HTTP, Kubernetes, AWS, GCP, and Azure SDKs. The pattern: write a test that deploys your module, asserts the outputs are correct, and tears it down — the same module you ship is the one being tested. Essential for shared Terraform modules that need regression coverage.
Bash Automated Testing System — write tests for shell scripts, CLI tools, and anything that runs as a command. Tests look like: @test "curl returns 200" { run curl -s -o /dev/null -w "%{http_code}" http://localhost; [ "$output" = "200" ]; }. TAP-compatible output integrates with any CI system. Invaluable for testing deployment scripts, wrapper scripts, and CI pipeline helpers that nobody tests because "it's just bash". BATS-core is the actively maintained fork.
API mock server where the mock definition is a plain JSON file that lives in your repo. Desktop GUI for designing mocks and a CLI (mockoon-cli start --data api.json) for running them in CI with no GUI. Define routes, response bodies, status codes, delays, and dynamic templating. The main reason to switch from Postman mock server: collections are files you own, diff in PRs, and run offline — no account, no sync service, no cloud dependency. MIT-licensed.
Consumer-driven contract testing framework. The consumer (client) writes tests that define what API contract it expects; those tests generate a "pact" file. The provider (server) then verifies it honours that contract — without both services needing to run at the same time. The key benefit in microservice architectures: you know a contract is broken before deploying, not after. SDKs for Go, JS/TS, Java, Python, Ruby, .NET. PactFlow provides a hosted broker; the OSS broker runs on Docker for self-hosted use.
pact-foundation/pact-go→This department focuses on local-first and CI-friendly infrastructure testing. Unit testing frameworks for application code (Jest, pytest, Go testing) are out of scope — those are language choices, not infrastructure choices. Load testing tools (k6, oha, wrk) are in the API & Testing toolbox.