Back Original

Fakecloud: Local AWS cloud emulator for integration tests

Local AWS cloud emulator for integration tests. Run your app with normal AWS clients, stay fully local, and use fakecloud SDKs when your tests need deeper visibility.

105 services. 7,508 operations. 248,557/248,557 Smithy variants pass — true 100% conformance.

Why fakecloud?

fakecloud gives you a local AWS environment that behaves like infrastructure, not a mock. Your app uses the regular AWS SDK, CLI, and IaC tools. Unlike today's LocalStack Community setup, you do not need an account, auth token, or paid plan just to keep core development flows local.

The SDKs make that workflow nicer, not narrower. Start fakecloud, run the code you actually ship, inspect emails/messages/invocations after the fact, and force async AWS-style behavior to happen on demand.

Built for realistic local testing

Real APIs for your app, purpose-built tooling for your tests.

Workflow

Test what your app really does

Use normal AWS clients against localhost, then verify the effects with fakecloud instead of stitching together polling, fixtures, or private test hooks.

SDKs

First-party test clients

TypeScript, Python, Go, PHP, Java, and Rust SDKs wrap the /_fakecloud/* endpoints for resets, assertions, and manual control of async processors after your app has already used the normal AWS APIs.

Coverage

105 AWS services

S3, SQS, SNS, EventBridge, EventBridge Pipes, EventBridge Scheduler, Lambda, EC2, DynamoDB, IAM, STS, Organizations, SSM, Secrets Manager, CloudWatch Logs, CloudWatch (Metrics & Alarms), KMS, CloudFormation, Cloud Control API, SES, Cognito User Pools, Cognito Identity, Kinesis, Firehose, RDS, RDS Data API, Aurora DSQL, Resource Groups, Resource Groups Tagging API, ElastiCache, MemoryDB, EKS, Cloud Map, Step Functions, API Gateway v1 (REST), API Gateway v2 (HTTP), Bedrock, Bedrock Agent, Bedrock Agent Runtime, Bedrock Runtime, ECR, ECS, Elastic Load Balancing v2, CloudFront, Route 53, WAF v2, Application Auto Scaling, Athena, ACM, and Glue.

Tested

Conformance tested

True 100% conformance across all 3,932 implemented API operations: 248,557/248,557 Smithy-model-generated test variants pass on every commit, backed by end-to-end tests against the official AWS SDKs.

Real behavior

Cross-service flows are wired up

30+ service-to-service integrations: S3 notifications, SNS fanout, EventBridge targets, DynamoDB Streams, CloudWatch Logs subscriptions, Cognito triggers, Step Functions task integrations, API Gateway → Lambda, and more — all exercise real service interactions.

Simple

No auth, no lock-in, no paid tier

Run a single binary or Docker image, use any dummy credentials, and keep the whole workflow local without signing in to someone else's platform.

SDKs for test assertions

Keep using the AWS SDK in your app. Use fakecloud SDKs when your tests need visibility and control on top of the emulator itself.

TypeScript

npm install fakecloud

Inspect SES emails, SNS messages, SQS queues, Lambda invocations, Cognito confirmation codes, and more.

View on npm

Python

pip install fakecloud

Async and sync clients for pytest or app-level integration tests, with the same introspection and simulation coverage.

View on PyPI

Go

go get github.com/faiscadev/fakecloud/sdks/go

Context-friendly helpers for resets, event history, SES inbound simulation, and the rest of the fakecloud test surface.

View on pkg.go.dev

Rust

cargo add fakecloud-sdk

Native Rust client for tests that need resets, state inspection, and direct access to the fakecloud introspection surface.

View on crates.io

Quick Start

Start fakecloud, point your AWS client at localhost, then assert what happened.

How it compares

If you want a fully local workflow with real AWS APIs and no account requirement, fakecloud is built for that path. The SDKs are an extra testing advantage, not a replacement for that positioning.

fakecloudLocalStack Community
LicenseAGPL-3.0Proprietary
Auth requiredNoYes (account + token)
Commercial useFreePaid plans only
Docker requiredNo (standalone binary)Yes
Startup time~300ms~3s
Idle memory~10 MiB~150 MiB
Install size~19 MB binary~1 GB Docker image
AWS services46 at true 100% conformance30+ (paid-only past Community)
Test assertion SDKsTypeScript, Python, Go, PHP, Java, RustPython, Java
Cognito User Pools122 operationsPaid only
SES v2110 operationsPaid only
SES inbound emailReal receipt rule actionsStored but never executed
RDS163 operations, PostgreSQL/MySQL/MariaDB via Docker, PostgreSQL aws_lambda extensionPaid only
ElastiCache75 operations, Redis and Valkey via DockerPaid only
MemoryDB45 operations, full control planePaid only
EKSCluster control plane (batch 1)Paid only
API Gateway v2103 operations, HTTP APIs + developer portals + JWT/Lambda authorizersPaid only
Bedrock214 operations across 4 APIs (Bedrock + Bedrock Runtime + Bedrock Agent + Bedrock Agent Runtime)Not available

Supported services

Every implemented API is covered by conformance and behavioral testing, with the service mix tuned for local development and integration tests.

EventBridge Scheduler

JSON protocol

Lambda

REST protocol · JSON

Secrets Manager

JSON protocol

CloudWatch Logs

JSON protocol

CloudFormation

Query protocol

Cognito User Pools

JSON protocol

ElastiCache

Query protocol

MemoryDB

JSON 1.1 protocol

Step Functions

JSON protocol

API Gateway v1 (REST)

REST protocol · JSON

API Gateway v2

REST protocol · JSON

Bedrock

REST protocol · JSON

Bedrock Runtime

REST protocol · JSON

Bedrock Agent

REST protocol · JSON

Bedrock Agent Runtime

REST protocol · JSON

Elastic Load Balancing v2

Query protocol

CloudFront

REST protocol · XML

Route 53

REST protocol · XML

Application Auto Scaling

JSON protocol

Cognito Identity

JSON protocol

CloudWatch (Metrics & Alarms)

Query protocol

Organizations

JSON protocol

Cloud Control API

JSON protocol

EventBridge Pipes

REST protocol · JSON

RDS Data API

REST protocol · JSON

Aurora DSQL

REST protocol · JSON

Resource Groups

REST protocol · JSON

Resource Groups Tagging API

JSON protocol