fakecloud - Lokale AWS Cloud Emulator

Specificaties:

  • 105 services.
  • 7.508 operaties.
  • 248.557/248.557 Smithy-varianten zijn geslaagd — een werkelijke 100% conformiteit.

Waarom fakecloud?

fakecloud biedt een lokale AWS-omgeving die zich gedraagt als infrastructuur in plaats van een mock. Je applicatie maakt gebruik van de reguliere AWS SDK, CLI en IaC-tools. In tegenstelling tot de huidige LocalStack Community-opstelling, heb je geen account, authenticatietoken of betaald abonnement nodig om je kernontwikkelingsflows lokaal te houden.

De SDK's maken deze workflow efficiënter. Je start fakecloud, draait de code die je daadwerkelijk implementeert, inspecteert e-mails/berichten/aanroepingen achteraf en dwingt asynchroon AWS-gedrag op aanvraag af.

Gebouwd voor realistische lokale testen

fakecloud biedt echte API's voor je applicatie en speciaal gebouwde tooling voor je testen.

Workflow

Test wat je applicatie echt doet Gebruik normale AWS-clients tegen localhost en verifieer vervolgens de effecten met fakecloud, in plaats van het samenvoegen van polling, fixtures of private test-hooks.

SDK's

First-party testclients SDK's voor TypeScript, Python, Go, PHP, Java en Rust vormen een wrapper rond de /_fakecloud/* endpoints. Deze worden gebruikt voor resets, assertions en handmatige controle van asynchrone processors nadat je applicatie de normale AWS API's heeft gebruikt.

Dekking

105 AWS services Ondersteunde services zijn onder andere: 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 en Glue.

Technische kwaliteiten

Conformiteitstesten

Er is sprake van een werkelijke 100% conformiteit over alle 3.932 geïmplementeerde API-operaties: 248.557/248.557 door Smithy-model gegenereerde testvarianten slagen bij elke commit, ondersteund door end-to-end testen tegen de officiële AWS SDK's.

Realistisch gedrag

Cross-service flows zijn gekoppeld Er zijn meer dan 30 service-to-service integraties aanwezig, zoals:

  • S3-notificaties
  • SNS fanout
  • EventBridge targets
  • DynamoDB Streams
  • CloudWatch Logs abonnementen
  • Cognito triggers
  • Step Functions taakintegraties
  • API Gateway → Lambda

Eenvoud in gebruik

Geen authenticatie, geen lock-in, geen betaald tier Draai een enkel binair bestand of Docker-image, gebruik willekeurige dummy-credentials en houd de volledige workflow lokaal zonder je aan te melden bij een extern platform.

SDK's voor test-assertions

Blijf de AWS SDK in je applicatie gebruiken. Gebruik de fakecloud SDK's wanneer je testen zichtbaarheid en controle over de emulator zelf nodig hebben.

  • TypeScript: npm install fakecloud

Inspecteer SES-e-mails, SNS-berichten, SQS-queues, Lambda-aanroepingen, Cognito-bevestigingscodes en meer.

  • Python: pip install fakecloud

Asynchrone en synchrone clients voor pytest of integratietesten op applicatieniveau, met dezelfde introspectie en simulatie-dekking.

  • Go: go get github.com/faiscadev/fakecloud/sdks/go

Context-vriendelijke helpers voor resets, event-geschiedenis, SES inbound-simulatie en overige fakecloud-testfunctionaliteiten.

  • Rust: cargo add fakecloud-sdk

Native Rust-client voor testen die resets, statusinspectie en directe toegang tot het introspectie-oppervlak van fakecloud vereisen.

Snelstart

Start fakecloud, richt je AWS-client op localhost en verifieer vervolgens wat er is gebeurd.

# Installatie (geen Cargo of Docker nodig)
$ curl -fsSL https://fakecloud.dev/install.sh | bash
# of: brew install fakecloud
$ fakecloud

# Je applicatie gebruikt de normale AWS SDK tegen localhost
$ aws --endpoint-url http://localhost:4566 sqs create-queue \
--queue-name my-queue

# Je testen kunnen de status inspecteren via de fakecloud SDK
$ npm install fakecloud

Vergelijking

Voor wie een volledig lokale workflow wil met echte AWS API's zonder accountvereiste, is fakecloud specifiek hiervoor gebouwd.

KenmerkfakecloudLocalStack Community
LicentieAGPL-3.0Proprietary
Authenticatie vereistNeeJa (account + token)
Commercieel gebruikGratisAlleen betaalde plannen
Docker vereistNee (standalone binary)Ja
Opstarttijd~300ms~3s
Geheugengebruik (idle)~10 MiB~150 MiB
Installatiegrootte~19 MB binary~1 GB Docker image
AWS services46 met 100% conformiteit30+ (daarbuiten betaald)
Test assertion SDK'sTypeScript, Python, Go, PHP, Java, RustPython, Java
Cognito User Pools122 operatiesAlleen betaald
SES v2110 operatiesAlleen betaald
SES inbound emailEchte receipt rule actiesOpgeslagen maar nooit uitgevoerd
RDS163 operaties, PostgreSQL/MySQL/MariaDB via Docker, PostgreSQL aws_lambda extensionAlleen betaald
ElastiCache75 operaties, Redis en Valkey via DockerAlleen betaald
MemoryDB45 operaties, volledige control planeAlleen betaald
EKSCluster control plane (batch 1)Alleen betaald
API Gateway v2103 operaties, HTTP API's + developer portals + JWT/Lambda authorizersAlleen betaald
Bedrock214 operaties over 4 API'sNiet beschikbaar

Ondersteunde services

Elke geïmplementeerde API is gedekt door conformiteits- en gedragstesten.

ServiceProtocol
S3REST $\cdot$ XML
SQSQuery $\cdot$ XML
SNSQuery $\cdot$ XML
EventBridgeJSON
EventBridge SchedulerJSON
SSMJSON
DynamoDBJSON
IAMQuery
STSQuery
LambdaREST $\cdot$ JSON
Secrets ManagerJSON
CloudWatch LogsJSON
KMSJSON
CloudFormationQuery
SESREST + Query
Cognito User PoolsJSON
KinesisJSON
RDSQuery
ElastiCacheQuery
MemoryDBJSON 1.1
EKSREST-JSON
Step FunctionsJSON
API Gateway v1 (REST)REST $\cdot$ JSON
API Gateway v2REST $\cdot$ JSON
BedrockREST $\cdot$ JSON
Bedrock RuntimeREST $\cdot$ JSON
Bedrock AgentREST $\cdot$ JSON
Bedrock Agent RuntimeREST $\cdot$ JSON
ECRREST $\cdot$ JSON
ECSJSON
Elastic Load Balancing v2Query
CloudFrontREST $\cdot$ XML
Route 53REST $\cdot$ XML
ACMJSON
ACM PCAJSON
Application Auto ScalingJSON
WAF v2JSON
AthenaJSON
GlueJSON
Cognito IdentityJSON
CloudWatch (Metrics & Alarms)Query
FirehoseJSON
EC2Query $\cdot$ XML
OrganizationsJSON
Cloud Control APIJSON
EventBridge PipesREST $\cdot$ JSON
RDS Data APIREST $\cdot$ JSON
Aurora DSQLREST $\cdot$ JSON
Resource GroupsREST $\cdot$ JSON
Resource Groups Tagging APIJSON