- Updated: March 22, 2026
- 5 min read
Floci – Free Open‑Source Local AWS Emulator Boosts Cloud Development
Skip to content You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert hectorvent / floci Public Notifications You must be signed in to change notification settings Fork 4 Star 77 Code Issues 1 Pull requests 0 Actions Projects Security 0 Insights Additional navigation options Code Issues Pull requests Actions Projects Security Insights mainBranchesTagsGo to fileCodeOpen more actions menuFolders and filesNameNameLast commit messageLast commit dateLatest commit History32 Commits32 Commits.github.github docsdocs srcsrc .dockerignore.dockerignore .gitignore.gitignore .releaserc.json.releaserc.json CHANGELOG.mdCHANGELOG.md CODE_OF_CONDUCT.mdCODE_OF_CONDUCT.md CONTRIBUTING.mdCONTRIBUTING.md DockerfileDockerfile Dockerfile.jvm-packageDockerfile.jvm-package Dockerfile.nativeDockerfile.native Dockerfile.native-packageDockerfile.native-package LICENSELICENSE README.mdREADME.md docker-compose-test.ymldocker-compose-test.yml docker-compose.ymldocker-compose.yml logo.svglogo.svg mkdocs.ymlmkdocs.yml pom.xmlpom.xml View all filesRepository files navigationREADMECode of conductContributingMIT license 🍿☁️ Light, fluffy, and always free Named after floccus — the cloud formation that looks exactly like popcorn. A free, open-source local AWS emulator. No account. No feature gates. No CI restrictions. Just docker compose up. LocalStack’s community edition sunset in March 2026 — requiring auth tokens, dropping CI support, and freezing security updates. Floci is the no-strings-attached alternative. Why Floci?Floci LocalStack Community Auth token required No Yes (since March 2026) CI/CD support Unlimited Requires paid plan 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 ✅ ❌ Cognito ✅ ❌ ElastiCache (Redis + IAM auth) ✅ ❌ RDS (PostgreSQL + MySQL + IAM auth) ✅ ❌ S3 Object Lock (COMPLIANCE / GOVERNANCE) ✅ ⚠️ Partial DynamoDB Streams ✅ ⚠️ Partial IAM (users, roles, policies, groups) ✅ ⚠️ Partial STS (all 7 operations) ✅ ⚠️ Partial Kinesis (streams, shards, fan-out) ✅ ⚠️ Partial KMS (sign, verify, re-encrypt) ✅ ⚠️ Partial Native binary ✅ ~40 MB ❌ 20+ services. 408/408 SDK tests passing. Free forever.Quick Start # docker-compose.yml services: floci: image: hectorvent/floci:latest ports: – “4566:4566” volumes: – ./data:/app/data docker compose up All services are available at http://localhost:4566. Use any AWS region — credentials can be anything.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 # Try it aws s3 mb s3://my-bucket aws sqs create-queue –queue-name my-queue aws dynamodb list-tables SDK Integration Point your existing AWS SDK at http://localhost:4566 — no other changes needed. // Java (AWS SDK v2) DynamoDbClient client = DynamoDbClient.builder() .endpointOverride(URI.create(“http://localhost:4566”)) .region(Region.US_EAST_1) .credentialsProvider(StaticCredentialsProvider.create( AwsBasicCredentials.create(“test”, “test”))) .build(); # Python (boto3) import boto3 client = boto3.client(“s3″, endpoint_url=”http://localhost:4566″, region_name=”us-east-1″, aws_access_key_id=”test”, aws_secret_access_key=”test”) // Node.js (AWS SDK v3) import { S3Client } from “@aws-sdk/client-s3”; const client = new S3Client({ endpoint: “http://localhost:4566”, region: “us-east-1”, credentials: { accessKeyId: “test”, secretAccessKey: “test” }, forcePathStyle: true, }); Image Tags Tag Description latest Native image — sub-second startup (recommended) latest-jvm JVM image — broadest platform compatibility x.y.z / x.y.z-jvm Pinned releases Configuration All settings are overridable via environment variables (FLOCI_ prefix).Variable Default Description QUARKUS_HTTP_PORT 4566 HTTP port FLOCI_DEFAULT_REGION us-east-1 Default AWS region FLOCI_DEFAULT_ACCOUNT_ID 000000000000 Default AWS account ID FLOCI_STORAGE_MODE hybrid memory · persistent · hybrid · wal FLOCI_STORAGE_PERSISTENT_PATH ./data Data directory → Full reference: configuration docs → Per-service storage overrides: storage docs License MIT — use it however you want. About Light, fluffy, and always free – AWS Local Emulator hectorvent.dev/floci/ Topics aws localstack aws-emulation Resources Readme License MIT license Code of conduct Code of conduct Contributing Contributing Uh oh! There was an error while loading. Please reload this page. Activity Stars 77 stars Watchers 1 watching Forks 4 forks Report repository Releases 9 1.0.4 Latest Mar 20, 2026 + 8 releases Packages 0 Uh oh! There was an error while loading. Please reload this page.Contributors 3 hectorvent Hector Ventura semantic-release-bot Semantic Release Bot juandiii Juan Diego López Languages Java 100.0% You can’t perform that action at this time. [{“Name”:”.github”,”Last commit message”:””,”Last commit date”:””},{“Name”:”docs”,”Last commit message”:””,”Last commit date”:””},{“Name”:”src”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.dockerignore”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.gitignore”,”Last commit message”:””,”Last commit date”:””},{“Name”:”.releaserc.json”,”Last commit message”:””,”Last commit date”:””},{“Name”:”CHANGELOG.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”CODE_OF_CONDUCT.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”CONTRIBUTING.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Dockerfile”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Dockerfile.jvm-package”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Dockerfile.native”,”Last commit message”:””,”Last commit date”:””},{“Name”:”Dockerfile.native-package”,”Last commit message”:””,”Last commit date”:””},{“Name”:”LICENSE”,”Last commit message”:””,”Last commit date”:””},{“Name”:”README.md”,”Last commit message”:””,”Last commit date”:””},{“Name”:”docker-compose-test.yml”,”Last commit message”:””,”Last commit date”:””},{“Name”:”docker-compose.yml”,”Last commit message”:””,”Last commit date”:””},{“Name”:”logo.svg”,”Last commit message”:””,”Last commit date”:””},{“Name”:”mkdocs.yml”,”Last commit message”:””,”Last commit date”:””},{“Name”:”pom.xml”,”Last commit message”:””,”Last commit date”:””},{}]