Comparison
HomeCloud vs LocalStack
Both run AWS APIs on your own machine. LocalStack emulates a very wide range of services; HomeCloud covers about 30 and runs each on a real engine, with IAM always enforced and a console built in. This is the side-by-side, including the rows where LocalStack wins.
We maintain HomeCloud, so read this with that in mind. We have tried to state LocalStack's strengths as plainly as our own, and the source for every row is our comparison document, which also covers moto, MinIO with k3s, OpenStack and the AWS free tier. LocalStack changes quickly: check its current documentation and licensing before deciding.
At a glance
| HomeCloud | LocalStack Community | LocalStack Pro | |
|---|---|---|---|
| AWS APIs | About 30 services | Core services | The most services of any emulator |
| Behind the API | Real engines in Docker: Lambda runtime images, PostgreSQL/MySQL/MariaDB, Redis/Valkey, MinIO, nginx, CoreDNS | Emulation; some services start real containers (for example Lambda) | Emulation plus real engines for several services |
| IAM enforcement | On by default, one evaluator for every service | Not enforced | Available, opt-in |
| Web console | Built in, works offline, modeled on AWS's | Hosted web app, needs an account | Hosted web app |
| Persistence | State on disk by default; backup and restore commands | Ephemeral by default | Persistence and snapshots |
| Deployment | One Go binary plus Docker, or one image | One container | One container plus a licence |
| Regions / accounts | One region, one account | Many | Many |
| Multi-node | No (designed, not built) | No | No |
| Cost and licence | Free, AGPL-3.0, no paid tier | Free tier; check current terms | Paid subscription |
| Maturity | Young: first release September 2026 | Mature, large community | Mature, commercial support |
"Yes" in a row never means "the same as AWS". Every emulator has gaps; HomeCloud's are listed per service and per operation in docs/aws-compat.md.
Where HomeCloud is stronger
- Real workloads by default. RDS gives you a real PostgreSQL, MySQL or MariaDB; ElastiCache a real Redis or Valkey; EC2 instances are containers you can shell into, or QEMU/KVM virtual machines for two images; ECS services sit behind a real nginx load balancer; security groups really filter traffic. With LocalStack Community several of these services are not available, and with Pro the depth varies per service.
- IAM is always on. Requests from the CLI, SDKs, Terraform and the console go through one policy evaluator with resource policies, conditions, permissions boundaries and
iam:PassRole. A test that passes has at least been checked for the permissions it needs. - A console in the box, with CloudWatch metrics and logs for every resource and a CloudTrail record of every API call, so a failed run can be inspected rather than guessed at.
- Built to be left running: IAM users and access keys for a team or a class, backups, upgrades, TLS, a system service.
- Fully open source. Every feature is in the AGPL-3.0 code.
Where LocalStack is stronger
- Service coverage. LocalStack Pro covers far more services and operations. Kinesis, EKS, Athena, Glue, OpenSearch, REST API Gateway, WebSocket APIs and AppSync are not in HomeCloud.
- Multi-region and multi-account setups work. HomeCloud has
us-east-1and one account; cross-region features are refused. - Start-up time and footprint. A single container emulating services in-process is light. HomeCloud starts MinIO on first boot and real engines on demand, which takes longer and uses more memory.
- Ecosystem and maturity: years of production use, the
awslocal,tflocalandcdklocalwrappers, testing integrations, extensive documentation and commercial support.
The same test on each
A concrete way to see the difference is a test that depends on permissions. Give a user read-only access to S3 and try to write:
homecloud iam create-user reader --policy AmazonS3ReadOnlyAccess
homecloud iam create-access-key reader
# with reader's keys exported:
aws s3 cp ./report.csv s3://reports/ # fails with AccessDenied, as on AWS
On an emulator that does not enforce IAM, the same upload succeeds, and the missing permission shows up only after deployment. Conversely, if the test needs Kinesis, it cannot run on HomeCloud at all.
Other options
| Tool | Pick it when |
|---|---|
| moto | You want fast, in-process mocks for Python unit tests that reset between tests. |
| MinIO + k3s | You only need S3-compatible storage, plus Kubernetes for compute. |
| OpenStack | You need a multi-node private cloud with real VMs, and have people to run it. |
| AWS itself | You need exactly AWS's behavior. For final integration and staging tests, nothing replaces it. |
So which one?
Use HomeCloud when your stack fits within its services and you want real compute, enforced IAM, a console and persistent state on your own machine or server, for free. Use LocalStack when you need wider coverage, several regions or accounts, or the lightest possible container in CI. Many teams will reasonably use both. If you are moving tests over, the LocalStack alternative guide lists what to change; for specific workloads see Terraform, Lambda and self-hosting.
Spotted something out of date about LocalStack or HomeCloud? Open an issue or a pull request against docs/comparison.md.