/localstack

๐Ÿ’ป A fully functional local AWS cloud stack. Develop and test your cloud & Serverless apps offline

Primary LanguagePythonOtherNOASSERTION

โšก Join the LocalStack Insiders program to help us shape the future of LocalStack! Test drive new features & engage in conversations with us so we can learn from your use cases โšก

LocalStack - A fully functional local cloud stack

CircleCI Coverage Status PyPI Version Docker Pulls PyPi downloads Backers on Open Collective Sponsors on Open Collective PyPI License Code style: black Twitter

LocalStack provides an easy-to-use test/mocking framework for developing cloud applications.

Overview โ€ข Install โ€ข Example โ€ข Run โ€ข Usage โ€ข Releases โ€ข Contributing
๐Ÿ“– Docs โ€ข ๐Ÿ’ป Pro version โ€ข โ˜‘๏ธ LocalStack coverage


Overview

LocalStack is a cloud service emulator that runs in a single container on your laptop or in your CI environment. With LocalStack, you can run your AWS applications or Lambdas entirely on your local machine without connecting to a remote cloud provider! Whether you are testing complex CDK applications or Terraform configurations, or just beginning to learn about AWS services, LocalStack helps speed up and simplify your testing and development workflow.

LocalStack supports a growing number of AWS services, like AWS Lambda, S3, Dynamodb, Kinesis, SQS, SNS, and many more! The Pro version of LocalStack supports additional APIs and advanced features. You can find a comprehensive list of supported APIs on our โ˜‘๏ธ Feature Coverage page.

LocalStack also provides additional features to make your life as a cloud developer easier! Check out LocalStack's Cloud Developer Tools for more information.

Installation

The quickest way get started with LocalStack is by using the LocalStack CLI. It allows you to start and manage the LocalStack Docker container from your command line. Please make sure that you have a working docker environment on your machine before moving on.

Brew (MacOS or Linux with Homebrew)

Install the LocalStack CLI by using our official LocalStack Brew Tap:

brew install localstack/tap/localstack-cli

Binary download (MacOS, Linux, Windows)

If you do not have Brew on your machine, you can directly download the pre-built LocalStack CLI binary for your system:

  • Download the latest release for your platform on localstack/localstack-cli.
  • Extract the archive to a folder in your PATH variable:
    • MacOS / Linux: sudo tar xvzf ~/Downloads/localstack-cli-*-darwin-*-onefile.tar.gz -C /usr/local/bin

Python package (MacOS, Linux, Windows)

LocalStack is built with Python. You can directly install the LocalStack CLI in your Python environment using pip.

Prerequisites

  • python (Python 3.8 up to 3.11 supported)

Installation

python3 -m pip install localstack

This installs the localstack-cli which is used to run the Docker image that hosts the LocalStack runtime. The awslocal CLI for interacting with the local AWS services is installed separately. See the awslocal documentation for installation instructions.

Important: Do not use sudo or run as root user. LocalStack must be installed and started entirely under a local non-root user. If you have problems with permissions in macOS High Sierra, install with pip install --user localstack

Example

Start LocalStack inside a Docker container by running:

 % localstack start -d

     __                     _______ __             __
    / /   ____  _________ _/ / ___// /_____ ______/ /__
   / /   / __ \/ ___/ __ `/ /\__ \/ __/ __ `/ ___/ //_/
  / /___/ /_/ / /__/ /_/ / /___/ / /_/ /_/ / /__/ ,<
 /_____/\____/\___/\__,_/_//____/\__/\__,_/\___/_/|_|

 ๐Ÿ’ป LocalStack CLI 2.3.0

[20:22:20] starting LocalStack in Docker mode ๐Ÿณ
[20:22:21] detaching

You can query the status of respective services on LocalStack by running:

% localstack status services
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Service                  โ”ƒ Status      โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ acm                      โ”‚ โœ” available โ”‚
โ”‚ apigateway               โ”‚ โœ” available โ”‚
โ”‚ cloudformation           โ”‚ โœ” available โ”‚
โ”‚ cloudwatch               โ”‚ โœ” available โ”‚
โ”‚ config                   โ”‚ โœ” available โ”‚
โ”‚ dynamodb                 โ”‚ โœ” available โ”‚
...

To use SQS, a fully managed distributed message queuing service, on LocalStack, run:

% awslocal sqs create-queue --queue-name sample-queue
{
    "QueueUrl": "http://localhost:4566/000000000000/sample-queue"
}

Learn more about LocalStack AWS services and using them with LocalStack's awslocal CLI.

Running

You can run LocalStack through the following options:

Usage

To start using LocalStack, check out our documentation at https://docs.localstack.cloud.

To use LocalStack with a graphical user interface, you can use the following UI clients:

Releases

Please refer to GitHub releases to see the complete list of changes for each release. For extended release notes, please refer to the LocalStack Discuss.

Contributing

If you are interested in contributing to LocalStack:

We are thankful for all the contributions and feedback we receive.

Get in touch

To get in touch with LocalStack team for bugs/feature requests, support questions or general discussions, please use:

Contributors

We are thankful to all the people who have contributed to this project.

Backers

We are also grateful to all our backers who have donated to the project. You can become a backer on Open Collective.

Sponsors

You can also support this project by becoming a sponsor on Open Collective. Your logo will show up here along with a link to your website.

License

Copyright (c) 2017-2023 LocalStack maintainers and contributors.

Copyright (c) 2016 Atlassian and others.

This version of LocalStack is released under the Apache License, Version 2.0 (see LICENSE). By downloading and using this software you agree to the End-User License Agreement (EULA). To know about the external software we use, look at our third party software tools page.