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.

HomeCloud v0.4.0Updated 2026-10-116 min read

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 compared with LocalStack Community and LocalStack Pro
HomeCloudLocalStack CommunityLocalStack Pro
AWS APIsAbout 30 servicesCore servicesThe most services of any emulator
Behind the APIReal engines in Docker: Lambda runtime images, PostgreSQL/MySQL/MariaDB, Redis/Valkey, MinIO, nginx, CoreDNSEmulation; some services start real containers (for example Lambda)Emulation plus real engines for several services
IAM enforcementOn by default, one evaluator for every serviceNot enforcedAvailable, opt-in
Web consoleBuilt in, works offline, modeled on AWS'sHosted web app, needs an accountHosted web app
PersistenceState on disk by default; backup and restore commandsEphemeral by defaultPersistence and snapshots
DeploymentOne Go binary plus Docker, or one imageOne containerOne container plus a licence
Regions / accountsOne region, one accountManyMany
Multi-nodeNo (designed, not built)NoNo
Cost and licenceFree, AGPL-3.0, no paid tierFree tier; check current termsPaid subscription
MaturityYoung: first release September 2026Mature, large communityMature, 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-1 and 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, tflocal and cdklocal wrappers, 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:

shellHomeCloud
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

Other ways to run AWS without AWS
ToolPick it when
motoYou want fast, in-process mocks for Python unit tests that reset between tests.
MinIO + k3sYou only need S3-compatible storage, plus Kubernetes for compute.
OpenStackYou need a multi-node private cloud with real VMs, and have people to run it.
AWS itselfYou 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.