Floci 是一款免費、開源的本機 AWS 模擬器,適用於開發、測試和 CI。

它能在您的電腦上提供 AWS 風格的服務,而無需雲端帳號、授權令牌或付費功能。將您的 AWS SDK、CLI、Terraform、CDK、OpenTofu 或測試套件指向 `http://localhost:4566`,即可維持現有的工作流程。

Floci 的命名源自於一種名為 floccus 的雲層結構,看起來像爆米花。

運行 Floci 的最快方法是使用官方 CLI

匯出 AWS 環境變數:

正常使用您現有的 AWS 工具:

這個簡短的演示展示了 CLI 的流程:啟動 Floci,匯出本機 AWS 環境,運行標準 AWS CLI 命令,然後停止模擬器。

所有 AWS 服務均可在 `http://localhost:4566` 取得。任何區域均可。除非您明確啟用更嚴格的服務特定授權檢查,否則憑證可以是任何非空值。

然後手動配置您的 AWS 環境:

舊的 hectorvent/floci 儲存庫不再接收更新。

在沒有 AWS 帳號、授權令牌或付費功能的情況下,在本地運行與 AWS 相容的服務。

Lambda、RDS、Neptune、ElastiCache、MSK、ECS、EC2、EKS、OpenSearch 和 CodeBuild 使用真實的 Docker 支援執行,而非淺層模擬。

將標準 AWS 用戶端指向 `http://localhost:4566`。現有的憑證、區域、SDK、CLI 命令和 IaC 工作流程保持熟悉。

原生映像啟動速度以毫秒計,並保持閒置記憶體低,使其適用於本機開發和測試管道。

根據您需要的持久性設定檔,從記憶體內、持久性、混合式和寫入日誌儲存中選擇。

LocalStack 的社群版將於 2026 年 3 月停止服務,需要授權令牌並凍結安全性更新。Floci 是無條件的替代方案。

69 個 AWS 服務。廣泛涵蓋。永久免費。

Floci 支援應用程式服務、資料服務、事件、身份、基礎設施、計費和容器支援工作負載的本機模擬。

有關操作層級的相容性,請參閱服務概覽。

當內部模擬會降低準確性時,Floci 會使用真實的 Docker 容器。這適用於有狀態資料庫、連線密集型協定、運行時和建置系統。

Docker 支援的服務需要 Docker socket:

Floci 可以根據工作流程在速度和持久性之間進行權衡。使用 FLOCI_STORAGE_MODE 配置預設模式,或為每個服務覆寫儲存。

使用記憶體以快速運行測試。當您希望在容器重新啟動後保留狀態且開銷不大時,請使用混合模式。

更多詳細資訊,請參閱儲存配置文件。

Floci 支援每個帳號的資源隔離,無需額外設定。如果 AWS_ACCESS_KEY_ID 是 12 位數字,Floci 會將其用作帳號 ID。一個帳號創建的資源對另一個帳號不可見。

任何其他金鑰格式,例如 test 或 AKIA...,都會導致 Floci 回退到 FLOCI_DEFAULT_ACCOUNT_ID,預設為 000000000000。

STS 臨時憑證也會被路由:AssumeRole 的憑證會解析到假定角色的帳號,因此跨帳號的 assume-role-then-provision 模式可以在本地工作。解析優先順序為 12 位數字 AKID → 臨時會話查找 → FLOCI_DEFAULT_ACCOUNT_ID。

請參閱多帳號隔離文件。

將您現有的 AWS SDK 指向 `http://localhost:4566`。

Floci 具有 Testcontainers 模組,可以直接從測試中啟動隔離的 Floci 實例。這可以避免共享狀態、手動守護進程設定和埠衝突。

對於 Testcontainers 2.x / Spring Boot 4.x,請使用版本 2.5.0。

compatibility-tests 目錄驗證 Floci 在 SDK 和工具工作流程中的相容性。

跨 5 個 SDK 和 3 個 IaC 工具的 2,506 個自動化相容性測試。

Floci 是 LocalStack Community 的直接替代品。埠、憑證、SDK 配置和 CLI 端點模式的工作方式相同。交換映像即可繼續。

LocalStack 環境變數會自動轉換:

掛載在 /etc/localstack/init/ 下的初始化腳本將保持不變。/_localstack/init 和 /_localstack/health 端點仍會被提供。模擬器啟動後,日誌也會以 LocalStack 風格的 Ready. 行結尾,因此監視日誌以獲取它的工具——例如 Testcontainers 的 LocalStackContainer 的預設等待策略——將保持不變。設定 LOCALSTACK_PARITY=false 以選擇退出自動轉換。

每個標籤結合了變體和通道。

使用 latest 獲取穩定版本,使用固定版本進行可重現的建置,使用 nightly 追蹤 main 分支。

所有設定都可以透過帶有 FLOCI_ 前綴的環境變數進行覆寫。

當您的應用程式在不同的容器中運行時,請將 FLOCI_HOSTNAME 設定為 Floci 服務名稱,以便返回的 URL(例如 SQS QueueUrl 值)能夠正確解析。

沒有此設定,服務可能會返回使用 localhost 的 URL,這從應用程式容器指向錯誤的容器。

加入 Floci 社群,在 Slack 或 GitHub Discussions 上交流。歡迎提出功能想法、相容性問題、設計權衡和初步提案。

Floci 是獨立的開源專案,由使用者資助。如果 Floci 為您節省了時間,請考慮贊助該專案——每個級別都將使模擬器保持快速、輕量和免費。

大型標誌,頂部位置,專用支援頻道,對路線圖優先級的意見回饋,以及客製化整合協助。

您的標誌在此處——成為黃金贊助商。

此 README 和 floci.io 上的標誌,優先問題支援,以及版本說明中的提及。

您的標誌在此處——成為白銀贊助商。

此 README 中的名稱,GitHub 上的贊助商徽章,以及我們誠摯的感謝。

輕量、蓬鬆且永遠免費 - AWS 本機模擬器的替代方案