{"id":48586038,"url":"https://github.com/faiscadev/fakecloud","last_synced_at":"2026-06-27T03:00:44.620Z","repository":{"id":349173539,"uuid":"1201301111","full_name":"faiscadev/fakecloud","owner":"faiscadev","description":"Free, open-source AWS emulator. LocalStack alternative: 41 services, 3,704 operations, true 100% Smithy conformance (124,255/124,255 variants pass). No account, no auth token, no paid tier.","archived":false,"fork":false,"pushed_at":"2026-06-20T00:30:07.000Z","size":33042,"stargazers_count":416,"open_issues_count":1,"forks_count":28,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-06-20T02:18:03.952Z","etag":null,"topics":["ai-testing","aws","aws-bedrock","aws-emulator","aws-sdk","aws-testing","bedrock","bedrock-emulator","cognito","dynamodb","emulator","integration-testing","lambda","llm-testing","localstack-alternative","moto-alternative","s3","sns","sqs","terraform"],"latest_commit_sha":null,"homepage":"https://fakecloud.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/faiscadev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-04T13:45:31.000Z","updated_at":"2026-06-20T00:30:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/faiscadev/fakecloud","commit_stats":null,"previous_names":["faiscadev/fakecloud"],"tags_count":66,"template":false,"template_full_name":null,"purl":"pkg:github/faiscadev/fakecloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faiscadev%2Ffakecloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faiscadev%2Ffakecloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faiscadev%2Ffakecloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faiscadev%2Ffakecloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faiscadev","download_url":"https://codeload.github.com/faiscadev/fakecloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faiscadev%2Ffakecloud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34839888,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-27T02:00:06.362Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-testing","aws","aws-bedrock","aws-emulator","aws-sdk","aws-testing","bedrock","bedrock-emulator","cognito","dynamodb","emulator","integration-testing","lambda","llm-testing","localstack-alternative","moto-alternative","s3","sns","sqs","terraform"],"created_at":"2026-04-08T18:06:24.429Z","updated_at":"2026-06-27T03:00:44.614Z","avatar_url":"https://github.com/faiscadev.png","language":"Rust","funding_links":[],"categories":["Libraries","Open Source Cloud Platforms","Software","Rust","Open Source Repos"],"sub_categories":["Cloud","Service Virtualization","Miscellaneous Repos"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cstrong\u003efakecloud\u003c/strong\u003e\u003cbr\u003e\n  \u003cem\u003eLocal AWS cloud emulator. Free forever.\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/faiscadev/fakecloud/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/faiscadev/fakecloud/ci.yml?branch=main\u0026label=CI\" alt=\"CI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/faiscadev/fakecloud/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-AGPL--3.0-blue\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/faiscadev/fakecloud/pkgs/container/fakecloud\"\u003e\u003cimg src=\"https://img.shields.io/badge/ghcr.io-fakecloud-blue?logo=docker\" alt=\"GHCR\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://crates.io/crates/fakecloud\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/fakecloud\" alt=\"crates.io\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://formulae.brew.sh/formula/fakecloud\"\u003e\u003cimg src=\"https://img.shields.io/homebrew/v/fakecloud\" alt=\"Homebrew\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://fakecloud.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-fakecloud.dev-green\" alt=\"Docs\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nfakecloud is a free, open-source local AWS emulator for integration testing and local development. Single binary, no account, no auth token, no paid tier. Point your AWS SDK at `http://localhost:4566` and it works.\n\nIn March 2026, LocalStack replaced its open-source Community Edition with a proprietary image that requires an account and auth token. fakecloud exists so teams can keep a fully local AWS testing workflow without one.\n\n## Quick start\n\n```sh\ncurl -fsSL https://fakecloud.dev/install.sh | bash   # or: brew install fakecloud\nfakecloud\n```\n\nThen point any AWS SDK or CLI at `http://localhost:4566` with dummy credentials:\n\n```sh\naws --endpoint-url http://localhost:4566 sqs create-queue --queue-name my-queue\n```\n\nWorks as a drop-in for LocalStack in CI, with Terraform (`endpoints` block), CDK (`cdklocal`), or any AWS SDK in any language. Other install options (Homebrew, Cargo, Docker, Docker Compose, source) and full guides: [fakecloud.dev/docs/getting-started](https://fakecloud.dev/docs/getting-started).\n\n## Why fakecloud\n\n- **Free, forever.** AGPL-3.0, no paid tier, no account, no token.\n- **True 100% conformance.** 124,255 Smithy-model-generated test variants pass on every commit, validated against AWS's own Smithy models. CI also runs upstream `terraform-provider-aws` `TestAcc*` suites to catch waiter/field/drift bugs that SDK tests miss.\n- **Real cross-service wiring.** EventBridge -\u003e Step Functions, S3 -\u003e Lambda, SES inbound -\u003e S3/SNS/Lambda, and 15+ more integrations execute end-to-end.\n- **Real infrastructure for stateful services.** Lambda (23 runtimes), RDS (Postgres/MySQL/MariaDB/Oracle/SQL Server/Db2), ElastiCache (Redis/Valkey/Memcached), ECS, and EC2 run as real containers. Use Docker (default) or native Kubernetes Pods via `FAKECLOUD_CONTAINER_BACKEND=k8s`. See the [Kubernetes backend guide](https://fakecloud.dev/docs/guides/kubernetes-backend/).\n- **Single binary.** ~19 MB, ~10 MiB idle, ~300ms startup. No Docker needed to run fakecloud itself.\n- **Full Bedrock surface.** 214 ops across 4 APIs with real `InvokeModel`/`Converse` streaming, guardrails, agents, and flows. Configurable responses + fault injection for deterministic tests. See [`/bedrock-emulator/`](https://fakecloud.dev/bedrock-emulator/).\n- **First-party test SDKs** for TypeScript, Python, Go, PHP, Java, and Rust. Assert on what your code called without raw HTTP.\n- **Opt-in SigV4 verification and IAM enforcement.** Off by default so tests just work; `--verify-sigv4` for real signature checking and `--iam soft|strict` for policy evaluation across IAM/STS/SQS/SNS/S3. See [security docs](https://fakecloud.dev/docs/reference/security/).\n- **LocalStack and real-AWS URL compatibility.** Both `*.localhost.localstack.cloud` and `*.amazonaws.com` Host headers route correctly, including every S3 virtual-hosted variant. Persisted URLs and dev scripts from either system replay unchanged.\n\n## Supported services\n\n41 services, 3,717 operations, true 100% conformance across every implemented service. Notes below are one-liners; the [parity matrix](https://fakecloud.dev/docs/parity/) has full control-plane vs data-plane coverage and known limitations per service.\n\n| Service                   | Ops | Notes |\n| ------------------------- | --- | ----- |\n| S3                        | 107 | Versioning, lifecycle, notifications, multipart, replication, website, real SSE-KMS |\n| SQS                       | 23  | FIFO, DLQs, long polling, batch, real KMS encrypt/decrypt |\n| SNS                       | 42  | Fan-out to SQS/Lambda/HTTP, filter policies, KMS audit-trail |\n| EventBridge               | 57  | Pattern matching, schedules, archives, replay, API destinations |\n| EventBridge Scheduler     | 12  | at/rate/cron, SQS targets, DLQ routing, one-shot self-delete |\n| Lambda                    | 70  | Real Docker, 23 runtimes, ESM with FilterCriteria + partial-batch failure |\n| DynamoDB                  | 57  | Transactions, PartiQL, backups, global tables, streams, SSE-KMS |\n| IAM                       | 176 | Users, roles, policies, groups, OIDC/SAML, PassRole trust enforcement |\n| STS                       | 11  | AssumeRole, session tokens, federation |\n| SSM                       | 146 | Parameters, documents, commands, maintenance, patch baselines, SecureString KMS |\n| Secrets Manager           | 23  | Versioning, rotation via Lambda, replication, real KMS encrypt/decrypt |\n| CloudWatch Logs           | 113 | Groups, streams, subscription filters, query language |\n| CloudWatch                | 46  | Metrics + composite alarms, dashboards, anomaly detectors, insight rules, metric streams |\n| KMS                       | 53  | Encryption, aliases, grants, real ECDH, key import, cross-service hook |\n| CloudFormation            | 90  | Template parsing, resource provisioning, custom resources |\n| SES (v2 + v1 inbound)     | 110 | Sending, templates, DKIM, real receipt rule execution |\n| Cognito User Pools        | 122 | Pools, clients, MFA, IdPs, full auth flows, 12 Lambda triggers, email-\u003eSES SMS-\u003eSNS |\n| Kinesis                   | 39  | Streams, records, shard iterators, retention |\n| RDS                       | 163 | Real Postgres/MySQL/MariaDB/Oracle/SQL Server/Db2, `aws_lambda`/`aws_s3` extensions, Aurora lambda bridge |\n| ElastiCache               | 75  | Real Redis, Valkey, Memcached via Docker |\n| Step Functions            | 37  | Full ASL interpreter, Lambda/SQS/SNS/EventBridge/DynamoDB tasks |\n| API Gateway v1            | 124 | REST APIs, integrations incl. real Lambda proxy, authorizers (Lambda + Cognito JWT) |\n| API Gateway v2            | 103 | HTTP APIs, routes, developer portals, authorizers (Lambda + Cognito JWT) |\n| Bedrock                   | 101 | Foundation models, guardrails, custom models, invocation/eval jobs |\n| Bedrock Runtime           | 10  | InvokeModel, Converse, streaming, configurable responses, fault inject |\n| Bedrock Agent             | 72  | Agents, aliases, action groups, knowledge bases, ingestion, prompt mgmt, flows |\n| Bedrock Agent Runtime     | 31  | InvokeAgent, Retrieve, RetrieveAndGenerate, InvokeFlow, streaming |\n| ECR                       | 58  | Full API, real OCI v2 push/pull, lifecycle, scanning, pull-through |\n| ECS                       | 76  | Full API, real task execution, services + rolling deploys, task sets, ECS Exec |\n| Elastic Load Balancing v2 | 51  | ALB/NLB/GWLB control plane, mTLS trust stores, in-process HTTP data plane for ALBs |\n| CloudFront                | 147 | Distributions, functions, policies, KVS, FLE, connection groups; full config round-trip |\n| Route 53                  | 71  | Full control plane: zones, RRsets, health checks, traffic policies, DNSSEC, VPC assoc |\n| WAF v2                    | 55  | Full control plane: WebACLs/RuleGroups/IPSets, CheckCapacity, managed rule catalog |\n| Application Auto Scaling  | 14  | Scalable targets + step/target/predictive policies + scheduled actions, 13 namespaces |\n| Athena                    | 70  | Workgroups, data catalogs, query executions (synthesized results), notebooks, sessions |\n| ACM (Certificate Manager) | 17  | Public-cert lifecycle, DNS/EMAIL validation, import/export, tags |\n| Glue                      | 265 | Full control plane; Data Catalog shared with Athena; execution synthesized (no Spark) |\n| Firehose                  | 12  | Delivery stream control plane; data plane stops at acknowledgement |\n| Organizations             | 63  | Full control plane, real SCP enforcement under `FAKECLOUD_IAM=strict` |\n| EC2                       | 767 | Full 767-op control plane; instances run as real Docker/Podman/k8s with per-subnet isolation |\n\nPer-service docs and feature matrices: [fakecloud.dev/docs/services](https://fakecloud.dev/docs/services).\n\n## Compared to LocalStack Community\n\n| Feature                   | fakecloud                                                              | LocalStack Community (post-March 2026) |\n| ------------------------- | --------------------------------------------------------------------- | -------------------------------------- |\n| License                   | AGPL-3.0                                                               | Proprietary |\n| Auth required             | No                                                                     | Yes (account + token) |\n| Commercial use            | Free                                                                   | Paid plans only |\n| Docker required           | No (standalone binary)                                                 | Yes |\n| Startup time              | ~300ms                                                                 | ~3s |\n| Idle memory               | ~10 MiB                                                                | ~150 MiB |\n| Install size              | ~19 MB binary                                                          | ~1 GB Docker image |\n| Test assertion SDKs       | TypeScript, Python, Go, PHP, Java, Rust                               | Python, Java |\n| Cognito User Pools        | 122 ops                                                                | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n| SES v2 + inbound          | Full send/templates/DKIM + real receipt-rule execution               | Paid only / [stored but never executed](https://docs.localstack.cloud/user-guide/aws/ses/) |\n| RDS                       | 163 ops, 6 real engines via Docker, lambda + s3 extensions           | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n| ElastiCache               | 75 ops, real Redis/Valkey/Memcached                                  | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n| API Gateway v1 / v2       | 124 / 103 ops, real Lambda proxy data plane                          | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n| Bedrock                   | 214 ops across 4 APIs                                                 | Not available |\n| ECR / ECS                 | 58 / 76 ops, real `docker push`/`pull`, real task execution         | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n| Elastic Load Balancing v2 | 51 ops incl. mTLS + in-process HTTP data plane                       | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n| CloudFront                | 147 ops, full distribution config round-trip                         | [Paid only](https://docs.localstack.cloud/references/licensing/) |\n\n\u003e Performance numbers measured on Apple M1 via `time fakecloud`, `ps -o rss`, `ls -lh`.\n\n## First-party SDKs\n\nNormal AWS SDKs handle your application code. fakecloud's own SDKs let your tests assert on what happened: sent emails, SNS messages, Lambda invocations, Bedrock calls, and more.\n\n| Language   | Install                                         |\n| ---------- | ----------------------------------------------- |\n| TypeScript | `npm install fakecloud`                         |\n| Python     | `pip install fakecloud`                         |\n| Go         | `go get github.com/faiscadev/fakecloud/sdks/go` |\n| PHP        | `composer require fakecloud/fakecloud`          |\n| Java       | `dev.fakecloud:fakecloud` (Maven Central)       |\n| Rust       | `cargo add fakecloud-sdk`                       |\n\n```ts\nimport { FakeCloud } from \"fakecloud\";\n\nconst fc = new FakeCloud();\n\n// Your app sends through the normal AWS SDK.\n// Your test asserts the side effect directly.\nconst { emails } = await fc.ses.getEmails();\nexpect(emails).toHaveLength(1);\n\nawait fc.reset();\n```\n\nFull SDK reference for all six languages: [fakecloud.dev/docs/sdks](https://fakecloud.dev/docs/sdks).\n\n## Use with AI coding tools\n\nAdd one of these snippets to your project so AI coding assistants (Claude Code, Cursor, GitHub Copilot) automatically use fakecloud for AWS integration tests.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eClaude Code\u003c/strong\u003e — add to \u003ccode\u003eCLAUDE.md\u003c/code\u003e\u003c/summary\u003e\n\n```markdown\n## AWS Testing\n\nFor integration tests, use fakecloud as a local AWS emulator.\n\n- Install: `curl -fsSL https://fakecloud.dev/install.sh | bash`\n- Run: `fakecloud` (listens on http://localhost:4566)\n- Configure AWS SDK endpoint to http://localhost:4566 with dummy credentials (access_key=test, secret_key=test)\n- Docs: https://fakecloud.dev/llms.txt\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eCursor\u003c/strong\u003e — add to \u003ccode\u003e.cursor/rules\u003c/code\u003e\u003c/summary\u003e\n\n```\nFor AWS integration tests, use fakecloud (local AWS emulator) at http://localhost:4566.\nInstall: curl -fsSL https://fakecloud.dev/install.sh | bash\nRun: fakecloud\nUse dummy credentials (access_key=test, secret_key=test).\nDocs: https://fakecloud.dev/llms.txt\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGitHub Copilot\u003c/strong\u003e — add to \u003ccode\u003e.github/copilot-instructions.md\u003c/code\u003e\u003c/summary\u003e\n\n```markdown\n## AWS Testing\n\nUse fakecloud as a local AWS emulator for integration tests.\n\n- Run: `fakecloud` (listens on http://localhost:4566)\n- Configure endpoint_url to http://localhost:4566 with dummy credentials\n- Docs: https://fakecloud.dev/llms.txt\n```\n\n\u003c/details\u003e\n\n## Docs and guides\n\n- **[fakecloud.dev](https://fakecloud.dev)** — website\n- **[Getting started](https://fakecloud.dev/docs/getting-started)** — install, first test, SDK setup\n- **[Guides](https://fakecloud.dev/docs/guides)** — in-depth how-tos (testing Bedrock, cross-service integration, CI setup)\n- **[Reference](https://fakecloud.dev/docs/reference)** — configuration, introspection endpoints, persistence, [image signature verification](https://fakecloud.dev/docs/reference/security/#image-supply-chain-cosign--trivy)\n- **[Blog](https://fakecloud.dev/blog)** — essays and hot takes on testing, AWS, and AI-assisted development\n\n## Contributing\n\nContributions welcome. Fork, branch, write tests, open a PR.\n\n- Conventional commits (`feat:`, `fix:`, `chore:`, `test:`, `refactor:`)\n- E2E tests for every new action\n- `cargo test --workspace \u0026\u0026 cargo clippy --workspace -- -D warnings \u0026\u0026 cargo fmt --check`\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for more.\n\n## License\n\nfakecloud is free and open-source, licensed under [AGPL-3.0-or-later](https://www.gnu.org/licenses/agpl-3.0.html). Using fakecloud as a dev/test dependency has zero AGPL implications for your application — the copyleft clause only applies if you modify and redistribute fakecloud itself as a network service.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Part of the \u003ca href=\"https://faisca.dev\"\u003efaisca\u003c/a\u003e project family | \u003ca href=\"https://fakecloud.dev\"\u003efakecloud.dev\u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaiscadev%2Ffakecloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaiscadev%2Ffakecloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaiscadev%2Ffakecloud/lists"}