Free, open-source LocalStack alternative

fakecloud is a free, open-source local AWS emulator: 23 services, 1,680 operations, 100% conformance, 6 test-assertion SDKs. No account, no token, no paid tier. Drop-in replacement for LocalStack Community.

LocalStack replaced its open-source Community Edition with a proprietary image in March 2026. Running localstack:latest now requires an account and an auth token, and several previously-free services (RDS, ElastiCache, Cognito User Pools, SES v2, API Gateway v2, ECS/ECR) moved behind a paywall.

fakecloud is a free, open-source replacement. Single static binary, no account, no token, no paid tier, AGPL-3.0.

curl -fsSL https://raw.githubusercontent.com/faiscadev/fakecloud/main/install.sh | bash
fakecloud

Point any AWS SDK or CLI at http://localhost:4566 with dummy credentials. That is the whole setup.

Goal: 100% AWS, 100% conformance, 100% integrations

fakecloud aims at every AWS service, each at 100% behavioral conformance, including every cross-service integration. Services land depth-first: a service is supported when it matches real AWS across every documented operation and cross-service wire-up — not when the API surface looks filled in. 23 services are there today (see below); the rest are on the roadmap, prioritized by real-project demand.

This is why fakecloud runs real Lambda code in real runtime containers, runs real PostgreSQL/MySQL/MariaDB for RDS, runs real Redis/Valkey for ElastiCache, fires real S3 -> Lambda and SES inbound -> S3/SNS/Lambda flows, and validates every operation against AWS's own Smithy models on every commit.

What fakecloud gives you

fakecloud vs LocalStack Community (post-March 2026)

FeaturefakecloudLocalStack Community
LicenseAGPL-3.0 (open source)Proprietary
Account / auth tokenNot requiredRequired
Free for commercial useYesNo
Docker requiredNo (single binary)Yes
Startup~500ms~3s
Idle memory~10 MiB~150 MiB
Install size~19 MB binary~1 GB image
Conformance methodologySmithy-model-validated, 54k+ test variantsNot published
Test-assertion SDKsTypeScript, Python, Go, PHP, Java, RustPython, Java
Cognito User Pools122 operationsPaid only
SES v2110 operations, full send + templates + DKIMPaid only
SES inbound emailReal receipt rule action executionStored but never executed
RDS163 ops, real PostgreSQL/MySQL/MariaDB via DockerPaid only
ElastiCache75 ops, real Redis/Valkey via DockerPaid only
API Gateway v228 ops, HTTP APIs + JWT/Lambda authorizersPaid only
Bedrock111 ops (control plane + runtime)Not available

Performance numbers measured on Apple M1 via time fakecloud, ps -o rss, ls -lh. LocalStack numbers from a fresh localstack start on the same hardware.

Migrating from LocalStack

Most projects can migrate by changing one thing: the container image (or the install command), plus the port if it differs. The endpoint URL, dummy credentials, and SDK wiring all stay the same.

# docker-compose.yml — before (LocalStack Community)
services:
  localstack:
    image: localstack/localstack:latest  # now requires auth token
    ports:
      - "4566:4566"

# docker-compose.yml — after (fakecloud)
services:
  fakecloud:
    image: ghcr.io/faiscadev/fakecloud:latest
    ports:
      - "4566:4566"

For CI without Docker:

- run: curl -fsSL https://raw.githubusercontent.com/faiscadev/fakecloud/main/install.sh | bash
- run: fakecloud &
- run: sleep 1 && aws --endpoint-url http://localhost:4566 s3 ls  # verify

Full migration guide: Migrating from LocalStack to fakecloud.

FAQ

Is fakecloud a drop-in replacement for LocalStack Community?

For integration testing and local development against the services fakecloud supports, yes. Your AWS SDK code, CLI commands, Terraform configs, and CDK apps work unchanged — you only switch the endpoint URL (already http://localhost:4566) and the process you run.

Is fakecloud free for commercial use?

Yes. AGPL-3.0. Using fakecloud as a dev/test dependency has zero AGPL implications for your application or your production code. The copyleft clause only kicks in if you modify fakecloud itself and redistribute it as a network service.

How is fakecloud different from Moto?

Moto is a Python library that patches boto3 inside a test process. fakecloud is a real HTTP server that listens on port 4566 and speaks the AWS wire protocol. That means fakecloud works with any language and any SDK (Go, Java, Node, Rust, PHP), and it exercises real cross-service wiring (EventBridge -> Lambda, S3 -> SNS, etc) because the services are running in the same process. Moto doesn't execute Lambda code; fakecloud runs Lambda in real Docker containers across 13 runtimes.

How is fakecloud different from SAM Local / serverless-offline?

SAM Local and serverless-offline only run Lambda (and a limited HTTP/API Gateway surface in front of it). fakecloud runs Lambda plus 22 other services, with real cross-service integrations. If your function calls SQS, fans out over SNS, or reads from DynamoDB, fakecloud has those services wired up.

Does fakecloud run on CI?

Yes. Single binary, ~19 MB, ~500ms startup. Common patterns: install-and-run as a background step in GitHub Actions / GitLab CI / CircleCI, or pull ghcr.io/faiscadev/fakecloud:latest as a service container. See integration testing AWS in CI for copy-paste configs.

What does "100% conformance" mean?

For every operation exposed by AWS's Smithy model, fakecloud accepts every documented input shape and returns the documented output shape, with every field AWS returns. Validated on every commit against 59,000+ generated test variants, plus the upstream hashicorp/terraform-provider-aws TestAcc* suites. This applies to every service listed above.

What's fakecloud's coverage goal?

100% of AWS services, each at 100% conformance with 100% of cross-service integrations. fakecloud adds services depth-first: a service only lands when it matches real AWS behavior across every documented operation and cross-service wire-up, not when the surface area looks filled in. If a service isn't on the list above, open an issue — the roadmap is driven by real-project demand.

Is this a fork of LocalStack?

No. fakecloud is written from scratch in Rust. No LocalStack code was used. LocalStack is written in Python; fakecloud is written in Rust and ships as a single binary.

Get started

If fakecloud behaves differently from real AWS, that's a bug — open an issue and it gets fixed.