logo
Kurashizu Blogwhere ideas flow
  • Home
  • News
  • Blog
  • About
  • Home
  • News
  • Blog
  • About

© 2026 Kurashizu. All rights reserved.

Admin·New Post·Service Status
Powered by Cloudflare·30.10.26
← Back to news

Fakecloud: Local AWS cloud emulator for integration tests

Original article
fakecloud.dev|57 points|37 comments|by theanonymousone|Sep 26, 2026

Fakecloud: A Local AWS Emulator for Integration Testing

Core Mission: Execute your application using standard AWS clients while remaining entirely local. Leverage the fakecloud SDKs only when your test suite requires deep introspection or manual control.

Fakecloud provides a local AWS environment designed to function as actual infrastructure rather than a simple mock. It eliminates the friction found in other tools; you no longer need no account, authentication tokens, or expensive subscriptions are required to maintain a local development loop.

🚀 The Development Experience

With fakecloud, you can launch the emulator, deploy the exact code you intend to ship, and then verify asynchronous AWS behaviors or inspect messages and invocations on demand.

The Workflow

  1. Execute: Point your standard AWS clients toward localhost.
  2. Verify: Instead of relying on fragile polling, private hooks, or complex fixtures, use the fakecloud SDK to assert the state of your infrastructure.

🛠 Technical Capabilities

📦 First-Party SDKs

While your app uses official AWS clients, your tests use these specialized SDKs to access /_fakecloud/* endpoints for resets and assertions:

  • TypeScript: npm install fakecloud (Inspect SES, SNS, SQS, Lambda, and Cognito).
  • Python: pip install fakecloud (Sync/Async clients for pytest).
  • Go: go get github.com/faiscadev/fakecloud/sdks/go (Context-aware helpers for event history).
  • Rust: cargo add fakecloud-sdk (Native state inspection and resets).
  • Java & PHP: Full SDK support available for integration.

📊 Conformance & Coverage

Fakecloud is engineered for extreme precision. It doesn't just "mimic" APIs; it adheres to the Smithy models.

The Math of Conformance: Conformance Rate=248,557 passing variants248,557 total variants=100%\text{Conformance Rate} = \frac{248,557 \text{ passing variants}}{248,557 \text{ total variants}} = 100\%Conformance Rate=248,557 total variants248,557 passing variants​=100%

Across 3,932 implemented API operations, every single commit is validated against official AWS SDKs to ensure zero drift.

🌐 Service Ecosystem

Fakecloud supports 105 AWS services, including:

  • Compute & Logic: Lambda, EC2, Step Functions, EKS.
  • Storage & DB: S3, DynamoDB, RDS, Aurora DSQL, ElastiCache, MemoryDB.
  • Messaging: SQS, SNS, EventBridge (Pipes & Scheduler), Kinesis, Firehose.
  • Security & Identity: IAM, STS, Organizations, Secrets Manager, KMS, Cognito (User Pools & Identity).
  • Management: CloudFormation, Cloud Control API, SSM, CloudWatch (Logs, Metrics, Alarms).
  • AI & Specialized: Bedrock, Bedrock Agent, Bedrock Runtime, Bedrock Agent Runtime, SES, WAF v2, Route 53, CloudFront, etc.

Real-World Behavior: It supports 30+ cross-service integrations, meaning a file upload to S3 can actually trigger an SNS fanout or an EventBridge target, mirroring real AWS orchestration.


⚡ Quick Start Guide

1. Installation (No Docker or Cargo required):

# Via shell script
curl -fsSL https://fakecloud.dev/install.sh | bash

# Or via Homebrew
brew install fakecloud

2. Launch and Use:

# Start the emulator
$ fakecloud

# Use the standard AWS CLI pointing to the local endpoint
$ aws --endpoint-url http://localhost:4566 sqs create-queue --queue-name my-queue

3. Assert in Tests:

// Example using the TypeScript SDK
import { FakeCloud } from 'fakecloud';
const fc = new FakeCloud();
await fc.assertQueueNotEmpty('my-queue');

⚖️ Comparison: fakecloud vs. LocalStack Community

FeaturefakecloudLocalStack Community
LicenseAGPL-3.0Proprietary
Auth RequiredNoYes (Account + Token)
Commercial UseFreePaid plans only
DeploymentStandalone Binary or DockerDocker required
Startup Time≈300ms\approx 300\text{ms}≈300ms≈3s\approx 3\text{s}≈3s
Idle Memory≈10 MiB\approx 10\text{ MiB}≈10 MiB≈150 MiB\approx 150\text{ MiB}≈150 MiB
Install Size≈19 MB\approx 19\text{ MB}≈19 MB≈1 GB\approx 1\text{ GB}≈1 GB (Image)
Conformance46 services at 100%30+ (Many behind paywall)
Assertion SDKsTS, Py, Go, PHP, Java, RustPython, Java
Cognito User Pools122 ops (Free)Paid only
SES v2110 ops (Free)Paid only
SES InboundReal receipt actionsStored, not executed
RDS163 ops + Docker DBsPaid only
ElastiCache/MemoryDBFull control planePaid only
EKS Control PlaneBatch 1 (Free)Paid only
API Gateway v2HTTP APIs + JWT/LambdaPaid only
Bedrock214 ops (4 APIs)Not available

🛠 Protocol Support Matrix

ServiceProtocol / Format
S3REST ⋅\cdot⋅ XML
SQS / SNS / IAM / STS / CloudFormationQuery ⋅\cdot⋅ XML
EventBridge / SSM / DynamoDB / Secrets Manager / CloudWatch Logs / KMS / Cognito / Kinesis / Step FunctionsJSON
Lambda / SES / EKS / API Gateway (v1 & v2) / Bedrock (All 4 APIs)REST ⋅\cdot⋅ JSON
RDS / ElastiCacheQuery
MemoryDBJSON 1.1

📈 Community Traction

npm downloads PyPI downloads Homebrew installs crates.io downloads