MCPcopy
hub / github.com/floci-io/floci

github.com/floci-io/floci @1.5.29 sqlite

repository ↗ · DeepWiki ↗ · release 1.5.29 ↗
28,276 symbols 133,545 edges 1,648 files 1,937 documented · 7%
README

Floci Floci

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.

Floci is named after floccus, the cloud formation that looks like popcorn.

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.

https://github.com/user-attachments/assets/b55714dc-ef36-40ae-a734-cd2cadc288a8

All AWS services are available at http://localhost:4566. Any region works. Credentials can be any non-empty values.

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.

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, and CodeBuild 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.

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

65 AWS services. Broad coverage. Free forever.

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\nAPI Gateway · AppSync · ELB v2 · Auto Scaling\nElastic Beanstalk · CodeDeploy · CodePipeline · Backup · Bedrock Runtime · 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"]
            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

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, IAM, KMS, Secrets Manager, SSM
Events and workflows EventBridge, EventBridge Pipes, EventBridge Scheduler, Step Functions, CloudWatch Logs, CloudWatch Metrics
API and identity API Gateway REST, API Gateway v2, AppSync, Cognito, ACM, Route53, Cloud Map
Containers and compute ECS, EC2, EKS, ECR, CodeBuild, CodeDeploy, CodePipeline, AWS Batch, Auto Scaling, Elastic Beanstalk, ELB v2
Data, analytics, and AI Athena, Glue, EMR, Firehose, OpenSearch, S3 Vectors, Textract, Transcribe, Bedrock Runtime
Databases and caching RDS, RDS Data API, Neptune, DocumentDB, MemoryDB, ElastiCache
Messaging and transfer SES, Kinesis, MSK, Transfer Family
Security and governance WAF v2, CloudTrail, CloudFront, Resource Groups Tagging API
Cost and billing Pricing, Cost Explorer, Cost and Usage Reports, BCM Data Exports
Backup and config AWS Backup, AWS Config, AppConfig, AppConfigData, CloudFormation

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, 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
CloudFormation In-process Stacks, change sets, resource provisioning
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
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
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
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, NDJSON flush to S3
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
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 Runtime In-process stub Dummy Converse and InvokeModel responses for local development
EKS Real Docker, mock mode available k3s clusters with live Kubernetes API server
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 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
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
AWS Config In-pro

Extension points exported contracts — how you extend this code

StorageBackend (Interface)
Generic storage abstraction for AWS emulator services. @param the key type @param the value type [6 implementers]
src/main/java/io/github/hectorvent/floci/core/storage/StorageBackend.java
Resettable (Interface)
Interface for services or components that hold in-memory state and need to be cleared when the emulator state is reset o [51 …
src/main/java/io/github/hectorvent/floci/core/common/Resettable.java
ResourceUsageEnumerator (Interface)
SPI for any Floci service that wants to participate in Cost Explorer / CUR cost-and-usage reporting. Implementations [8 …
src/main/java/io/github/hectorvent/floci/core/common/ResourceUsageEnumerator.java
TagHandler (Interface)
Per-service handler for the REST tag endpoints that share the /tags/{resourceArn} path (API Gateway, EventBridge [7 implementers]
src/main/java/io/github/hectorvent/floci/core/common/TagHandler.java
Permit (Interface)
(no doc) [6 implementers]
src/main/java/io/github/hectorvent/floci/services/lambda/LambdaConcurrencyLimiter.java

Core symbols most depended-on inside this repo

put
called by 6071
src/main/java/io/github/hectorvent/floci/core/storage/StorageBackend.java
path
called by 4346
src/main/java/io/github/hectorvent/floci/services/apigateway/VtlTemplateEngine.java
get
called by 3417
src/main/java/io/github/hectorvent/floci/core/storage/StorageBackend.java
of
called by 3304
src/main/java/io/github/hectorvent/floci/core/common/AwsArnUtils.java
get
called by 3297
src/main/java/io/github/hectorvent/floci/services/ec2/Ec2MetadataServer.java
build
called by 3120
src/main/java/io/github/hectorvent/floci/core/common/XmlBuilder.java
builder
called by 2780
src/main/java/io/github/hectorvent/floci/services/appsync/graphql/AppSyncVtlContext.java
equals
called by 1871
src/main/java/io/github/hectorvent/floci/config/CertificateMetadata.java

Shape

Method 25,892
Class 1,976
Function 211
Interface 140
Enum 57

Languages

Java98%
Python2%
Go1%
TypeScript1%

Modules by API surface

src/main/java/io/github/hectorvent/floci/config/EmulatorConfig.java508 symbols
src/main/java/io/github/hectorvent/floci/services/cloudformation/CloudFormationResourceProvisioner.java167 symbols
src/main/java/io/github/hectorvent/floci/services/cognito/CognitoService.java147 symbols
src/main/java/io/github/hectorvent/floci/services/apigateway/ApiGatewayController.java142 symbols
src/main/java/io/github/hectorvent/floci/services/s3/S3Service.java140 symbols
src/main/java/io/github/hectorvent/floci/services/ec2/Ec2Service.java140 symbols
src/main/java/io/github/hectorvent/floci/services/cloudfront/CloudFrontController.java140 symbols
src/main/java/io/github/hectorvent/floci/services/ses/SesService.java132 symbols
src/main/java/io/github/hectorvent/floci/services/iot/IotService.java131 symbols
src/test/java/io/github/hectorvent/floci/services/ec2/Ec2IntegrationTest.java130 symbols
src/main/java/io/github/hectorvent/floci/services/ec2/Ec2QueryHandler.java126 symbols
src/test/java/io/github/hectorvent/floci/services/appsync/AppSyncIntegrationTest.java120 symbols

Dependencies from manifests, versioned

com.cronutils:cron-utils9.2.1 · 1×
com.dashjoin:jsonata0.9.10 · 1×
com.fasterxml.jackson.core:jackson-annotations
com.fasterxml.jackson.dataformat:jackson-dataformat-cbor
com.fasterxml.jackson.dataformat:jackson-dataformat-yaml
com.fasterxml.jackson.datatype:jackson-datatype-jsr310
com.github.docker-java:docker-java-api3.7.1 · 1×
com.github.docker-java:docker-java-core3.7.1 · 1×
com.github.docker-java:docker-java-transport3.7.1 · 1×
com.github.docker-java:docker-java-transport-httpclient53.7.1 · 1×
com.google.api.grpc:proto-google-common-protos2.49.0 · 1×

Datastores touched

(mysql)Database · 1 repos
appDatabase · 1 repos
(mongodb)Database · 1 repos
mydbDatabase · 1 repos

For agents

$ claude mcp add floci \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact