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模拟器已发布(github.com/hectorvent)。Hacker News上的讨论强调了对此类工具的需求,因为当前云服务提供商并未提供强大的本地模拟器,这阻碍了开发和集成测试——尽管这对开发者体验和潜在收入增长有益。虽然Localstack已经存在,但许多人认为AWS本身提供的原生解决方案会更理想。 人们对该项目的快速开发表示担忧,一些人认为它很大程度上是由AI(特别是Claude)生成的,证据是文件中引用了AI以及提交记录混乱。另一些人强调了API兼容性对于一个成功的模拟器的关键重要性,需要针对官方AWS SDK进行彻底测试。 随着AI驱动的工作流程兴起,Floci被认为特别有价值,可以在部署到生产环境之前进行更安全的本地测试。一位用户还询问了Google Cloud Platform (GCP) 的类似模拟器,并提到BigQuery模拟器是一个有用的替代方案。最后,讨论还涉及可访问性问题,指出AWS的免费套餐仍然需要信用卡,这为一些用户设置了障碍。
相关文章

原文

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