
2026/09/26 23:25
Fakecloud: Local AWS cloud emulator for integration tests
RSS: https://news.ycombinator.com/rss
要約▶
本文
Local AWS cloud emulator for integration tests. Run your app with normal AWS clients, stay fully local, and use fakecloud SDKs when your tests need deeper visibility.105 services. 7,508 operations. 248,557/248,557 Smithy variants pass — true 100% conformance.Why fakecloud?fakecloud gives you a local AWS environment that behaves like infrastructure, not a mock. Your app uses the regular AWS SDK, CLI, and IaC tools. Unlike today's LocalStack Community setup, you do not need an account, auth token, or paid plan just to keep core development flows local.The SDKs make that workflow nicer, not narrower. Start fakecloud, run the code you actually ship, inspect emails/messages/invocations after the fact, and force async AWS-style behavior to happen on demand.Built for realistic local testingReal APIs for your app, purpose-built tooling for your tests.WorkflowTest what your app really doesUse normal AWS clients against localhost, then verify the effects with fakecloud instead of stitching together polling, fixtures, or private test hooks.SDKsFirst-party test clientsTypeScript, Python, Go, PHP, Java, and Rust SDKs wrap the /_fakecloud/* endpoints for resets, assertions, and manual control of async processors after your app has already used the normal AWS APIs.Coverage105 AWS servicesS3, 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, and Glue.TestedConformance testedTrue 100% conformance across all 3,932 implemented API operations: 248,557/248,557 Smithy-model-generated test variants pass on every commit, backed by end-to-end tests against the official AWS SDKs.Real behaviorCross-service flows are wired up30+ service-to-service integrations: S3 notifications, SNS fanout, EventBridge targets, DynamoDB Streams, CloudWatch Logs subscriptions, Cognito triggers, Step Functions task integrations, API Gateway → Lambda, and more — all exercise real service interactions.SimpleNo auth, no lock-in, no paid tierRun a single binary or Docker image, use any dummy credentials, and keep the whole workflow local without signing in to someone else's platform.SDKs for test assertionsKeep using the AWS SDK in your app. Use fakecloud SDKs when your tests need visibility and control on top of the emulator itself.TypeScriptnpm install fakecloudInspect SES emails, SNS messages, SQS queues, Lambda invocations, Cognito confirmation codes, and more.View on npmPythonpip install fakecloudAsync and sync clients for pytest or app-level integration tests, with the same introspection and simulation coverage.View on PyPIGogo get github.com/faiscadev/fakecloud/sdks/goContext-friendly helpers for resets, event history, SES inbound simulation, and the rest of the fakecloud test surface.View on pkg.go.devRustcargo add fakecloud-sdkNative Rust client for tests that need resets, state inspection, and direct access to the fakecloud introspection surface.View on crates.ioQuick StartStart fakecloud, point your AWS client at localhost, then assert what happened.$ curl -fsSL https://fakecloud.dev/install.sh | bash$ fakecloud$ aws --endpoint-url http://localhost:4566 sqs create-queue \ --queue-name my-queue$ npm install fakecloudHow it comparesIf you want a fully local workflow with real AWS APIs and no account requirement, fakecloud is built for that path. The SDKs are an extra testing advantage, not a replacement for that positioning.fakecloudLocalStack CommunityLicenseAGPL-3.0ProprietaryAuth requiredNoYes (account + token)Commercial useFreePaid plans onlyDocker requiredNo (standalone binary)YesStartup time300ms3sIdle memory10 MiB150 MiBInstall size19 MB binary1 GB Docker imageAWS services46 at true 100% conformance30+ (paid-only past Community)Test assertion SDKsTypeScript, Python, Go, PHP, Java, RustPython, JavaCognito User Pools122 operationsPaid onlySES v2110 operationsPaid onlySES inbound emailReal receipt rule actionsStored but never executedRDS163 operations, PostgreSQL/MySQL/MariaDB via Docker, PostgreSQL aws_lambda extensionPaid onlyElastiCache75 operations, Redis and Valkey via DockerPaid onlyMemoryDB45 operations, full control planePaid onlyEKSCluster control plane (batch 1)Paid onlyAPI Gateway v2103 operations, HTTP APIs + developer portals + JWT/Lambda authorizersPaid onlyBedrock214 operations across 4 APIs (Bedrock + Bedrock Runtime + Bedrock Agent + Bedrock Agent Runtime)Not availableSupported servicesEvery implemented API is covered by conformance and behavioral testing, with the service mix tuned for local development and integration tests.EventBridge SchedulerJSON protocolLambdaREST protocol · JSONSecrets ManagerJSON protocolCloudWatch LogsJSON protocolCloudFormationQuery protocolCognito User PoolsJSON protocolElastiCacheQuery protocolMemoryDBJSON 1.1 protocolStep FunctionsJSON protocolAPI Gateway v1 (REST)REST protocol · JSONAPI Gateway v2REST protocol · JSONBedrockREST protocol · JSONBedrock RuntimeREST protocol · JSONBedrock AgentREST protocol · JSONBedrock Agent RuntimeREST protocol · JSONElastic Load Balancing v2Query protocolCloudFrontREST protocol · XMLRoute 53REST protocol · XMLApplication Auto ScalingJSON protocolCognito IdentityJSON protocolCloudWatch (Metrics & Alarms)Query protocolOrganizationsJSON protocolCloud Control APIJSON protocolEventBridge PipesREST protocol · JSONRDS Data APIREST protocol · JSONAurora DSQLREST protocol · JSONResource GroupsREST protocol · JSONResource Groups Tagging APIJSON protocol