Repo of the Day
localstack/localstack
Published: Mar 5, 2024
Open repository ↗💻 A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline
Summary
localstack/localstack is a Python-based AWS service emulator that runs as a single Docker container, letting developers exercise AWS APIs such as Lambda, S3, DynamoDB, SQS, and SNS entirely on a local machine without talking to AWS. The repository is marked archived and read-only: the team has consolidated development into a unified LocalStack image, with commercial "LocalStack for AWS" plans (including a free Hobby tier for non-commercial use) as the supported going-forward path.
What it is useful for
LocalStack is useful when you want to develop or test AWS-backed applications without paying for real AWS usage, waiting on network round-trips, or provisioning credentials. It emulates services including Lambda, S3, DynamoDB, Kinesis, SQS, SNS, API Gateway, CloudFormation, and CloudWatch, and the README points to a Feature Coverage page for the full list. Typical fits are iterating on CDK or Terraform configurations, running integration tests in CI, and experimenting with AWS APIs while learning them. Two documented caveats: a number of advanced APIs are only available in the paid version, and the local emulator is not a 1:1 replacement for real AWS, so production-side testing is still required.
How engineers can use it
The README documents three install paths for the CLI: Homebrew (brew install localstack/tap/localstack-cli), a downloaded binary, or PyPI (python3 -m pip install localstack). It requires a working Docker installation and must run as a non-root user. To start the container detached, run localstack start -d; localstack status services then prints which emulated services are available (the README shows ACM, API Gateway, CloudFormation, CloudWatch, Config, DynamoDB, etc.). For day-to-day interaction, the awslocal wrapper (installed separately per the README) lets you use familiar AWS CLI syntax against the local endpoint — for example, awslocal sqs create-queue --queue-name sample-queue returns a QueueUrl on localhost.localstack.cloud:4566 rather than an AWS-hosted one. Alternative runtime options listed in the README are plain Docker, Docker Compose, and Helm. Because this repository is archived, new bugs and feature requests are routed through the localstack organization's discussion categories; the README links to those, and to the docs site, for anything beyond the basic commands above.