Floci – 一个免费、开源的本地 AWS 模拟器
Floci – A free, open-source local AWS emulator

原始链接: https://github.com/hectorvent/floci

## Floci:一个免费且开源的本地AWS模拟器 Floci是一个轻量级、无附加条件的LocalStack替代方案,专为本地AWS开发和测试设计。与将于2026年3月停止服务并带有限制的LocalStack社区版不同,Floci将**永远免费**,无需账户、功能门禁或CI限制。 它可以通过`docker compose up`轻松启动,并且启动时间(~24毫秒)和内存使用量(~13MiB)明显快于LocalStack。Floci目前支持超过20个AWS服务——包括S3、DynamoDB、RDS等——并且正在持续开发中。虽然某些服务支持不完全,但它通过了所有408个SDK测试。 Floci无需特殊配置;只需将现有的AWS SDK指向`http://localhost:4566`,并使用基本的测试凭证即可。它提供原生二进制文件以提高速度,或提供JVM镜像以获得更广泛的兼容性,所有这些都遵循宽松的MIT许可证。

## Floci:一个免费、开源的AWS模拟器 - 摘要 Floci是一个新的开源项目,旨在为AWS服务提供本地模拟器。讨论强调了对本地开发环境的持续需求,这些环境应镜像云服务,目前由LocalStack等工具部分解决。虽然AWS提供免费套餐,但用户担心超出限制、缺乏严格的支出控制以及在真实云环境中测试的复杂性。 本地模拟器的核心优势是更快的迭代速度——允许开发者在不产生费用或处理云特定延迟的情况下测试基础设施变更和代码。然而,保持与真实AWS环境的一致性是一个挑战,如果模拟器与AWS环境不完全对齐,可能会引发支持方面的噩梦。 一些评论者质疑此类项目的可行性,因为云提供商内部可能存在冲突,而另一些人则认为该项目的快速开发(可能由AI辅助)值得谨慎。尽管存在这些担忧,许多人仍然认为Floci是一个有价值的工具,尤其是在AI驱动的开发兴起以及对安全、本地测试环境的需求增加的情况下。该项目的速度和离线开发的潜力是关键优势。
相关文章

原文

Floci

🍿☁️ 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.

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.

# docker-compose.yml
services:
  floci:
    image: hectorvent/floci:latest
    ports:
      - "4566:4566"
    volumes:
      - ./data:/app/data

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

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,
});
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

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

MIT — use it however you want.

联系我们 contact @ memedata.com