ministack  by ministackorg

Local AWS emulator for cloud development and testing

Created 3 months ago
3,552 stars

Top 13.3% on SourcePulse

GitHubView on GitHub
Project Summary

MiniStack: Local AWS Emulator

MiniStack provides a free, open-source, and MIT-licensed local emulator for over 60 AWS services, designed as a direct alternative to LocalStack Community. It targets developers, researchers, and power users who require a robust local environment for developing and testing cloud-native applications, CI/CD pipelines, and infrastructure-as-code deployments without incurring cloud costs. Its key benefits include a small footprint, rapid startup times, and compatibility with standard AWS tools and SDKs.

How It Works

MiniStack emulates AWS services on a single port (defaulting to 4566), offering compatibility with AWS CLI, boto3, Terraform, CDK, and Pulumi. Its core innovation lies in its hybrid approach: while many services use in-memory state, critical components like RDS (Postgres/MySQL), ElastiCache (Redis), ECS (Docker containers), Athena (DuckDB), and Bedrock (via proxy to Ollama/vLLM) leverage real infrastructure for enhanced fidelity. It supports multi-account and multi-region isolation, mimicking AWS's architecture by scoping state based on access keys and region scopes.

Quick Start & Requirements

  • Primary install/run:
    • PyPI: pip install ministack then ministack
    • Docker: docker run -p 4566:4566 ministackorg/ministack
    • Docker (with real infrastructure): docker run -p 4566:4566 -v /var/run/docker.sock:/var/run/docker.sock ministackorg/ministack
  • Prerequisites: Docker is required for services utilizing real infrastructure (RDS, ECS, EKS, Lambda containers).
  • Resource footprint: Approximately 270MB image size and ~30MB RAM at idle.
  • Documentation: Available at ministack.org.

Highlighted Details

  • Emulates 60+ AWS services, including RDS, ElastiCache, ECS, Lambda, S3, SQS, SNS, DynamoDB, and Bedrock.
  • Supports multi-account and multi-region isolation for resources.
  • Integrates with real LLMs (via Ollama, llama.cpp, vLLM) for Bedrock emulation.
  • Provides real database instances (Postgres, MySQL) and Redis for ElastiCache.
  • Runs real Docker containers for ECS tasks.
  • Offers Athena query execution via DuckDB (requires the full image).
  • Fast startup (< 2 seconds) and a minimal resource footprint.
  • Compatible with AWS CLI, boto3, Terraform, CDK, and Pulumi.
  • Includes internal APIs for test automation (reset, health checks, SES/SQS inspection).

Maintenance & Community

The project is maintained by "MiniStack Contributors." While a LinkedIn profile is mentioned, direct links to community forums, Slack, or Discord channels are not explicitly provided in the README.

Licensing & Compatibility

MiniStack is released under the permissive MIT license, allowing free use, modification, and distribution without restrictions, including for commercial purposes.

Limitations & Caveats

State is not yet isolated per region for all services; S3, SNS, IAM/STS, EC2, Kinesis, EventBridge, ECS, ECR, EKS, EFS, KMS, Glue, Athena, API Gateway v1/v2, Cognito, CloudFormation, CloudFront, Route 53, ElastiCache, EMR, Firehose, SES, CodeBuild, AutoScaling, WAF, ACM, Backup, Organizations, EventBridge Scheduler, Transfer Family, AppSync, CloudTrail, and other control-plane services share state across regions within an account. CloudFront Functions are currently API stubs. EKS requires Docker socket access and runs k3s with --privileged mode. AmazonMQ is control-plane only.

Health Check
Last Commit

2 days ago

Responsiveness

Inactive

Pull Requests (30d)
122
Issues (30d)
53
Star History
353 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.