fakecloud beschreibt sich als lokale AWS-Umgebung für Integrationstests. Anwendungen können ihre üblichen AWS-SDKs, die AWS CLI und Infrastructure-as-Code-Werkzeuge gegen localhost einsetzen. Separate fakecloud-SDKs bieten unter /_fakecloud/* Funktionen für Resets, Assertions, Inspektion und die manuelle Steuerung.

terminal
# Install (no Cargo or Docker needed)
$ curl -fsSL https://fakecloud.dev/install.sh | bash
# or: brew install fakecloud
$ fakecloud
# Your app uses the normal AWS SDK against localhost
$ aws --endpoint-url http://localhost:4566 sqs create-queue \
    --queue-name my-queue
# Your tests can inspect state through the fakecloud SDK
$ npm install fakecloud

Das Projekt führt 105 AWS-Services und 7.508 Operationen auf. Nach eigenen Angaben bestehen 248.557 von 248.557 durch Smithy-Modelle erzeugten Testvarianten. Das wird als echte Konformität von 100 Prozent bezeichnet. Eine weitere Kennzahl nennt 3.932 implementierte API-Operationen, die bei jedem Commit durch Konformitäts- und Verhaltenstests abgedeckt werden. End-to-End-Prüfungen verwenden die offiziellen AWS-SDKs.

Die Emulation verbindet mehr als 30 Service-zu-Service-Abläufe. Genannt werden unter anderem S3-Benachrichtigungen, SNS-Fanout, EventBridge-Ziele, DynamoDB Streams, Abonnements für CloudWatch Logs, Cognito-Trigger, Step-Functions-Aufgaben und Aufrufe von API Gateway zu Lambda. Tests können nach der Ausführung des Anwendungscodes SES-E-Mails, SNS-Nachrichten, SQS-Warteschlangen, Lambda-Aufrufe und Cognito-Bestätigungscodes prüfen.

Erste Test-Clients gibt es für TypeScript, Python, Go, PHP, Java und Rust. Die Projektseite nennt fakecloud für npm und PyPI, github.com/faiscadev/fakecloud/sdks/go für Go sowie fakecloud-sdk für Rust. Die Clients unterstützen Resets, Assertions, Ereignisverläufe, die Simulation eingehender SES-Nachrichten, Zustandsinspektion und die manuelle Steuerung asynchroner Prozessoren.

Zum aufgeführten Service-Mix gehören 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, ACM PCA und Glue. Das Verzeichnis nennt REST-, REST-JSON-, XML-, Query-, JSON- und JSON-1.1-Protokolle.

fakecloud läuft als eigenständige Binärdatei oder als Docker-Image. Für den lokalen Ablauf sind keine Anmeldung, kein Konto, kein Authentifizierungstoken und kein kostenpflichtiger Tarif erforderlich. Beliebige Dummy-Zugangsdaten genügen. Die Kurzanleitung bietet ein Installationsskript und Homebrew an. Für die Binärinstallation werden Cargo und Docker nicht benötigt.

Die Vergleichstabelle führt fakecloud unter AGPL-3.0 und LocalStack Community unter einer proprietären Lizenz. Für fakecloud nennt sie etwa 300ms Startzeit, etwa 10 MiB Leerlaufspeicher und eine Installationsgröße von etwa 19 MB. Bei LocalStack Community stehen etwa 3s, 150 MiB und ein 1-GB-Docker-Image. Die Tabelle weist fakecloud 46 Services mit echter 100-prozentiger Konformität zu. Für LocalStack Community nennt sie 30+ Services, weitere Abdeckung ist als kostenpflichtig markiert.

Bei den Test-SDKs nennt die Tabelle TypeScript, Python, Go, PHP, Java und Rust. Sie führt 122 Cognito-User-Pools-Operationen, 110 SES-v2-Operationen, 163 RDS-Operationen, 75 ElastiCache-Operationen, 45 MemoryDB-Operationen, 103 API-Gateway-v2-Operationen und 214 Bedrock-Operationen über vier APIs auf. RDS unterstützt PostgreSQL, MySQL, MariaDB und die PostgreSQL-Erweiterung aws_lambda. ElastiCache unterstützt Redis und Valkey über Docker. Außerdem nennt die Tabelle SES-Eingangsaktionen mit Receipt Rules, eine als Batch 1 bezeichnete EKS-Cluster-Control-Plane und Bedrock-Unterstützung, die LocalStack Community nicht bietet. Das Projekt stammt von faisca und liegt unter der AGPL-3.0 auf GitHub.