fakecloud vs SAM Local

How fakecloud compares to AWS SAM Local. Scope difference: SAM Local runs Lambda + limited API Gateway; fakecloud runs 23 services with real cross-service wiring.

AWS SAM Local is AWS's official tool for running Lambda functions locally. It invokes Lambda inside a Docker container with the real AWS runtime image, and provides a limited HTTP / API Gateway surface in front.

fakecloud runs Lambda the same way — real runtime containers, 13 runtimes supported — and also runs 22 other AWS services end-to-end.

Scope difference

fakecloudSAM Local
Lambda real code executionYes (13 runtimes in Docker)Yes (13 runtimes in Docker)
API Gateway v228 ops, HTTP APIs, JWT/Lambda authorizersLimited (REST API emulation)
API Gateway v1Not yetYes (SAM focuses here)
S3107 ops, real storage + notificationsNo
SQS23 ops, real queues + event source mappingsNo
SNS42 ops, real fan-outNo
DynamoDB57 ops, transactions, PartiQL, streamsNo
EventBridge57 ops + Scheduler (12 ops)No
Step Functions37 ops, full ASL interpreterNo
RDS163 ops, real PostgreSQL/MySQL/MariaDBNo
Cognito122 ops, full auth flowsNo
Cross-service triggersS3 -> Lambda, SQS -> Lambda, SNS -> Lambda, EventBridge -> Lambda all fireSynthetic events only (you generate JSON and hand it to your handler)

The difference in practice

SAM Local's model: run your Lambda. If your Lambda reads from DynamoDB, you run your Lambda against fake event JSON you generate. The DynamoDB side is not emulated — you mock or point at real AWS.

fakecloud's model: run your Lambda and the services it talks to. If your Lambda reads from DynamoDB, fakecloud runs the DynamoDB. If it's triggered by S3 upload, fakecloud fires the trigger for real when the upload happens. If it publishes to SNS, the topic actually fans out to subscribers.

When SAM Local is the right pick

When fakecloud is the right pick

Using both

Some teams run SAM Local for Lambda synthesis + local invoke, and fakecloud for the rest of AWS behind the function. This works — they don't conflict.

Install fakecloud

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

Lambda in fakecloud works the same way SAM Local does: pull the runtime container, mount your code, invoke the handler. The difference is everything else in the system also runs.