PitchHut logo
A free, open-source local AWS emulator for seamless development.
Pitch

MiniStack offers a completely free and open-source alternative to LocalStack, enabling developers to emulate AWS services locally without the hassle of accounts or licenses. With quick startup, low resource usage, and compatibility with popular SDKs, MiniStack empowers developers to build and test applications efficiently.

Description

MiniStack - A Free and Open-Source Local AWS Emulator

MiniStack is a comprehensive, fully open-source local AWS emulator designed to replace LocalStack, which has transitioned to a paid model. This tool provides a convenient, cost-free alternative for developers needing a local environment to test AWS-compatible applications.

Key Features

  • Support for 20 AWS Services: MiniStack emulates a wide range of AWS services all accessible through a single port (4566).
  • Drop-in Compatibility: Seamlessly integrates with popular tools including boto3, AWS CLI, Terraform, CDK, and Pulumi.
  • Realistic Infrastructure: Launches genuine database containers for RDS, actual Redis for ElastiCache, and executes real SQL queries via Athena using DuckDB, alongside functioning Docker containers for ECS.
  • Minimal Footprint: The Docker image is approximately 150MB, consuming only about 30MB of RAM when idle, significantly smaller than the LocalStack's requirements.
  • Rapid Startup: Get started in under 2 seconds, enhancing productivity during development.

MiniStack is MIT licensed, permitting unrestricted use, forking, and contribution.

Quick Start Guide

To run MiniStack using Docker, execute:

# Preferred method: Pull from Docker Hub
docker run -p 4566:4566 nahuelnucera/ministack

# Alternatively, clone and build from source
git clone https://github.com/Nahuel990/ministack
cd ministack

# Initialize using Docker Compose (with Redis sidecar)
docker compose up -d

# Health check
curl http://localhost:4566/_localstack/health

Using MiniStack with AWS CLI

Configure a local AWS CLI profile and specify the endpoint:

# One-time configuration
aws configure --profile local
# Set up with credentials
# AWS Access Key ID: test
# AWS Secret Access Key: test
# Default region: us-east-1

# Commands with endpoint URL
aws --endpoint-url=http://localhost:4566 s3 mb s3://my-bucket
aws --endpoint-url=http://localhost:4566 s3 cp ./file.txt s3://my-bucket/
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name my-queue

Boto3 Integration Example

Integrate MiniStack with the boto3 library in Python:

import boto3

def client(service):
    return boto3.client(
        service,
        endpoint_url="http://localhost:4566",
        aws_access_key_id="test",
        aws_secret_access_key="test",
        region_name="us-east-1",
    )

# Example of S3 operations
s3 = client("s3")
s3.create_bucket(Bucket="my-bucket")
s3.put_object(Bucket="my-bucket", Key="hello.txt", Body=b"Hello, MiniStack!")

MiniStack supports a variety of core and extended AWS services, allowing for comprehensive testing and development workflows without incurring costs associated with cloud services.

Conclusion

MiniStack is geared towards developers requiring a local AWS-compatible environment that is free, efficient, and easy to integrate into existing workflows. With its small image size and extensive service compatibility, it stands out as a leading choice for local AWS emulation.

0 comments

No comments yet.

Sign in to be the first to comment.