Back
Kevin Riedl

11 min read · 26 Jul 2026

Next

Floci vs LocalStack: AWS Emulator Review for CI in 2026

Floci is worth testing if you need fast, licence-free AWS integration tests, but it is not “the entire AWS cloud in 13 MB.” The project offers a useful local control plane, familiar AWS protocols and broad service coverage. Its own documentation also shows the boundaries: the 13 MiB number is idle memory, several services start real Docker containers, and a passing SDK test is not the same as production AWS fidelity.

Our buyer verdict: use Floci as a fast feedback layer, not as your only proof before deployment. Keep contract, IAM, networking and deployment tests in real AWS. Choose LocalStack when its commercial support and advanced tooling justify the licence. Choose AWS SAM when your scope is mainly Lambda and API Gateway.

We checked the public repository, service matrix, migration guide, compatibility suite and competitor documentation on 26 July 2026. This is an independent desk review, not a sponsored post or a hands-on performance benchmark.

Need a test strategy that stays fast without trusting a local emulator too far?

 Design the AWS Delivery Plan

What is Floci?

Floci is an MIT-licensed local AWS emulator. It listens on port 4566 and accepts requests from standard AWS SDKs, the AWS CLI, Terraform, OpenTofu and CDK when you point those clients at the local endpoint. Its default in-memory mode is aimed at disposable tests, while persistent, hybrid and write-ahead-log modes preserve state with different durability trade-offs.

Floci is written in Java and compiled to a native executable with Quarkus and GraalVM Mandrel. It is not a Go project. The native compilation removes JVM warm-up from the normal runtime, which explains the fast first-party startup result, but it does not turn every emulated AWS dependency into one in-process binary.

Are the viral Floci claims accurate?

ClaimWhat the primary sources sayVerdict
“The entire AWS cloud runs locally.”The canonical matrix listed 68 emulated services on 26 July 2026, each with a defined subset of operations. AWS has far more products and behavior than that matrix.False. It is broad emulation, not all of AWS.
“It is a single Go binary.”The repository is predominantly Java. Floci uses Quarkus Native and GraalVM Mandrel.False.
“The whole footprint is 13 MiB.”Floci publishes about 13 MiB idle memory, about 40 MB for the native executable and about 90 MB for the Docker image.Misleading. RAM, binary size and image size are different metrics.
“It boots 45 services in under one second.”The current project claims about 24 ms startup and now counts 68 services. These are first-party measurements, not our independent benchmark.Plausible first-party result, with an outdated service count.
“Existing SDK code works untouched.”Clients still need local credentials, region and endpoint configuration. LocalStack migrations can often keep port 4566 and existing client code, but the migration guide lists behavioral and configuration differences.Mostly true for application calls, not literally zero configuration.
“There are zero dependencies and no daemon.”Docker is the recommended distribution. Lambda always executes in Docker, and RDS, ElastiCache, ECS, EC2, EKS, MSK, OpenSearch and other higher-fidelity services use container-backed engines.False for the full advertised feature set.
“Everything is open source with no paid tier.”The repository uses the MIT licence and the project advertises no feature gates or commercial tier.True as of the research date, with no warranty or paid support promise.

The most reliable current service count is the canonical Floci service matrix, not launch posts. Even Floci's own pages can drift: the migration guide still refers to 58 services while the canonical matrix says 68. Pin the version you test and read the operation list for every service your application actually calls.

Does 1,925 out of 1,925 mean AWS parity?

No. Floci's public compatibility suite runs real Java, Node.js, Python, Go and Rust SDK clients, the AWS CLI, Terraform, OpenTofu and CDK against a live Floci instance. That is meaningful evidence that the tested requests serialize, execute and deserialize correctly.

It is not a differential suite that runs the same cases against production AWS and proves identical results. The suite's README says it verifies standard tooling against the emulator. It does not claim to cover every operation, error, authorization edge, event ordering rule, retry path, quota or eventual-consistency behavior.

EvidenceWhat it provesWhat it does not prove
1,925 passing project testsThe pinned Floci build passes the project's tested SDK and IaC scenarios.Complete AWS API or behavioral parity.
Real Docker-backed enginesSome compute, database and streaming paths use real underlying software.Identical managed-service control planes, limits, networking or failure modes.
Same port and AWS wire protocolsExisting clients can often switch endpoints with little application change.Every LocalStack init script, environment variable or inspection path behaves identically.

The correct acceptance criterion is not “the service exists.” It is “our required operations, response fields, errors, permissions and side effects match closely enough for this test layer.”

Floci vs LocalStack vs AWS SAM vs real AWS

OptionBest fitCommercial model checked 26 July 2026Main trade-off
FlociFast local and CI integration tests across a broad, defined AWS subsetMIT licence, no paid tier or auth token advertisedYou validate fidelity and carry more adoption risk yourself.
LocalStackTeams that want broad emulation, commercial support and advanced local-cloud toolingHobby is free for non-commercial use. Base was $39 per user monthly when billed annually or $45 monthly; Ultimate was $89 per user monthly when billed annually.Commercial use needs a paid plan, and an account plus auth token are required.
AWS SAM CLILambda and API Gateway development around SAM, CloudFormation or synthesized CDK templatesOpen-source CLI; normal AWS charges apply when you test or deploy in the cloudIt is focused serverless tooling, not a broad local AWS control plane.
Real AWS test accountContract, IAM, network, quota and deployment confidencePay for AWS resources and the platform work to isolate, seed and clean environmentsSlower feedback, credentials, cleanup, concurrency and variable cloud cost.

LocalStack changed its packaging on 23 March 2026. Its current licensing documentation separates non-commercial Hobby use from Base, Ultimate and Enterprise commercial plans. Its pricing page should be rechecked before budgeting because prices and plan entitlements can change.

AWS SAM local is the official narrow option. It can invoke Lambda functions and run API Gateway locally. AWS explicitly warns that local testing does not validate everything, including permissions between cloud resources, and recommends testing in the cloud where possible.

When should you choose Floci?

Your situationDecisionReason
Your integration suite uses Floci-supported S3, DynamoDB, SQS, SNS, Lambda or event workflows and CI startup matters.Pilot FlociThe fast native control plane and in-memory state target this workload directly.
You are replacing LocalStack Community and already use port 4566, dummy credentials and standard SDK endpoint overrides.Pilot an image swapFloci translates several LocalStack variables and preserves common health and init paths.
You need enterprise support, advanced AWS replication, governance or a vendor accountable for compatibility.Evaluate paid LocalStackLicence cost may be cheaper than owning emulator gaps internally.
You only need local Lambda invocation and API Gateway routes.Start with AWS SAMThe official tool is narrower and aligns directly with the serverless workflow.
Your release depends on exact IAM denial behavior, VPC networking, quotas, regional differences or eventual consistency.Test in real AWSA local emulator should not be the final authority for managed-cloud behavior.

How do you migrate from LocalStack to Floci safely?

  1. Inventory operations, not service names. Record every AWS client, API action, event source, inspection endpoint, init hook and Terraform resource your tests use.
  2. Pin both images. Compare the current LocalStack version with a named Floci release. Do not benchmark floating latest tags.
  3. Run the same test corpus twice. Compare pass rate, startup p50 and p95, wall time, peak memory, image-pull bytes and failure diagnostics.
  4. Add contract probes. Check response fields, error codes, pagination, ordering, retries, duplicate delivery, timeouts and persistence, not only happy-path CRUD.
  5. Exercise Docker-backed paths. Lambda and other real-engine services need Docker access, image pulls, network configuration and cleanup. Include these costs in CI.
  6. Keep real-AWS gates. Run a smaller suite in an isolated AWS account for IAM, CloudFormation, networking and the production-critical event chain.
  7. Define the exit rule. Adopt only if the saved runner and developer time exceeds migration, maintenance and false-confidence cost.

Floci's official LocalStack migration guide documents the useful compatibility layer and the exceptions. Lambda is always container-based, LAMBDA_REMOTE_DOCKER is not supported, data directories differ, and init scripts that call AWS CLI or boto3 need the larger compat image.

A reproducible Floci CI baseline

Start with one small, pinned scenario. This example keeps the control plane reproducible and makes the endpoint change explicit:

services:
  floci:
    image: floci/floci:1.5.33
    ports:
      - "4566:4566"
    environment:
      FLOCI_STORAGE_MODE: memory
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

aws s3 mb s3://integration-fixtures
aws s3 ls

Add a Docker socket mount only when the selected service requires container-backed execution, and review that privilege before using it on shared or untrusted runners. Treat a mounted Docker socket as host-level authority, not as harmless test configuration.

What does Floci really cost?

The licence fee is zero. The total cost is not. Count migration work, pinned-version upgrades, emulator-specific fixtures, CI images, Docker privileges, debugging false positives, debugging false negatives and the real-AWS suite you still need. Compare those costs with paid LocalStack licences and with the expense of ephemeral AWS environments.

Measure cost per accepted change, not emulator startup in isolation:

monthly test cost = runner minutes + cloud test spend + emulator licences + maintenance time + failure investigation

A 24 ms control-plane start is valuable when it reduces the critical path. It is irrelevant when a Lambda runtime image, database container or application build dominates the job. This is the same delivery discipline behind our IKB infrastructure and integration work and the software QA checklist before launch: test the system boundary that can still invalidate the release.

Wavect sells custom software and cloud integration engineering. That commercial interest is why the recommendation is measurable: a team should be able to conclude that Floci, paid LocalStack, AWS SAM or direct AWS testing is the cheapest safe answer without buying an engagement from us. If you want an independent migration and test-plan review, discuss your AWS delivery setup with Wavect.

Frequently asked questions about Floci and LocalStack

Is Floci written in Go?

No. Floci is a Java project compiled to a native executable with Quarkus Native and GraalVM Mandrel. The native runtime avoids normal JVM warm-up, but the source project is not Go.

Does Floci run the entire AWS cloud locally?

No. Its canonical service matrix listed 68 emulated services on 26 July 2026, with explicit operation counts and limitations. That is broad coverage, not the entire AWS product and behavior catalog.

Is Floci only 13 MiB?

The project reports about 13 MiB of idle memory for its native control plane. Its own comparison page separately lists a native executable around 40 MB and a Docker image around 90 MB. Docker-backed service containers add more resources when used.

Does Floci need Docker?

Docker is the recommended installation route, and several higher-fidelity services need it. Lambda always runs in containers. RDS, ElastiCache, ECS, EC2, EKS, MSK, OpenSearch and other services also orchestrate real engines through Docker.

Is Floci a drop-in replacement for LocalStack?

It can be close for LocalStack Community workflows using port 4566, standard AWS clients, dummy credentials and common init or health paths. It is not universal. Check unsupported variables, Docker behavior, data paths and every AWS operation your suite relies on.

Is Floci free for commercial use?

The repository uses the MIT licence, which permits commercial use, modification and distribution when the licence notice is preserved. There is no paid tier advertised as of the research date, and the software comes without warranty.

Can Floci replace tests in real AWS?

No. Use it to move fast integration feedback left. Keep real-AWS tests for production-critical IAM, networking, quotas, regional behavior, CloudFormation and end-to-end event delivery.

Primary sources and research boundary

Facts were checked on 26 July 2026 against the Floci repository, its installation guide, canonical service and operation matrix, first-party benchmark comparison, compatibility-test source and MIT licence. Competitor claims use LocalStack's licensing documentation and pricing page, plus AWS's SAM testing guidance.

We did not independently reproduce the 24 ms startup, 13 MiB idle-memory, 289 Lambda requests-per-second or competitor benchmark figures. They remain first-party measurements. Service coverage, releases, prices and compatibility change quickly, so pin a version and repeat the decision test before procurement.

Final thoughts

Floci is more interesting than the viral post and less magical. A fast MIT-licensed AWS emulator with familiar SDK protocols can remove real friction from local development and CI. It does not fit the whole cloud into 13 MiB, eliminate Docker or prove production parity through an SDK pass count.

Pilot it against your operations, your failure cases and your runner bill. Keep a real-AWS contract layer. Then choose the smallest toolchain that gives your team fast feedback without manufacturing confidence the emulator cannot support.

Build the product, not just the backlog

If this article maps to a real product decision, Wavect can help you scope, build, harden, or lead the software work with senior founder-level judgment.

Useful service paths:

Inbox, without the noise

Follow the work that matters to you

Get a short email when we publish something new. Follow the whole blog or only the problems you care about.

What would you like to receive?
Choose your topics

Free, double opt-in, no tracking pixels.

Back
Kevin Riedl

11 min read · 26 Jul 2026

Next

Get new posts by email

A short email when we publish. Free, no tracking.

Free, double opt-in, no tracking pixels.