Light, fluffy, and always free - AWS Local Emulator
1M+
Any Cloud. Locally.
Light, fluffy, and always free: the AWS local emulator
A free, open-source local AWS emulator for development, testing, and CI. No account. No auth token. No feature gates.
Point your AWS SDK, CLI, Terraform, OpenTofu, or CDK at http://localhost:4566 and keep your existing workflows. Already on LocalStack? Swap the image and keep going.
| Emulator | Cloud | Port |
|---|---|---|
| floci | AWS | 4566 |
| floci-az | Azure | 4577 |
| floci-gcp | GCP | 4588 |
| floci-oci | OCI | 4599 |
floci start
eval $(floci env)
aws s3 mb s3://my-bucket
aws dynamodb list-tables
services:
floci:
image: floci/floci:latest
ports:
- "4566:4566"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
export AWS_ENDPOINT_URL=http://localhost:4566
export AWS_DEFAULT_REGION=us-east-1
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
Any region works. Credentials can be any non-empty values unless you enable stricter service-specific auth checks.
LocalStack's community edition sunset in March 2026, requiring auth tokens and freezing security updates. Floci is the no-strings-attached alternative.
| Capability | Floci | LocalStack Community |
|---|---|---|
| Auth token required | No | Yes |
| Security updates | Yes | Frozen |
| Startup time | ~24 ms | ~3.3 s |
| Idle memory | ~13 MiB | ~143 MiB |
| Image size | ~90 MB | ~1.0 GB |
| License | MIT | Restricted |
| API Gateway v2, Cognito | Yes | No |
| RDS, ElastiCache, MSK, Neptune, DocumentDB | Real Docker | No |
| ECS, EC2, EKS, CodeBuild | Real Docker | No |
| Category | Services |
|---|---|
| Core app services | S3, SQS, SNS, DynamoDB, Lambda, IAM, KMS, Secrets Manager, SSM |
| Events and workflows | EventBridge, Pipes, Scheduler, Step Functions, SWF, CloudWatch Logs and Metrics, RUM, Managed Prometheus |
| API and identity | API Gateway REST and v2, AppSync, Cognito, ACM, Route53, Route 53 Resolver, Cloud Map |
| Containers and compute | ECS, EC2, Lightsail, EKS, MWAA, ECR, EFS, CodeBuild, CodeDeploy, CodePipeline, Batch, Auto Scaling, Beanstalk, ELB |
| Data, analytics, and AI | Athena, Glue, EMR, Redshift, Firehose, Managed Flink, OpenSearch, S3 Tables, S3 Vectors, Bedrock Runtime, Bedrock AgentCore, and more |
| Databases and caching | RDS, RDS Data API, Neptune, DocumentDB, MemoryDB, ElastiCache |
| Messaging and transfer | SES, Kinesis, MSK, Amazon MQ, Transfer Family, IoT Core, Connect |
| Security and governance | WAF v2, GuardDuty, CloudTrail, CloudFront, Organizations, Control Tower, Service Catalog, and more |
| Cost and billing | Pricing, Cost Explorer, Cost and Usage Reports, BCM Data Exports |
| Resilience and config | FIS, Backup, Config, AppConfig, CloudFormation, Cloud Control API |
Full operation-level detail: floci.io/floci/services
Real Docker where fidelity matters: Lambda, RDS, Neptune, DocumentDB, ElastiCache, MemoryDB, MSK, Amazon MQ, ECS, EC2, EKS, MWAA, OpenSearch, ECR, CodeBuild, and Managed Flink run real containers. Mount /var/run/docker.sock to enable them.
| Module | SDK / Tool | Tests |
|---|---|---|
sdk-test-java | AWS SDK for Java v2 | 1,326 |
sdk-test-node | AWS SDK for JavaScript v3 | 449 |
sdk-test-python | boto3 | 311 |
sdk-test-awscli | AWS CLI v2 | 205 |
sdk-test-go | AWS SDK for Go v2 | 157 |
compat-terraform | Terraform v1.10+ | 67 |
compat-opentofu | OpenTofu v1.9+ | 41 |
compat-cdk | AWS CDK v2+ | 20 |
2,576 automated compatibility tests across 5 SDKs and 3 IaC tools.
| Language | Package | Latest |
|---|---|---|
| Java | io.floci:testcontainers-floci | 1.14.0 (Testcontainers 1.x), 2.15.0 (2.x / Spring Boot 4.x) |
| Node.js | @floci/testcontainers | 0.1.0 |
| Python | testcontainers-floci | 0.1.1 |
| Go | In progress | N/A |
Drop-in replacement. Same port, credentials, and endpoint pattern.
image: floci/floci:latest # was localstack/localstack
image: floci/floci:latest-compat # if init scripts need AWS CLI or boto3
LocalStack env vars are translated automatically (LOCALSTACK_HOST, PERSISTENCE, LAMBDA_DOCKER_NETWORK, DEBUG). Init scripts under /etc/localstack/init/ run unchanged, /_localstack/health is served, and the log ends with a LocalStack-style Ready. line. Set LOCALSTACK_PARITY=false to opt out.
| Variable | Default | Description |
|---|---|---|
FLOCI_PORT | 4566 | Port exposed by the API |
FLOCI_DEFAULT_REGION | us-east-1 | Default AWS region |
FLOCI_DEFAULT_ACCOUNT_ID | 000000000000 | Default AWS account ID |
FLOCI_BASE_URL | http://localhost:4566 | Base URL for returned service URLs |
FLOCI_HOSTNAME | (unset) | Hostname in returned URLs (multi-container Compose) |
FLOCI_STORAGE_MODE | memory | memory, persistent, hybrid, or wal |
FLOCI_STORAGE_PERSISTENT_PATH | ./data | Directory for persisted state |
Full reference: floci.io/floci/configuration
Multi-account isolation: a 12-digit AWS_ACCESS_KEY_ID is used as the account ID, and resources are invisible across accounts. STS temporary credentials resolve to the assumed role's account.
| Channel | Standard | With AWS CLI and boto3 |
|---|---|---|
| Release, floating | latest | latest-compat |
| Release, pinned | x.y.z | x.y.z-compat |
| Nightly | nightly, nightly-mmddyyyy | nightly-compat |
Stable releases ship on the 1st and 3rd Tuesday of each month. nightly tracks main.
MIT. Use it however you want.
Content type
Image
Digest
sha256:e97cd0c1d…
Size
79.3 MB
Last updated
6 days ago
docker pull floci/flociPulls:
363,902
Sep 28 to Oct 4