Fakecloud: Local AWS cloud emulator for integration tests
Fakecloud: A Local AWS Emulator for Integration Testing
Core Mission: Execute your application using standard AWS clients while remaining entirely local. Leverage the
fakecloudSDKs 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
- Execute: Point your standard AWS clients toward
localhost. - 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 forpytest). - 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:
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
| Feature | fakecloud | LocalStack Community |
|---|---|---|
| License | AGPL-3.0 | Proprietary |
| Auth Required | No | Yes (Account + Token) |
| Commercial Use | Free | Paid plans only |
| Deployment | Standalone Binary or Docker | Docker required |
| Startup Time | ||
| Idle Memory | ||
| Install Size | (Image) | |
| Conformance | 46 services at 100% | 30+ (Many behind paywall) |
| Assertion SDKs | TS, Py, Go, PHP, Java, Rust | Python, Java |
| Cognito User Pools | 122 ops (Free) | Paid only |
| SES v2 | 110 ops (Free) | Paid only |
| SES Inbound | Real receipt actions | Stored, not executed |
| RDS | 163 ops + Docker DBs | Paid only |
| ElastiCache/MemoryDB | Full control plane | Paid only |
| EKS Control Plane | Batch 1 (Free) | Paid only |
| API Gateway v2 | HTTP APIs + JWT/Lambda | Paid only |
| Bedrock | 214 ops (4 APIs) | Not available |
🛠 Protocol Support Matrix
| Service | Protocol / Format |
|---|---|
| S3 | REST XML |
| SQS / SNS / IAM / STS / CloudFormation | Query XML |
| EventBridge / SSM / DynamoDB / Secrets Manager / CloudWatch Logs / KMS / Cognito / Kinesis / Step Functions | JSON |
| Lambda / SES / EKS / API Gateway (v1 & v2) / Bedrock (All 4 APIs) | REST JSON |
| RDS / ElastiCache | Query |
| MemoryDB | JSON 1.1 |
📈 Community Traction