floci-io/flociPublic

Light, fluffy, and always free - The AWS Local Emulator alternative

AI summary: Frictionless, account-free AWS cloud environment emulation deployed instantly via a single Docker compose command.

Stars
26.2K
+171 today
Forks
2.8K
Watchers
82
Open issues
63
Open PRs
55
Contributors
~307
Commits
2.8K
Branches
98

JavaMITCreated Feb 18, 2026Last push 2d agoLatest release 2.1.0+842 stars this week+3.2K this month

Quick answers

What is floci?
Frictionless, account-free AWS cloud environment emulation deployed instantly via a single Docker compose command.
What does floci do?
Floci addresses the overhead of testing AWS-dependent applications by providing a self-contained, locally deployable cloud emulator. Unlike alternatives that require authentication tokens, feature gates, or cloud accounts, it operates entirely offline through containerization. The architecture allows developers to instantly spin up mock AWS services like S3, SQS, EC2, and ECS using standard testcontainers. By bypassing account validation completely, it guarantees zero-friction CI/CD pipeline integration and local development setups. The technical approach relies on lightweight service mocks that respond to standard AWS SDK requests seamlessly.
Who is floci for?
Software engineers and DevOps professionals building applications on AWS who want to avoid the friction of managing real cloud credentials during development. Users need basic familiarity with Docker and AWS SDKs.
How do I get started with floci?
docker compose up
How popular is floci on GitHub?
floci-io/floci has 26,222 stars and 2,826 forks on GitHub, and gained 842 stars in the last 7 days.
What license does floci use?
floci-io/floci is released under the MIT license.

Star history

since Jul 29, 2026
010K20KJul 2026Aug 2026Sep 2026Oct 2026
26.2K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Update history

1 recorded
  • Oct 4, 2026Previously tracked as hectorvent/floci; its 1 daily snapshot and 1 trending appearance were merged into this profile. Stars: 17,996 on 2026-07-29 under the old name, 26,222 on 2026-10-02 (+8,226).

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 8 commits2026-03-16: 8 commits2026-03-17: 6 commits2026-03-18: 3 commits2026-03-19: 0 commits2026-03-20: 1 commit2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 3 commits2026-03-24: 20 commits2026-03-25: 4 commits2026-03-26: 7 commits2026-03-27: 1 commit2026-03-28: 5 commits2026-03-29: 9 commits2026-03-30: 8 commits2026-03-31: 13 commits2026-04-01: 12 commits2026-04-02: 7 commits2026-04-03: 21 commits2026-04-04: 5 commits2026-04-05: 10 commits2026-04-06: 14 commits2026-04-07: 6 commits2026-04-08: 21 commits2026-04-09: 5 commits2026-04-10: 11 commits2026-04-11: 19 commits2026-04-12: 20 commits2026-04-13: 22 commits2026-04-14: 20 commits2026-04-15: 12 commits2026-04-16: 6 commits2026-04-17: 13 commits2026-04-18: 7 commits2026-04-19: 8 commits2026-04-20: 9 commits2026-04-21: 9 commits2026-04-22: 6 commits2026-04-23: 8 commits2026-04-24: 4 commits2026-04-25: 18 commits2026-04-26: 1 commit2026-04-27: 6 commits2026-04-28: 12 commits2026-04-29: 10 commits2026-04-30: 11 commits2026-05-01: 11 commits2026-05-02: 12 commits2026-05-03: 5 commits2026-05-04: 7 commits2026-05-05: 5 commits2026-05-06: 8 commits2026-05-07: 11 commits2026-05-08: 7 commits2026-05-09: 6 commits2026-05-10: 8 commits2026-05-11: 2 commits2026-05-12: 9 commits2026-05-13: 10 commits2026-05-14: 12 commits2026-05-15: 9 commits2026-05-16: 7 commits2026-05-17: 6 commits2026-05-18: 9 commits2026-05-19: 15 commits2026-05-20: 11 commits2026-05-21: 6 commits2026-05-22: 9 commits2026-05-23: 8 commits2026-05-24: 11 commits2026-05-25: 5 commits2026-05-26: 2 commits2026-05-27: 7 commits2026-05-28: 4 commits2026-05-29: 10 commits2026-05-30: 8 commits2026-05-31: 7 commits2026-06-01: 1 commit2026-06-02: 10 commits2026-06-03: 6 commits2026-06-04: 16 commits2026-06-05: 5 commits2026-06-06: 10 commits2026-06-07: 14 commits2026-06-08: 1 commit2026-06-09: 6 commits2026-06-10: 12 commits2026-06-11: 11 commits2026-06-12: 3 commits2026-06-13: 22 commits2026-06-14: 7 commits2026-06-15: 14 commits2026-06-16: 17 commits2026-06-17: 8 commits2026-06-18: 5 commits2026-06-19: 16 commits2026-06-20: 11 commits2026-06-21: 8 commits2026-06-22: 3 commits2026-06-23: 7 commits2026-06-24: 2 commits2026-06-25: 25 commits2026-06-26: 19 commits2026-06-27: 4 commits2026-06-28: 3 commits2026-06-29: 2 commits2026-06-30: 8 commits2026-07-01: 14 commits2026-07-02: 9 commits2026-07-03: 18 commits2026-07-04: 3 commits2026-07-05: 13 commits2026-07-06: 9 commits2026-07-07: 9 commits2026-07-08: 4 commits2026-07-09: 12 commits2026-07-10: 5 commits2026-07-11: 19 commits2026-07-12: 2 commits2026-07-13: 0 commits2026-07-14: 5 commits2026-07-15: 8 commits2026-07-16: 0 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 2 commits2026-07-22: 5 commits2026-07-23: 1 commit2026-07-24: 1 commit2026-07-25: 0 commits2026-07-26: 3 commits2026-07-27: 4 commits2026-07-28: 4 commits2026-07-29: 9 commits2026-07-30: 5 commits2026-07-31: 1 commit2026-08-01: 14 commits2026-08-02: 6 commits2026-08-03: 0 commits2026-08-04: 14 commits2026-08-05: 13 commits2026-08-06: 3 commits2026-08-07: 7 commits2026-08-08: 12 commits2026-08-09: 16 commits2026-08-10: 6 commits2026-08-11: 11 commits2026-08-12: 23 commits2026-08-13: 20 commits2026-08-14: 20 commits2026-08-15: 25 commits2026-08-16: 9 commits2026-08-17: 13 commits2026-08-18: 19 commits2026-08-19: 15 commits2026-08-20: 19 commits2026-08-21: 12 commits2026-08-22: 6 commits2026-08-23: 15 commits2026-08-24: 23 commits2026-08-25: 7 commits2026-08-26: 28 commits2026-08-27: 24 commits2026-08-28: 35 commits2026-08-29: 22 commits2026-08-30: 30 commits2026-08-31: 22 commits2026-09-01: 32 commits2026-09-02: 37 commits2026-09-03: 22 commits2026-09-04: 30 commits2026-09-05: 45 commits2026-09-06: 56 commits2026-09-07: 48 commits2026-09-08: 39 commits2026-09-09: 36 commits2026-09-10: 43 commits2026-09-11: 45 commits2026-09-12: 52 commits2026-09-13: 37 commits2026-09-14: 54 commits2026-09-15: 47 commits2026-09-16: 43 commits2026-09-17: 44 commits2026-09-18: 32 commits2026-09-19: 39 commits2026-09-20: 60 commits2026-09-21: 51 commits2026-09-22: 61 commits2026-09-23: 58 commits2026-09-24: 56 commits2026-09-25: 49 commits2026-09-26: 18 commits
2,740 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    26,222 stars

  • Very active

    2,740 commits in 52 weeks

  • Community-driven

    ~307 contributors

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    6 trending appearances

What floci does

Floci addresses the overhead of testing AWS-dependent applications by providing a self-contained, locally deployable cloud emulator. Unlike alternatives that require authentication tokens, feature gates, or cloud accounts, it operates entirely offline through containerization. The architecture allows developers to instantly spin up mock AWS services like S3, SQS, EC2, and ECS using standard testcontainers. By bypassing account validation completely, it guarantees zero-friction CI/CD pipeline integration and local development setups. The technical approach relies on lightweight service mocks that respond to standard AWS SDK requests seamlessly.

Software engineers and DevOps professionals building applications on AWS who want to avoid the friction of managing real cloud credentials during development. Users need basic familiarity with Docker and AWS SDKs.

  • Zero authentication: Operates entirely without access keys, tokens, or account registration.
  • Docker compose native: Deploys the entire mock infrastructure using a standard docker-compose up command.
  • AWS service parity: Provides localized endpoints for core services including S3, SQS, EC2, and ECS.
  • Testcontainer integration: Natively hooks into existing testcontainer setups for automated integration testing.
  • Offline first architecture: Processes all AWS SDK calls locally without any external network dependencies.

Where teams use it

Local development without cloud spend

Developers building AWS-native applications can test their code locally without incurring EC2 or S3 charges, avoiding the need for shared sandbox accounts.

Ephemeral CI/CD testing

DevOps teams can spin up isolated AWS environments for integration tests in GitHub Actions without managing long-lived IAM credentials.

Air-gapped environments

Security-conscious enterprises can validate AWS integrations in completely disconnected environments where external network calls are blocked.

Rapid prototyping

Architects can experiment with AWS service interactions like SQS queues or S3 buckets instantly without waiting for infrastructure provisioning.

Getting started: docker compose up

README

main branch

Floci Floci

Any Cloud. Locally.
Light, fluffy, and always free
No account. No auth token. No feature gates. Just docker compose up.

Latest Release Build Status Docker Pulls Docker Image Size License: MIT GitHub Stars

Quick Start · Features · Services · SDKs · Testcontainers · Migration · Docs


What is Floci?

Floci is a free, open-source local AWS emulator for development, testing, and CI.

It gives you AWS-shaped services on your machine without requiring a cloud account, an auth token, or paid feature gates. Point your AWS SDK, CLI, Terraform, CDK, OpenTofu, or test suite at http://localhost:4566 and keep your existing workflows.

Already using LocalStack? Floci is a drop-in replacement: swap the image and keep going. See Migrating from LocalStack.

Floci is the AWS member of the Floci emulator family, named after floccus, the cloud formation that looks like popcorn.

Emulator Cloud Port
floci AWS 4566
floci-az Azure 4577
floci-gcp GCP 4588
floci-oci OCI 4599

Quick Start

The fastest way to run Floci is with the official CLI

floci start

Export the AWS environment variables:

eval $(floci env)

Use your existing AWS tools normally:

aws s3 mb s3://my-bucket

aws dynamodb create-table \
  --table-name demo-table \
  --attribute-definitions AttributeName=pk,AttributeType=S \
  --key-schema AttributeName=pk,KeyType=HASH \
  --billing-mode PAY_PER_REQUEST

aws dynamodb list-tables

Watch it run

This short demo shows the CLI flow: start Floci, export the local AWS environment, run standard AWS CLI commands, and stop the emulator.

floci-cli-demo.mp4

All AWS services are available at http://localhost:4566. Any published AWS region works, in every partition. Credentials can be any non-empty values unless you explicitly enable stricter service-specific auth checks.

Prefer Docker Compose?

Create a compose.yaml file:

services:
  floci:
    image: floci/floci:latest
    ports:
      - "4566:4566"

Start Floci:

docker compose up

Then configure your AWS environment manually:

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
Using the old hectorvent/floci image?

Update your image name:

# Before
image: hectorvent/floci:latest

# After
image: floci/floci:latest

The old hectorvent/floci repository no longer receives updates.

Web Console

Floci ships a browser console for inspecting the resources in your local emulator.

Open it at: http://localhost:4566/_floci/ui

Nothing runs at boot. The first request pulls the console image, starts it as a sidecar container on Floci's Docker network, hands it Floci's own reachable address plus the standard AWS environment, polls its health endpoint, and redirects the browser once it reports it can reach Floci. The sidecar's port is bound by Docker, so it needs no ports: entry of your own, and its logs are streamed into CloudWatch Logs under /floci/ui.

Starting a container needs the Docker socket:

services:
  floci:
    image: floci/floci:latest
    ports:
      - "4566:4566"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
Variable Default Description
FLOCI_SERVICES_UI_ENABLED true Enable the console sidecar
FLOCI_SERVICES_UI_IMAGE floci/floci-ui:latest Console image to run
FLOCI_SERVICES_UI_CONTAINER_NAME floci-ui Name of the sidecar container
FLOCI_SERVICES_UI_PORT 4500 Host port the console is published on
FLOCI_SERVICES_UI_BIND_ADDRESS (none) Host interface that port is published on. Unset publishes on every interface; set 127.0.0.1 when Floci's own port is loopback-only
FLOCI_SERVICES_UI_KEEP_RUNNING_ON_SHUTDOWN false Leave the sidecar running when Floci stops

Running a different console

The console is not fixed to the one Floci ships. Any console implementing the Floci console contract runs with nothing but an image name: listen on the port in PORT, serve GET /api/health, talk to Floci at AWS_ENDPOINT_URL.

environment:
  FLOCI_SERVICES_UI_IMAGE: acme/my-console:1.0

A console that differs from the contract's defaults says so in its own io.floci.console.* image labels, so its operators do not have to. StackPort, for example, listens on 8080 rather than 4500; on an image that predates the labels, say it by hand:

environment:
  FLOCI_SERVICES_UI_IMAGE: davireis/stackport:latest
  FLOCI_SERVICES_UI_CONTAINER_NAME: floci-stackport
  FLOCI_SERVICES_UI_PORT: "8080"
  FLOCI_SERVICES_UI_INTERNAL_PORT: "8080"

Floci Dash is another. It honours PORT, so only the two things it does differ on need naming:

environment:
  FLOCI_SERVICES_UI_IMAGE: ghcr.io/ofsazib/floci-dash:latest
  FLOCI_SERVICES_UI_CONTAINER_NAME: floci-dash
  FLOCI_SERVICES_UI_ENDPOINT_ENV: FLOCI_URL
  FLOCI_SERVICES_UI_STATUS_PATH: /api/healthz

The endpoint itself is never configured by hand: Floci resolves its own reachable address at start time and injects it as AWS_ENDPOINT_URL.

Full reference: Web Console and Console Contract v1.

Features

Local AWS without the cloud account

Run AWS-compatible services locally without an AWS account, auth token, or paid feature gates.

Real Docker where fidelity matters

Lambda, RDS, Neptune, ElastiCache, MSK, ECS, EC2, EKS, OpenSearch, CodeBuild, and Managed Service for Apache Flink use real Docker-backed execution instead of shallow mocks.

Drop-in AWS compatibility

Point standard AWS clients at http://localhost:4566. Existing credentials, regions, SDKs, CLI commands, and IaC workflows stay familiar.

Terraform can provision AWS-shaped resources locally through Floci using the standard HashiCorp AWS provider. See the Terraform with Floci guide for provider configuration, resource examples, and optional emulated S3 state.

Fast enough for CI

The native image starts in milliseconds and keeps idle memory low, making it practical for local development and test pipelines.

Configurable persistence

Choose from in-memory, persistent, hybrid, and write-ahead log storage depending on the durability profile you need.

Why Floci?

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
Docker image size ~90 MB ~1.0 GB
License MIT Restricted
API Gateway v2 / HTTP API Yes No
Cognito Yes No
RDS, ElastiCache, MSK Real Docker No
Neptune (graph DB + Gremlin WebSocket) Real Docker No
DocumentDB (MongoDB-compatible) Real Docker No
ECS, EC2, EKS Real Docker No
CodeBuild Real Docker execution No
Native binary ~40 MB No

Broad AWS coverage. Free forever. See the Services Overview for the full list of emulated services.

Architecture Overview

flowchart LR
    Client["AWS SDK / CLI"]

    subgraph Floci ["Floci, port 4566"]
        Router["HTTP Router\nJAX-RS / Vert.x"]

        subgraph Stateless ["Stateless Services"]
            A["SSM · SQS · SNS\nIAM · STS · KMS\nSecrets Manager · SES\nCognito · Kinesis\nEventBridge · Scheduler · AppConfig\nCloudWatch · Step Functions\nCloudFormation · ACM · Config · CloudTrail\nAPI Gateway · AppSync · ELB v2 · Auto Scaling\nElastic Beanstalk · CodeDeploy · CodePipeline · Backup · FIS · Bedrock Runtime · Bedrock AgentCore · Route53 · Transfer"]
        end

        subgraph Stateful ["Stateful Services"]
            B["S3 · DynamoDB\nDynamoDB Streams"]
        end

        subgraph Containers ["Container Services"]
            C["Lambda\nElastiCache\nRDS\nNeptune\nECS\nEC2\nMSK\nEKS\nOpenSearch\nCodeBuild\nManaged Flink"]
            D["Athena -> floci-duck\nDuckDB sidecar"]
        end

        Router --> Stateless
        Router --> Stateful
        Router --> Containers
        Stateless & Stateful --> Store[("StorageBackend\nmemory · hybrid · persistent · wal")]
    end

    Docker["Docker Engine"]
    Client -->|"HTTP :4566\nAWS wire protocol"| Router
    Containers -->|"Docker API\nIAM / SigV4 auth"| Docker
Loading

Supported Services

Floci supports local emulation for application services, data services, eventing, identity, infrastructure, billing, and container-backed workloads.

Category Services
Core app services S3, SQS, SNS, DynamoDB, Lambda, Lambda MicroVMs, IAM, STS, KMS, Secrets Manager, SSM
Events and workflows EventBridge, EventBridge Pipes, EventBridge Scheduler, Step Functions, SWF, CloudWatch Logs, CloudWatch Metrics, CloudWatch OAM, CloudWatch RUM, Managed Prometheus (AMP)
API and identity API Gateway REST, API Gateway v2, AppSync, Cognito, Cognito Identity, ACM, Route53, Route 53 Resolver, Cloud Map, Global Accelerator
Containers and compute ECS, EC2, Lightsail, EKS, MWAA, ECR, EFS, CodeBuild, CodeDeploy, CodePipeline, CodeGuru Reviewer, CodeArtifact, AWS Batch, Auto Scaling, Application Auto Scaling, Elastic Beanstalk, ELB v2, ELB Classic
Data, analytics, and AI Athena, Glue, Lake Formation, EMR, EMR Serverless, Redshift, Redshift Data API, Redshift Serverless, Firehose, Managed Service for Apache Flink, OpenSearch, S3 Tables, S3 Vectors, Textract, Transcribe, Comprehend, Rekognition, Translate, Bedrock, Bedrock Runtime, Bedrock AgentCore, Bedrock AgentCore Control, SageMaker
Databases and caching RDS, RDS Data API, Neptune, DocumentDB, DMS, MemoryDB, ElastiCache, Timestream for InfluxDB
Messaging and transfer SES, Kinesis, MSK, Amazon MQ, Transfer Family, DataSync, IoT Core, Amazon Connect, Amazon AppIntegrations
Security and governance AWS Network Firewall, AWS RAM, Service Quotas, WAF v2, GuardDuty, Amazon Inspector, CloudTrail, CloudFront, Resource Groups Tagging API, Resource Explorer 2, CloudHSM v2, Organizations, AWS Account Management, IAM Access Analyzer, IAM Identity Center (SSO Admin, OIDC, Access Portal, SCIM), Identity Store, Amazon Macie, Amazon Detective, Security Hub, Amazon Verified Permissions, Control Catalog, Control Tower, Service Catalog, AWS Marketplace
Cost and billing AWS Budgets, Pricing, Cost Explorer, Cost and Usage Reports, BCM Pricing Calculator, BCM Data Exports
Resilience, backup, and config AWS FIS, AWS Backup, Amazon Data Lifecycle Manager, AWS Config, AppConfig, AppConfigData, CloudFormation, Cloud Control API

For operation-level compatibility, see the Services Overview.

Detailed service notes
Service How it works Notable features
SSM In-process + EC2 containers Parameter Store (version history, labels, SecureString, tagging); Run Command (SendCommand, GetCommandInvocation, direct EC2 container execution, agent polling)
SQS In-process Standard and FIFO queues, DLQ, visibility timeout, batch operations, tagging
SNS In-process Topics, subscriptions, SQS, Lambda and HTTP delivery, tagging
S3 In-process Versioning, multipart upload, pre-signed URLs, Object Lock, object annotations, event notifications
S3 Vectors In-process Vector buckets, indexes, put / get / list / delete vectors, cosine similarity queries
DynamoDB In-process GSI, LSI, Query, Scan, TTL, transactions, batch operations; Streams with shard iterators and Lambda event source mapping
Lambda Real Docker Runtime environment, execution model, warm container pool, aliases, Function URLs
API Gateway REST In-process Resources, methods, stages, Lambda proxy, MOCK integrations, AWS integrations
API Gateway v2 In-process HTTP APIs, routes, integrations, JWT authorizers, stages
AppSync In-process GraphQL API management API, schema registry, AWS scalars, domain names, channel namespaces
IAM In-process Users, roles, groups, policies, instance profiles, access keys; STS AssumeRole, WebIdentity, SAML, GetFederationToken, GetSessionToken
Cognito In-process User pools, app clients, auth flows, JWKS and OpenID well-known endpoints
KMS In-process Encrypt, decrypt, sign, verify, data keys, aliases
Kinesis In-process Streams, shards, enhanced fan-out, split and merge
Secrets Manager In-process Versioning, resource policies, tagging
Step Functions In-process ASL execution, task tokens, execution history
SWF In-process Decision and activity tasks, timers, child workflows, timeouts, real Lambda invocation
CloudFormation In-process Stacks, change sets, resource provisioning, StackSets (cross-account instances)
EventBridge In-process Custom buses, rules, SQS, SNS and Lambda targets
EventBridge Pipes In-process Poller-based integration connecting SQS, Kinesis, DynamoDB, and MSK sources to targets with optional filtering
EventBridge Scheduler In-process Schedule groups, schedules, flexible time windows, retry policies, DLQs
CloudWatch Logs In-process Log groups, streams, ingestion, filtering
CloudWatch Metrics In-process Custom metrics, statistics, alarms
CloudWatch OAM In-process Full 15-operation sink, policy, cross-account link, and tagging API
ElastiCache Real Docker Redis / Valkey protocol, IAM auth, SigV4 validation
MemoryDB Real Docker Redis / Valkey protocol via real containers; JSON 1.1 control plane; reuses ElastiCache RESP proxy
RDS Real Docker PostgreSQL, MySQL, MariaDB, IAM auth, JDBC-compatible engines
Timestream for InfluxDB Real Docker, mock mode available InfluxDB 2.x DB instances and read replica clusters via influxdb:2.7; initial auth secret in Secrets Manager; backups and restore through the influx CLI
RDS Data API REST JSON over real RDS containers Raw SQL execution and transactions for local MySQL / MariaDB RDS resources
Neptune Real Docker Graph DB via TinkerPop Gremlin Server (default) or Neo4j for openCypher/Bolt (NEPTUNE_DB_TYPE); RDS-shaped control plane; SigV4 proxy on port 8182
DocumentDB Real Docker, mock mode available MongoDB-compatible cluster via real MongoDB containers; RDS-shaped control plane; MongoDB wire protocol on port 27017
MSK Real Docker Kafka-compatible broker via Redpanda
Amazon MQ Real Docker RabbitMQ broker via rabbitmq:3-management; AMQP + management console
Athena In-process with DuckDB sidecar Real SQL execution over S3 and Glue-backed views
Glue In-process Data Catalog, Schema Registry, tables consumed by Athena
EMR In-process Cluster (job flow) lifecycle, instance groups and fleets, steps, security configurations, tagging
Data Firehose In-process Streaming delivery, buffered flush to S3 with GZIP/ZIP/Snappy compression
Managed Service for Apache Flink Real Docker Kinesis Analytics V2 control plane; StartApplication runs a real Flink cluster (JobManager + TaskManager, image per RuntimeEnvironment), pulls the application JAR from local S3, and submits the job
ECS Real Docker Clusters, task definitions, tasks, services, capacity providers, task sets
EC2 Real Docker RunInstances launches containers, SSH key injection, UserData, IMDS, VPC resources
Lightsail In-process Instances, disks, static IPs, key pairs, ports, tags, regions, blueprints, bundles, operations
ACM In-process Certificate issuance and validation lifecycle
ECR In-process with real registry Repositories, docker push / pull, image-backed Lambda functions
Resource Groups Tagging API In-process GetResources, tag and untag resources, tag key and value discovery across services
SES In-process v1 and v2 APIs: send email, raw email, identity verification, DKIM, templates, configuration sets, account sending
OpenSearch Real Docker Domain CRUD, tags, versions, instance types, upgrade stubs
AppConfig In-process Applications, environments, profiles, hosted versions, deployments
AppConfigData In-process Configuration sessions and dynamic configuration retrieval
Bedrock In-process Guardrail lifecycle, versions, and tags on the control plane
Bedrock Runtime In-process stub Dummy Converse and InvokeModel responses for local development
Bedrock AgentCore In-process stub Stateful control plane (agent runtimes, gateways, memory, workload identity); canned InvokeAgentRuntime responses
EKS Real Docker, mock mode available k3s clusters with live Kubernetes API server
MWAA Real Docker, mock mode available Real Apache Airflow (LocalExecutor) + Postgres metadata DB per environment; web/CLI proxy; S3-backed DAG sync
ELB v2 In-process ALB, NLB, target groups, listeners, routing rules, Lambda targets, tags
CodeBuild In-process with real Docker Real buildspec execution, CloudWatch logs, S3 artifacts
CodeDeploy In-process with Lambda traffic shifting Deployment groups, configs, lifecycle hooks, auto-rollback
CodePipeline In-process orchestration Pipelines, executions, S3 artifacts, approvals, local providers, custom workers
AWS Network Firewall In-process DescribeFirewall with stable emulated endpoint attachments for infrastructure tooling
Service Quotas In-process Generated quota catalog with generous static values; real quota codes for CodeBuild and Lambda concurrency
AWS RAM In-process EnableSharingWithAwsOrganization opt-in
AWS Batch In-process Compute environments, job queues, job definitions, job submission and lifecycle
Auto Scaling In-process with reconciler Launch configs, ASGs, desired capacity reconciliation, lifecycle hooks
Application Auto Scaling In-process Scalable targets, target-tracking and step scaling policies, CloudWatch alarm creation, tagging (policies are stored but inert)
Elastic Beanstalk In-process Applications, application versions, environments, configuration templates, platform and solution stack metadata
AWS Backup In-process Vaults, backup plans, selections, simulated job lifecycle, recovery points
Amazon Data Lifecycle Manager In-process Lifecycle policy and tag management; schedules are stored but do not create snapshots or AMIs
AWS FIS In-process All 26 management APIs for templates, experiments, target accounts, action and target discovery, safety lever, tagging, and pagination; experiment execution is a safe control-plane simulation and does not inject faults into other services
AWS Config In-process Config rules, evaluation-driven compliance (PutEvaluations, compliance details and summaries), configuration recorders, delivery channels, retention configuration, conformance packs, tagging
Organizations In-process Organizations, roots, nested OUs, member accounts, all policy types with FullAWSAccess and effective-policy inheritance, trusted service access, delegated administrators, resource policy, and the full invitation/handshake flow; created accounts are usable Floci accounts and member accounts can read the organization they belong to
CloudTrail In-process Trails, event selectors (S3 data events with bucket/prefix matching), StartLogging/StopLogging, scheduled gzipped log file emission to the destination bucket at AWS-shaped key paths, IAM-deny path emits AccessDenied records
CloudFront In-process Distributions, origins, cache behaviors, invalidations, tagging
WAF v2 In-process Web ACLs, IP sets, regex pattern sets, rule groups, logging configs, resource associations, tagging (REGIONAL and CLOUDFRONT scopes)
Resource Explorer 2 In-process All 32 management APIs: index and view lifecycle, multi-Region setup tasks, the full search query grammar, and tagging; 30 services expose their resources for search, gathered live rather than from an index
Route53 In-process Hosted zones, SOA and NS records, resource record sets, change tracking, tagging
Cloud Map In-process HTTP and DNS namespaces, services, instance registration, discovery queries, operations, tagging
Transfer Family In-process Server lifecycle, user management, SSH key import, tagging
Textract In-process stub API-compatible stubs, dummy block data, async job simulation
Transcribe In-process stub Transcription jobs and custom vocabularies; jobs complete immediately, no real audio processing
Pricing In-process with static snapshot Product discovery, attributes, price list files, pagination
Cost Explorer In-process Cost synthesized from Floci resource state and pricing snapshots
Cost and Usage Reports In-process with floci-duck sidecar CUR 2.0 and FOCUS 1.2 columns, account-scoped storage, Parquet emission
BCM Pricing Calculator In-process Workload estimate create, usage pricing, read, and delete lifecycle
BCM Data Exports In-process Export lifecycle, executions, update and delete operations

Real Docker Integration

Floci uses real Docker containers when in-process emulation would reduce fidelity. This applies to stateful databases, connection-heavy protocols, runtimes, and build systems.

Service Default image What is real
Lambda public.ecr.aws/lambda/<runtime> AWS runtime environment, execution model, warm container pool
ElastiCache valkey/valkey:8 Redis / Valkey protocol, ACL-based IAM auth, SigV4 validation
RDS PostgreSQL postgres:16-alpine PostgreSQL engine, IAM auth, JDBC-compatible access
RDS MySQL / Aurora mysql:8.0 MySQL engine, IAM auth, JDBC-compatible access
RDS MariaDB mariadb:11 MariaDB engine, IAM auth, JDBC-compatible access
Neptune tinkerpop/gremlin-server:3.7.3 TinkerPop Gremlin Server; Gremlin WebSocket on port 8182; SigV4 auth proxy
Neptune (openCypher) neo4j:5-community Neo4j backend when FLOCI_SERVICES_NEPTUNE_DB_TYPE=neo4j; openCypher over Bolt
DocumentDB mongo:7.0 MongoDB engine; MongoDB wire protocol on port 27017
MSK redpandadata/redpanda:latest Kafka-compatible broker via Redpanda
Amazon MQ rabbitmq:3-management RabbitMQ broker; AMQP on port 5672, management console on 15672
Managed Service for Apache Flink apache/flink:<version> Apache Flink JobManager; image chosen per RuntimeEnvironment (FLINK-1_15 … FLINK-1_20, FLINK-2_0 … FLINK-2_3)
EC2 AMI-mapped Linux images Linux containers, SSH key injection, UserData, IMDS, IAM credentials
ECS User-specified task image Container lifecycle, start, stop, health checks
EKS rancher/k3s:latest Kubernetes API server via k3s
MWAA apache/airflow:<version>-python3.12 + postgres:16-alpine Real Apache Airflow (LocalExecutor: scheduler + webserver) with its own Postgres metadata DB; webserver/CLI reachable via Floci's proxy
CodeBuild User-specified environment image Buildspec execution, log streaming, S3 artifact upload
OpenSearch opensearchproject/opensearch:2 Full OpenSearch engine with REST API
ECR registry:2 OCI-compatible registry for docker push and docker pull
Verified Permissions floci/floci-sidecar-cedar:1.1.0 Cedar 4 policy parsing, schema validation and authorization decisions, via a Floci sidecar
AppSync floci/floci-sidecar-graphql:0.2.0 graphql-java schema validation, query planning and execution, via a Floci sidecar

Docker-backed services require the Docker socket:

docker run -d --name floci \
  -p 4566:4566 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -u root \
  floci/floci:latest

Overriding default images

Variable Default
FLOCI_SERVICES_ELASTICACHE_DEFAULT_IMAGE valkey/valkey:8
FLOCI_SERVICES_RDS_DEFAULT_POSTGRES_IMAGE postgres:16-alpine
FLOCI_SERVICES_RDS_DEFAULT_MYSQL_IMAGE mysql:8.0
FLOCI_SERVICES_RDS_DEFAULT_MARIADB_IMAGE mariadb:11
FLOCI_SERVICES_MSK_DEFAULT_IMAGE redpandadata/redpanda:latest
FLOCI_SERVICES_OPENSEARCH_DEFAULT_IMAGE (unset — images resolve per requested EngineVersion)
FLOCI_SERVICES_KINESIS_ANALYTICS_DEFAULT_IMAGE (unset; chosen per RuntimeEnvironment)
FLOCI_SERVICES_NEPTUNE_DEFAULT_IMAGE tinkerpop/gremlin-server:3.7.3
FLOCI_SERVICES_NEPTUNE_DEFAULT_NEO4J_IMAGE neo4j:5-community
FLOCI_SERVICES_DOCDB_DEFAULT_IMAGE mongo:7.0
FLOCI_SERVICES_EKS_DEFAULT_IMAGE rancher/k3s:latest
FLOCI_SERVICES_MWAA_DEFAULT_POSTGRES_IMAGE postgres:16-alpine
FLOCI_SERVICES_ECR_REGISTRY_IMAGE registry:2
FLOCI_SERVICES_LAMBDA_ECR_BASE_URI public.ecr.aws

Persistence and Storage Modes

Floci can trade speed for durability depending on the workflow. Configure the default mode with FLOCI_STORAGE_MODE, or override storage per service.

Mode Behavior Best for Durability
memory Entirely in RAM. Data is lost when the container stops. CI and ephemeral tests None
persistent Loaded at startup and flushed to disk immediately on every write operation. Simple local state preservation with immediate persistence Medium
hybrid In-memory performance with periodic async flushing every 5 seconds. Local development Good
wal Write-ahead log. Every mutation is logged before responding. Maximum durability Highest

Use memory for fast test runs. Use hybrid when you want state preserved across container restarts without much overhead.

For more detail, see the Storage Configuration documentation.

Multi-Account Isolation

Floci supports per-account resource isolation with no extra setup. If AWS_ACCESS_KEY_ID is exactly 12 digits, Floci uses it as the account ID. Resources created by one account are invisible to another.

AWS_ACCESS_KEY_ID=111111111111 aws sqs create-queue --queue-name orders
AWS_ACCESS_KEY_ID=222222222222 aws sqs create-queue --queue-name orders

Any other key format, such as test or AKIA..., causes Floci to fall back to FLOCI_DEFAULT_ACCOUNT_ID, which defaults to 000000000000.

STS temporary credentials are routed too: credentials from AssumeRole resolve to the assumed role's account, so the cross-account assume-role-then-provision pattern works locally. Resolution precedence is 12-digit AKID → temporary-session lookup → FLOCI_DEFAULT_ACCOUNT_ID.

See the Multi-Account Isolation docs.

SDK Integration

Point your existing AWS SDK at http://localhost:4566.

Java, AWS SDK v2
var client = DynamoDbClient.builder()
    .endpointOverride(URI.create("http://localhost:4566"))
    .region(Region.US_EAST_1)
    .credentialsProvider(StaticCredentialsProvider.create(
        AwsBasicCredentials.create("test", "test")))
    .build();

client.createTable(b -> b
    .tableName("demo-table")
    .billingMode(BillingMode.PAY_PER_REQUEST)
    .attributeDefinitions(
        AttributeDefinition.builder().attributeName("pk").attributeType(ScalarAttributeType.S).build())
    .keySchema(
        KeySchemaElement.builder().attributeName("pk").keyType(KeyType.HASH).build()));

System.out.println(client.listTables().tableNames());
Python, boto3
import boto3

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

client.put_parameter(
    Name="/demo/app/message",
    Value="hello from floci",
    Type="String",
    Overwrite=True,
)

response = client.get_parameter(Name="/demo/app/message")
print(response["Parameter"]["Value"])
Node.js, AWS SDK v3
import { SQSClient, SendMessageCommand } from "@aws-sdk/client-sqs";

const client = new SQSClient({
  endpoint: "http://localhost:4566",
  region: "us-east-1",
  credentials: { accessKeyId: "test", secretAccessKey: "test" },
});

await client.send(
  new SendMessageCommand({
    QueueUrl: "http://localhost:4566/000000000000/demo-queue",
    MessageBody: "hello from floci",
  }),
);
Go, AWS SDK v2
package main

import (
    "context"
    "fmt"
    "log"

    "github.com/aws/aws-sdk-go-v2/config"
    "github.com/aws/aws-sdk-go-v2/credentials"
    "github.com/aws/aws-sdk-go-v2/service/s3"
)

func main() {
    cfg, err := config.LoadDefaultConfig(context.TODO(),
        config.WithRegion("us-east-1"),
        config.WithCredentialsProvider(
            credentials.NewStaticCredentialsProvider("test", "test", ""),
        ),
        config.WithBaseEndpoint("http://localhost:4566"),
    )
    if err != nil {
        log.Fatal(err)
    }

    client := s3.NewFromConfig(cfg, func(o *s3.Options) {
        o.UsePathStyle = true
    })

    out, err := client.ListBuckets(context.TODO(), nil)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(out.Buckets)
}
Rust, AWS SDK
use aws_sdk_secretsmanager::config::{Credentials, Region};
use aws_sdk_secretsmanager::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let config = aws_config::defaults(aws_config::BehaviorVersion::latest())
        .region(Region::new("us-east-1"))
        .credentials_provider(Credentials::new("test", "test", None, None, "floci"))
        .endpoint_url("http://localhost:4566")
        .load()
        .await;

    let client = Client::new(&config);

    client
        .create_secret()
        .name("demo/secret")
        .secret_string("hello from floci")
        .send()
        .await?;

    Ok(())
}
Bash, AWS CLI
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export AWS_DEFAULT_REGION=us-east-1

aws --endpoint-url http://localhost:4566 s3 mb s3://my-bucket
aws --endpoint-url http://localhost:4566 s3 ls

Testcontainers

Floci has Testcontainers modules for starting isolated Floci instances directly from tests. This avoids shared state, manual daemon setup, and port conflicts.

For Testcontainers 1.x, use the versions as indicated in the table below.

Language Package Latest Registry Source
Java io.floci:testcontainers-floci 1.14.0 Maven Central GitHub
Node.js @floci/testcontainers 0.1.0 npm GitHub
Python testcontainers-floci 0.1.1 PyPI GitHub
.NET Testcontainers.Floci see releases GitHub Packages GitHub
Go In progress In progress N/A GitHub
Java
<dependency>
    <groupId>io.floci</groupId>
    <artifactId>testcontainers-floci</artifactId>
    <version>1.14.0</version>
    <scope>test</scope>
</dependency>
@Testcontainers
class S3IntegrationTest {

    @Container
    static FlociContainer floci = new FlociContainer();

    @Test
    void shouldCreateBucket() {
        S3Client s3 = S3Client.builder()
                .endpointOverride(URI.create(floci.getEndpoint()))
                .region(Region.of(floci.getRegion()))
                .credentialsProvider(StaticCredentialsProvider.create(
                        AwsBasicCredentials.create(floci.getAccessKey(), floci.getSecretKey())))
                .forcePathStyle(true)
                .build();

        s3.createBucket(b -> b.bucket("my-bucket"));
    }
}

For Testcontainers 2.x / Spring Boot 4.x, use version 2.15.0.

Node.js / TypeScript
npm install --save-dev @floci/testcontainers
import { FlociContainer } from "@floci/testcontainers";
import { S3Client, CreateBucketCommand } from "@aws-sdk/client-s3";

describe("S3", () => {
  let floci: FlociContainer;

  beforeAll(async () => {
    floci = await new FlociContainer().start();
  });

  afterAll(async () => {
    await floci.stop();
  });

  it("creates a bucket", async () => {
    const s3 = new S3Client({
      endpoint: floci.getEndpoint(),
      region: floci.getRegion(),
      credentials: {
        accessKeyId: floci.getAccessKey(),
        secretAccessKey: floci.getSecretKey(),
      },
      forcePathStyle: true,
    });

    await s3.send(new CreateBucketCommand({ Bucket: "my-bucket" }));
  });
});
Python
pip install testcontainers-floci
import boto3
from floci import FlociContainer


def test_s3_create_bucket():
    with FlociContainer() as floci:
        s3 = boto3.client(
            "s3",
            endpoint_url=floci.get_endpoint(),
            region_name=floci.get_region(),
            aws_access_key_id=floci.get_access_key(),
            aws_secret_access_key=floci.get_secret_key(),
        )
        s3.create_bucket(Bucket="my-bucket")

Compatibility Testing

The compatibility-tests directory validates Floci across SDKs and tooling workflows.

Module Language / Tool SDK / Client Tests
sdk-test-java Java 17 AWS SDK for Java v2 1,326
sdk-test-node Node.js AWS SDK for JavaScript v3 449
sdk-test-python Python 3 boto3 311
sdk-test-go Go AWS SDK for Go v2 + RDS Data API SDK v1 157
sdk-test-awscli Bash AWS CLI v2 205
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.

Migrating from LocalStack

Floci is a drop-in replacement for LocalStack Community. The port, credentials, SDK configuration, and CLI endpoint pattern work the same way. Swap the image and keep going.

# Before
image: localstack/localstack

# After, standard image
image: floci/floci:latest

# After, if init scripts need AWS CLI or boto3
image: floci/floci:latest-compat

LocalStack environment variables are translated automatically:

LocalStack Floci equivalent
LOCALSTACK_HOST FLOCI_HOSTNAME
PERSISTENCE=1 FLOCI_STORAGE_MODE=persistent
LAMBDA_DOCKER_NETWORK FLOCI_SERVICES_LAMBDA_DOCKER_NETWORK
LAMBDA_REMOVE_CONTAINERS=1 FLOCI_SERVICES_LAMBDA_EPHEMERAL=true
DEBUG=1 QUARKUS_LOG_LEVEL=DEBUG

Init scripts mounted under /etc/localstack/init/ run unchanged. The /_localstack/init and /_localstack/health endpoints are still served. Once the emulator is up, the log also ends with a LocalStack-style Ready. line, so tooling that watches the log for it, such as the default wait strategy of Testcontainers' LocalStackContainer, works unchanged. Set LOCALSTACK_PARITY=false to opt out of automatic translation.

See the full migration guide.

Image Tags

Every tag combines a variant and a channel.

Channel Standard Baseline (ARM64 only) Compat with AWS CLI and boto3
Release, floating latest latest-baseline latest-compat
Release, pinned x.y.z x.y.z-baseline x.y.z-compat
Nightly, floating nightly — nightly-compat
Nightly, dated nightly-mmddyyyy — nightly-mmddyyyy-compat

Use latest for stable releases, a pinned version for reproducible builds, and nightly to track main.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

59 total
  1. 2.1.02.1.0Sep 15, 2026

    # [2.1.0](https://github.com/floci-io/floci/compare/2.0.1...2.1.0) (2026-09-15) ### Bug Fixes * **acm:** reflect the requested ValidationDomain in DescribeCertificate ([#3264](https://github.com/floci-io/floci/issues/3264)) ([922eb0b](https://github.com/floci-io/floci/commit/922eb0b9e501e1701985fe568e9d379ee3591818)) * **acm:** reject RequestCertificate key algorithms real ACM does not support ([#3044](https://github.com/floci-io/floci/issues/3044)) ([db6c419](https://github.com/floci-io/floci/commit/db6c41945939cbf39b657f707b1ecf7929729a7e)), closes [#3027](https://github.com/floci-io/floci/issues/3027) * **acm:** report SUCCESS domain validation once a certificate is issued ([#3112](https://github.com/floci-io/floci/issues/3112)) ([9b28388](https://github.com/floci-io/floci/commit/9b28388d89ec0bdd1cdda11a588144d5cbb60a23)) * **acm:** stop hex-shaped names becoming bogus IP address SANs ([#3335](https://github.com/floci-io/floci/issues/3335)) ([7a7531a](https://github.com/floci-io/floci/commit/7a7531a6b9ea4e91b7edd1d98f638cd18a657055)) * **amazonmq:** add configuration for AMQP and console host port ranges ([#3315](https://github.com/floci-io/floci/issues/3315)) ([2d5a8f7](http

  2. 2.0.12.0.1Sep 1, 2026

    ## [2.0.1](https://github.com/floci-io/floci/compare/2.0.0...2.0.1) (2026-09-01) ### Bug Fixes * **rds-data:** fixing empty array response from statement ([#2880](https://github.com/floci-io/floci/issues/2880)) ([46283f3](https://github.com/floci-io/floci/commit/46283f3209275dde55ede37ce6d889b5d296d3c5))

  3. 2.0.02.0.0Sep 1, 2026

    # [2.0.0](https://github.com/floci-io/floci/compare/1.7.0...2.0.0) (2026-09-01) * fix(stepfunctions)!: reject JSONata top-level references at definition time ([#2699](https://github.com/floci-io/floci/issues/2699)) ([5534460](https://github.com/floci-io/floci/commit/553446049294499455a70f411d2db3c0050c17ae)) ### Bug Fixes * **acm:** correct wildcard validation record names ([#2575](https://github.com/floci-io/floci/issues/2575)) ([88bf0a2](https://github.com/floci-io/floci/commit/88bf0a293155947487ce72b89cca2514daf7547a)) * **apigateway:** match measured JWT claim wire format and enforce route authorizationScopes ([#2011](https://github.com/floci-io/floci/issues/2011)) ([4980210](https://github.com/floci-io/floci/commit/498021087f23b316d609814c264a280b17a719c5)) * **apigateway:** pass RequestContext to ApiGatewayExecuteController in trailing-slash tests ([#2394](https://github.com/floci-io/floci/issues/2394)) ([41953d8](https://github.com/floci-io/floci/commit/41953d88200017da7b4eb15d0f6ce149aca83c5b)), closes [#2377](https://github.com/floci-io/floci/issues/2377) * **apigateway:** project HTTP API v2 cookies ([#2391](https://github.com/floci-io/floci/issues/2391)) ([48880aa](

  4. 1.7.01.7.0Aug 18, 2026

    ## 🎉 Highlights This release is one of the largest in Floci's history: **nine new services** including **Bedrock AgentCore**, **Lambda MicroVMs**, **CloudHSM v2**, **GuardDuty**, **SWF**, **S3 Tables**, **Managed Service for Apache Flink**, **Application Auto Scaling**, and **transit gateways**. **AppSync Phase 6** closes the six-release build-out. **CloudFront serves real content** from S3 and custom origins. **EKS gains IRSA** with real OIDC. Massive **CloudFormation resource push** (11 new resource types plus new intrinsics). **IAM seeds the full AWS managed policy catalog**. Following 1.6.0's platform-additions bump, 1.7.0 is a maturity-and-breadth release. ### 🆕 Nine new services - **Bedrock AgentCore** — AgentCore control plane and `InvokeAgentRuntime` stub, extending the Bedrock story from 1.6.0 (#2316) - **Lambda MicroVMs** — service module and CloudFormation types for the new Lambda MicroVMs compute model (#2079) - **CloudHSM v2** — hardware security module emulation (#1776) - **GuardDuty** — detector and organization configuration emulation (#2346) - **SWF** — Simple Workflow Service emulation (#2257) - **S3 Tables** — metadata service emulation (#2322) -

  5. 1.6.01.6.0Aug 6, 2026

    ## 🎉 Highlights This release adds **three new services** — **Amazon MWAA**, **CloudWatch RUM**, and **Bedrock** with real LLM proxy — brings the **Lambda Extensions API**, lands a substantial **CloudFormation resource expansion**, and ships the **one-button release cut with ECR Public versioned publishing** infrastructure. This is the first release in the 1.6.x series, and the version bump reflects the depth of platform additions: real LLMs via a proxy backend, real Airflow, and Lambda extensions collectively unlock service categories that previously required real AWS accounts. ### 🆕 Amazon MWAA backed by real Airflow **Amazon MWAA** (Managed Workflows for Apache Airflow) emulation lands ([#2086](https://github.com/floci-io/floci/pull/2086)), backed by a **real Airflow LocalExecutor**. Data engineering workflows that depend on Airflow DAG scheduling can now be exercised locally without provisioning real MWAA environments. Continues the real-Docker-backed pattern (Postgres, Redis, k3s, RabbitMQ, Redpanda, Valkey). ### 🆕 CloudWatch RUM **CloudWatch RUM** app-monitor service ([#1797](https://github.com/floci-io/floci/pull/1797)) enables local testing of real-user mon

Code frequency

additions and deletions
+186.8K-186.8KWeek of 2026-03-15: +51,741 linesWeek of 2026-03-15: -996 linesWeek of 2026-03-22: +10,180 linesWeek of 2026-03-22: -475 linesWeek of 2026-03-29: +21,013 linesWeek of 2026-03-29: -1,228 linesWeek of 2026-04-05: +68,194 linesWeek of 2026-04-05: -6,768 linesWeek of 2026-04-12: +29,035 linesWeek of 2026-04-12: -2,323 linesWeek of 2026-04-19: +22,774 linesWeek of 2026-04-19: -1,179 linesWeek of 2026-04-26: +35,909 linesWeek of 2026-04-26: -1,403 linesWeek of 2026-05-03: +36,799 linesWeek of 2026-05-03: -1,474 linesWeek of 2026-05-10: +32,928 linesWeek of 2026-05-10: -2,440 linesWeek of 2026-05-17: +20,461 linesWeek of 2026-05-17: -915 linesWeek of 2026-05-24: +16,048 linesWeek of 2026-05-24: -501 linesWeek of 2026-05-31: +20,397 linesWeek of 2026-05-31: -1,173 linesWeek of 2026-06-07: +27,778 linesWeek of 2026-06-07: -1,549 linesWeek of 2026-06-14: +27,330 linesWeek of 2026-06-14: -2,199 linesWeek of 2026-06-21: +33,747 linesWeek of 2026-06-21: -1,746 linesWeek of 2026-06-28: +18,396 linesWeek of 2026-06-28: -8,590 linesWeek of 2026-07-05: +26,913 linesWeek of 2026-07-05: -2,039 linesWeek of 2026-07-12: +4,129 linesWeek of 2026-07-12: -320 linesWeek of 2026-07-19: +3,798 linesWeek of 2026-07-19: -700 linesWeek of 2026-07-26: +10,392 linesWeek of 2026-07-26: -336 linesWeek of 2026-08-02: +25,838 linesWeek of 2026-08-02: -629 linesWeek of 2026-08-09: +98,701 linesWeek of 2026-08-09: -3,115 linesWeek of 2026-08-16: +67,713 linesWeek of 2026-08-16: -3,610 linesWeek of 2026-08-23: +117,069 linesWeek of 2026-08-23: -3,699 linesWeek of 2026-08-30: +120,655 linesWeek of 2026-08-30: -7,575 linesWeek of 2026-09-06: +186,824 linesWeek of 2026-09-06: -9,777 linesWeek of 2026-09-13: +150,541 linesWeek of 2026-09-13: -19,974 linesWeek of 2026-09-20: +164,301 linesWeek of 2026-09-20: -20,343 linesMar 15, 2026Sep 20, 2026
+1.4M lines added, -107.1K removed over the last year.

Commits per week

last 52 weeks
3530Week of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 26 commitsWeek of 2026-03-22: 40 commitsWeek of 2026-03-29: 75 commitsWeek of 2026-04-05: 86 commitsWeek of 2026-04-12: 100 commitsWeek of 2026-04-19: 62 commitsWeek of 2026-04-26: 63 commitsWeek of 2026-05-03: 49 commitsWeek of 2026-05-10: 57 commitsWeek of 2026-05-17: 64 commitsWeek of 2026-05-24: 47 commitsWeek of 2026-05-31: 55 commitsWeek of 2026-06-07: 69 commitsWeek of 2026-06-14: 78 commitsWeek of 2026-06-21: 68 commitsWeek of 2026-06-28: 57 commitsWeek of 2026-07-05: 71 commitsWeek of 2026-07-12: 15 commitsWeek of 2026-07-19: 9 commitsWeek of 2026-07-26: 40 commitsWeek of 2026-08-02: 55 commitsWeek of 2026-08-09: 121 commitsWeek of 2026-08-16: 93 commitsWeek of 2026-08-23: 154 commitsWeek of 2026-08-30: 218 commitsWeek of 2026-09-06: 319 commitsWeek of 2026-09-13: 296 commitsWeek of 2026-09-20: 353 commitsSep 28, 2025Sep 20, 2026
2.7K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 26 commitsSun 1:00 — 20 commitsSun 2:00 — 19 commitsSun 3:00 — 7 commitsSun 4:00 — 8 commitsSun 5:00 — 6 commitsSun 6:00 — 7 commitsSun 7:00 — 8 commitsSun 8:00 — 8 commitsSun 9:00 — 15 commitsSun 10:00 — 26 commitsSun 11:00 — 13 commitsSun 12:00 — 10 commitsSun 13:00 — 9 commitsSun 14:00 — 16 commitsSun 15:00 — 8 commitsSun 16:00 — 23 commitsSun 17:00 — 16 commitsSun 18:00 — 12 commitsSun 19:00 — 13 commitsSun 20:00 — 22 commitsSun 21:00 — 27 commitsSun 22:00 — 30 commitsSun 23:00 — 25 commitsMon 0:00 — 20 commitsMon 1:00 — 22 commitsMon 2:00 — 6 commitsMon 3:00 — 11 commitsMon 4:00 — 5 commitsMon 5:00 — 9 commitsMon 6:00 — 9 commitsMon 7:00 — 7 commitsMon 8:00 — 6 commitsMon 9:00 — 12 commitsMon 10:00 — 8 commitsMon 11:00 — 6 commitsMon 12:00 — 15 commitsMon 13:00 — 8 commitsMon 14:00 — 9 commitsMon 15:00 — 7 commitsMon 16:00 — 6 commitsMon 17:00 — 12 commitsMon 18:00 — 17 commitsMon 19:00 — 16 commitsMon 20:00 — 22 commitsMon 21:00 — 36 commitsMon 22:00 — 46 commitsMon 23:00 — 30 commitsTue 0:00 — 30 commitsTue 1:00 — 16 commitsTue 2:00 — 13 commitsTue 3:00 — 5 commitsTue 4:00 — 15 commitsTue 5:00 — 12 commitsTue 6:00 — 12 commitsTue 7:00 — 14 commitsTue 8:00 — 23 commitsTue 9:00 — 13 commitsTue 10:00 — 12 commitsTue 11:00 — 13 commitsTue 12:00 — 20 commitsTue 13:00 — 7 commitsTue 14:00 — 29 commitsTue 15:00 — 11 commitsTue 16:00 — 10 commitsTue 17:00 — 14 commitsTue 18:00 — 12 commitsTue 19:00 — 15 commitsTue 20:00 — 21 commitsTue 21:00 — 29 commitsTue 22:00 — 42 commitsTue 23:00 — 27 commitsWed 0:00 — 27 commitsWed 1:00 — 29 commitsWed 2:00 — 15 commitsWed 3:00 — 11 commitsWed 4:00 — 6 commitsWed 5:00 — 15 commitsWed 6:00 — 19 commitsWed 7:00 — 10 commitsWed 8:00 — 13 commitsWed 9:00 — 10 commitsWed 10:00 — 14 commitsWed 11:00 — 8 commitsWed 12:00 — 16 commitsWed 13:00 — 10 commitsWed 14:00 — 8 commitsWed 15:00 — 18 commitsWed 16:00 — 18 commitsWed 17:00 — 15 commitsWed 18:00 — 24 commitsWed 19:00 — 22 commitsWed 20:00 — 13 commitsWed 21:00 — 36 commitsWed 22:00 — 24 commitsWed 23:00 — 45 commitsThu 0:00 — 58 commitsThu 1:00 — 21 commitsThu 2:00 — 9 commitsThu 3:00 — 3 commitsThu 4:00 — 11 commitsThu 5:00 — 12 commitsThu 6:00 — 19 commitsThu 7:00 — 9 commitsThu 8:00 — 19 commitsThu 9:00 — 12 commitsThu 10:00 — 21 commitsThu 11:00 — 11 commitsThu 12:00 — 14 commitsThu 13:00 — 10 commitsThu 14:00 — 15 commitsThu 15:00 — 14 commitsThu 16:00 — 12 commitsThu 17:00 — 13 commitsThu 18:00 — 18 commitsThu 19:00 — 11 commitsThu 20:00 — 13 commitsThu 21:00 — 29 commitsThu 22:00 — 18 commitsThu 23:00 — 20 commitsFri 0:00 — 20 commitsFri 1:00 — 26 commitsFri 2:00 — 12 commitsFri 3:00 — 17 commitsFri 4:00 — 9 commitsFri 5:00 — 9 commitsFri 6:00 — 13 commitsFri 7:00 — 15 commitsFri 8:00 — 22 commitsFri 9:00 — 10 commitsFri 10:00 — 20 commitsFri 11:00 — 10 commitsFri 12:00 — 11 commitsFri 13:00 — 10 commitsFri 14:00 — 15 commitsFri 15:00 — 17 commitsFri 16:00 — 20 commitsFri 17:00 — 18 commitsFri 18:00 — 27 commitsFri 19:00 — 14 commitsFri 20:00 — 19 commitsFri 21:00 — 20 commitsFri 22:00 — 22 commitsFri 23:00 — 21 commitsSat 0:00 — 33 commitsSat 1:00 — 17 commitsSat 2:00 — 9 commitsSat 3:00 — 13 commitsSat 4:00 — 10 commitsSat 5:00 — 6 commitsSat 6:00 — 5 commitsSat 7:00 — 15 commitsSat 8:00 — 15 commitsSat 9:00 — 14 commitsSat 10:00 — 9 commitsSat 11:00 — 7 commitsSat 12:00 — 18 commitsSat 13:00 — 18 commitsSat 14:00 — 11 commitsSat 15:00 — 15 commitsSat 16:00 — 21 commitsSat 17:00 — 14 commitsSat 18:00 — 15 commitsSat 19:00 — 28 commitsSat 20:00 — 19 commitsSat 21:00 — 38 commitsSat 22:00 — 26 commitsSat 23:00 — 21 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jul 25, 2026daily#6+5
May 14, 2026daily#23+46
May 13, 2026daily#16+65
May 12, 2026daily#6+82
May 11, 2026daily#15+128
Mar 22, 2026daily#20+210
  • trimstray/the-book-of-secret-knowledge

    A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.

    247.8K stars

  • krahets/hello-algo

    《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现

    130.6K stars · Java

  • Stirling-Tools/Stirling-PDF

    #1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

    93.6K stars · Java

  • ByteByteGoHq/system-design-101

    Explain complex systems using visuals and simple terms. Help you prepare for system design interviews.

    90.2K stars

  • NationalSecurityAgency/ghidra

    Ghidra is a software reverse engineering (SRE) framework

    80.6K stars · Java

  • elastic/elasticsearch

    Free and Open Source, Distributed, RESTful Search Engine

    78.2K stars · Java