🧭 Decision Guide
Why trending now: The README cites the LocalStack Community Edition sunset in March 2026, its auth-token requirement, and frozen security updates; Floci contrasts this with MIT licensing, no token, and roughly 24 ms startup. Together with 482 stars added on 2026-11-04, the material supports these as attention factors but does not prove a single cause.
Try it if you
-
You need to run AWS CLI, Terraform, CDK, or OpenTofu locally or in CIThe README's What is Floci? and Compatibility Testing sections list AWS CLI, Terraform, CDK, OpenTofu, and 2,576 compatibility tests.
-
You need a local environment without an AWS account, auth token, or paid feature gatesThe What is Floci? and Features sections state that no cloud account, auth token, or paid feature gates are required.
-
Your tests involve container execution for Lambda, RDS, ECS, Neptune, or MSKThe Features and Architecture Overview sections state that these services use real Docker-backed execution through the Docker API and Docker Engine.
-
You are migrating from LocalStack and want to keep existing AWS workflowsThe What is Floci? section calls Floci a drop-in replacement and references the Migrating from LocalStack section.
Skip it if you
-
Your validation target is real AWS cloud behavior rather than local emulation at localhost:4566The What is Floci? section explicitly defines Floci as a local AWS emulator running at localhost:4566.
-
You need Docker-backed Lambda, RDS, or ECS execution but the environment cannot use Docker EngineThe Architecture Overview shows Container Services connecting to Docker Engine through the Docker API, and Features specifies real Docker-backed execution.
-
You depend on the old hectorvent/floci image and will not update the image nameThe Quick Start section says the old hectorvent/floci repository no longer receives updates and shows migration to floci/floci:latest.
Requirements
- Use floci start with the official CLI; the README also provides a standalone floci-aws binary for Linux, macOS, and Windows.
- The Docker Compose path exposes 4566:4566 and runs docker compose up.
- Standard AWS tools connect to http://localhost:4566; credentials may be any non-empty values unless stricter service-specific auth checks are enabled.
First step (verbatim from README)
floci start
Watch out
-
A custom Web Console must follow the Floci console contract, including GET /api/health and AWS_ENDPOINT_URL.Running a different console states that a custom console must listen on PORT, provide GET /api/health, and connect through AWS_ENDPOINT_URL.
-
When StackPort listens on 8080, set FLOCI_SERVICES_UI_PORT and INTERNAL_PORT.The Running a different console section sets both 8080 port variables in the StackPort example.
-
Default non-empty credentials do not mean every service skips authentication checks.The Quick Start section allows any non-empty credentials except when stricter service-specific auth checks are explicitly enabled.
Not stated in the README
- The README does not provide the complete Supported Services list, so full support for a target AWS service cannot be confirmed.
- The README does not state the exact component version requirements for Java, Python, Shell, TypeScript, and Go.
- The Persistence and Storage Modes section is not provided, so the concrete limitations of memory, hybrid, persistent, and wal modes cannot be compared.
- The README does not state the release date or change scope of 2.4.0 or how it maps to the 2,576 compatibility tests.
- The README does not provide an installation command or runtime dependencies for the native floci-aws binary.
💡 Deep Analysis
6
Yes
I am developing S3, DynamoDB, and SQS integrations with AWS SDKs and need to run tests locally without an AWS account while keeping my existing SDK calls unchanged; is Floci suitable?
Yes, Floci is suitable because it exposes an AWS-compatible endpoint and lets you keep existing SDK calls.
- The “What is Floci?” section says AWS SDKs, the AWS CLI, Terraform, CDK, OpenTofu, and test suites can target
http://localhost:4566. - “Quick Start” demonstrates S3 bucket creation and DynamoDB table creation and listing, matching your service combination.
- No AWS account, auth token, or paid feature gate is required; credentials may be any non-empty values.
- The architecture lists S3 and DynamoDB as stateful services backed by configurable storage modes, so you can choose memory or persistence according to the test flow.
However, the README does not establish complete equivalence for every SDK version, error code, concurrency sequence, or IAM behavior.
- What is Floci?: "Point your AWS SDK, CLI, Terraform, CDK, OpenTofu, or test suite at http://localhost:4566"
- Quick Start: "aws s3 mb", "aws dynamodb create-table", and "aws dynamodb list-tables"
- Quick Start: "Credentials can be any non-empty values"
- Architecture Overview: S3 and DynamoDB are listed under Stateful Services
floci start
Yes
I use Terraform, OpenTofu, and CDK and already have a LocalStack workflow. Our team wants an MIT-licensed local AWS emulator without auth tokens while preserving existing IaC configuration as much as possible; is Floci suitable?
Yes, Floci directly matches your constraints and migration goal, although existing LocalStack configuration still needs review.
- “What is Floci?” describes it as a LocalStack drop-in replacement: swap the image and keep going.
- The same section lists Terraform, CDK, and OpenTofu as clients that can use the standard endpoint. “Features” also says Terraform can provision AWS-shaped resources locally through the standard HashiCorp AWS provider.
- “Why Floci?” lists the MIT license, no auth token requirement, and real Docker support for RDS, ElastiCache, MSK, ECS, EC2, and EKS, along with API Gateway v2 and Cognito support.
- The Compose example uses
floci/floci:latest, while the oldhectorvent/flocirepository no longer receives updates, so the image name must at least be changed.
This reduces migration entry cost, but does not mean initialization scripts, volumes, IAM behavior, or every resource parameter will remain unchanged.
- What is Floci?: "Already using LocalStack? Floci is a drop-in replacement: swap the image and keep going."
- What is Floci?: "AWS SDK, CLI, Terraform, CDK, OpenTofu"
- Features: Terraform uses the standard HashiCorp AWS provider
- Why Floci?: "License | MIT" and "Auth token required | No"
- Quick Start: "The old hectorvent/floci repository no longer receives updates."
docker compose up
Yes
My CI pipeline cannot depend on an AWS account or auth token, and it needs to test SQS, Lambda, and API Gateway while keeping startup time and idle memory low; is Floci suitable?
Yes, Floci is a good fit for a CI simulation layer that should not require a cloud account, but Lambda tests require Docker Engine.
- The “Features” section explicitly targets development, testing, and CI without a cloud account, auth token, or paid feature gate.
- “Why Floci?” reports approximately 24 ms startup for the native image and approximately 13 MiB idle memory, matching short-lived CI jobs with tight resource budgets.
- The architecture lists SQS and API Gateway as supported services. Lambda is under Container Services, and “Real Docker where fidelity matters” says Lambda uses real Docker-backed execution rather than a shallow mock.
- Standalone native binaries are released for Linux, macOS, and Windows, but that does not mean container-backed services work completely without Docker.
Thus, lightweight API tests can use the low-overhead runtime, while Lambda jobs must provide Docker permissions, images, and network resources.
- Features: "Floci is a free, open-source local AWS emulator for development, testing, and CI"
- Features: "without an AWS account, an auth token, or paid feature gates"
- Why Floci?: "Startup time ~24 ms" and "Idle memory ~13 MiB"
- Features: "Lambda ... use real Docker-backed execution"
- Quick Start: the standalone floci-aws binary supports Linux, macOS, and Windows
floci start
Yes
My tests must cover multiple AWS regions and partitions and verify multi-account isolation, while keeping all requests on one local endpoint; is Floci suitable?
Yes, Floci is suitable because it explicitly supports one local endpoint, published AWS regions, all partitions, and multi-account isolation.
- “Quick Start” says all AWS services are available through
http://localhost:4566and that any published AWS region works in every partition. - The project insights list multi-account isolation plus different AWS region and partition configurations, directly matching your test dimensions.
- The README says credentials may be any non-empty values, with stricter service-specific auth checks optionally enabled. This allows different test-account configurations, but the permissive default should not be treated as real IAM behavior.
- The unified endpoint and AWS wire-protocol routing layer allow existing SDK, CLI, and test workflows to remain in place while region and account context are changed through client configuration.
It is appropriate for application branches involving accounts, regions, and partitions, but real organization policies, VPC behavior, quotas, and regional service differences are outside the local simulation scope.
- Quick Start: "All AWS services are available at http://localhost:4566"
- Quick Start: "Any published AWS region works, in every partition."
- Project insights, solution_analysis: supports multi-account isolation and different AWS region and AWS partition configurations
- Quick Start: "Credentials can be any non-empty values unless you explicitly enable stricter service-specific auth checks."
eval $(floci env)
It depends
I do not have Docker on my Linux, macOS, or Windows development machine, but I need to validate local S3 and DynamoDB flows with the AWS CLI; can I still use Floci?
It depends: Floci provides a no-Docker native-binary path, but that does not make every Docker-backed service available without Docker.
- “Quick Start” says every release ships a standalone
floci-awsbinary for Linux, macOS, and Windows, so basic local execution does not necessarily require Docker. - The same section demonstrates AWS CLI operations for creating an S3 bucket, creating a DynamoDB table, and listing tables, which matches your required flow.
- “Real Docker where fidelity matters” assigns Lambda, RDS, ECS, EC2, EKS, MSK, and other services to real Docker execution. Tests involving those services are therefore constrained without Docker.
- The project describes the native binary as approximately 40 MB, while “Why Floci?” reports approximately 24 ms startup and 13 MiB idle memory, fitting a lightweight development environment.
You can therefore try the native binary for S3 and DynamoDB CLI flows; expanding to Lambda or database containers will still require Docker.
- Quick Start: "Each release also ships a standalone floci-aws binary for Linux, macOS and Windows"
- Quick Start: AWS CLI examples for S3 and DynamoDB
- Features: "Lambda, RDS, ... ECS ... use real Docker-backed execution"
- Why Floci?: "Native binary | ~40 MB", "Startup time | ~24 ms", and "Idle memory | ~13 MiB"
floci start
It depends
My project is primarily Java, integration tests start application containers through Testcontainers, and I need to validate Lambda, RDS, and ECS; is Floci suitable as a containerized test dependency?
It depends: the service coverage and Docker-backed execution fit well, but Testcontainers networking, Docker permissions, and nested-container setup determine whether it will work smoothly.
- The project data identifies Java as the main language, and the README says Lambda, RDS, and ECS use real Docker-backed execution, which is useful for validating container and runtime interactions.
- The architecture shows Floci listening on port 4566 and communicating with Docker Engine through the Docker API. An application container must not assume that
localhost:4566points to the host or the Floci container. - The Docker Compose example exposes port 4566, demonstrating a containerized integration path, but it does not automatically solve Testcontainers network discovery or Docker socket permissions.
- The project topics include
testcontainers, but that shows project focus, not that your Java test configuration requires no changes.
For ordinary AWS API calls the integration should be simpler; real Lambda, RDS, and ECS execution imposes substantially stricter environment requirements.
- Project data: main_language is Java
- Features: "Lambda, RDS, ... ECS ... use real Docker-backed execution"
- Architecture Overview: Floci listens on port 4566 and connects to Docker Engine through the Docker API
- Quick Start: the Docker Compose example exposes "4566:4566"
- Project data: topics include "testcontainers"
docker compose up
✨ Highlights
-
Native image starts in about 24 ms with about 13 MiB idle memory
-
Covers 2,576 compatibility tests across SDKs and IaC tools
-
MIT-licensed with no account, auth token, or paid feature gates
-
Lambda, RDS, and ECS use real Docker-backed execution
🔧 Engineering
-
Start the AWS emulator with floci start and connect tools to localhost:4566
-
Works with AWS CLI, Terraform, CDK, OpenTofu, and AWS SDKs
-
Provides services including S3, DynamoDB, Cognito, and API Gateway v2
-
Supports in-memory, persistent, hybrid, and WAL storage backends
⚠️ Risks
-
Container services such as Lambda, RDS, and ECS depend on Docker Engine
-
The README lists 2,576 compatibility tests but does not cover every workflow
-
The old hectorvent/floci image is no longer updated; use floci/floci instead
-
Real AWS cloud behavior is outside Floci's local emulation scope
👥 For who?
-
Development teams running AWS CLI, Terraform, or CDK locally
-
Test projects using Java, Python, Node.js, or Go SDKs
-
CI workflows needing Docker-backed Lambda, RDS, or ECS execution