
Floci emula AWS localmente com compatibilidade drop-in open source
O que é o Floci
Floci é um emulador local da AWS, gratuito e de código aberto (licença MIT), destinado a desenvolvimento, testes e CI. Ele expõe serviços com o formato da AWS em http://localhost:4566, sem exigir conta na nuvem, token de autenticação ou desbloqueio de recursos pagos - bastando um docker compose up ou o comando floci start do CLI oficial. Ferramentas existentes como SDKs da AWS, CLI, Terraform, CDK e OpenTofu continuam funcionando apontando para o endpoint local, com credenciais que aceitam valores não vazios quaisquer. O projeto é o membro AWS de uma família de emuladores que também cobre Azure, GCP e OCI (portas 4577, 4588 e 4599).
Por que existe: o fim da edição comunitária do LocalStack
A justificativa central do projeto é o encerramento da edição comunitária do LocalStack em março de 2026, que passou a exigir token de autenticação e congelou atualizações de segurança. O Floci se apresenta como alternativa "sem amarras" e, sobretudo, como substituto drop-in: basta trocar a imagem no Docker Compose. O projeto traduz automaticamente variáveis de ambiente do LocalStack (como LOCALSTACK_HOST e PERSISTENCE), roda scripts de init montados em /etc/localstack/init/ sem alterações, mantém os endpoints /_localstack/init e /_localstack/health e encerra os logs com uma linha Ready. compatível com estratégias de espera existentes, como a do LocalStackContainer do Testcontainers. Há um modo de compatibilidade (latest-compat) que inclui AWS CLI e boto3 para scripts de inicialização que dependam deles.
Arquitetura e execução real em Docker
O projeto diferencia três categorias de serviços. Serviços sem estado (SSM, SQS, SNS, IAM, STS, KMS, Secrets Manager, Cognito, Step Functions, CloudFormation, API Gateway, entre muitos outros) e com estado (S3, DynamoDB e DynamoDB Streams) rodam em processo. Serviços nos quais a fidelidade importa usam contêineres Docker reais: Lambda (com imagens de runtime oficiais e pool de contêineres mornos), RDS (PostgreSQL, MySQL, MariaDB com imagens reais dos bancos), ElastiCache e MemoryDB (Valkey), Neptune (Gremlin Server ou Neo4j para openCypher), DocumentDB (MongoDB), MSK (Redpanda), Amazon MQ (RabbitMQ), ECS, EC2, EKS (via k3s), OpenSearch, CodeBuild, Managed Service for Apache Flink e MWAA (Airflow real com Postgres). Há também sidecars: Athena executa SQL real sobre S3 e Glue por meio de um sidecar DuckDB, e Verified Permissions usa um sidecar para parsing de políticas Cedar.
A imagem nativa, construída com base em Quarkus (o roteador HTTP usa JAX-RS/Vert.x), inicia em cerca de 24 ms, com cerca de 13 MiB de memória ociosa e imagem de aproximadamente 90 MB - números que o README compara a ~3,3 s, ~143 MiB e ~1,0 GB do LocalStack Community. A persistência é configurável em quatro modos: memory (para CI), persistent (gravação imediata em disco), hybrid (flush assíncrono a cada 5 segundos) e wal (write-ahead log, maior durabilidade). Há ainda isolamento multi-conta: se a AWS_ACCESS_KEY_ID tiver exatamente 12 dígitos, ela é tratada como ID de conta, tornando recursos de uma conta invisíveis para outra, incluindo credenciais temporárias via AssumeRole.
Cobertura, console e ecossistema
A lista de serviços emulados é extensa: aplicações, dados e eventos, identidade, infraestrutura, segurança e governança (WAF v2, GuardDuty, Organizations, Control Tower), além de custos e faturamento (Budgets, Pricing, Cost Explorer, Cost and Usage Reports com colunas CUR 2.0 e FOCUS 1.2). Alguns serviços de IA aparecem como stubs: Bedrock Runtime e AgentCore respondem com dados fictícios, e Textract, Transcribe e Comprehend também são emulações de API sem processamento real. Outros, como AWS FIS, simulam o plano de controle de forma segura, sem injetar falhas de verdade.
Floci inclui um console web (sidecar iniciado sob demanda a partir do socket Docker) que segue um "contrato de console" aberto, permitindo alternativas como StackPort e Floci Dash com apenas variáveis de ambiente. Existem módulos Testcontainers para Java, Node.js, Python e .NET, com o módulo Go em progresso. A suíte de compatibilidade do repositório reúne 2.576 testes automatizados em cinco SDKs (Java, JavaScript, Python, Go e AWS CLI) e três ferramentas de IaC (Terraform, OpenTofu e CDK).
Governança do projeto
O projeto se declara open source independente, financiado por patrocinadores que, segundo o README, não recebem funcionalidades, prioridade ou influência no roadmap. As versões seguem Conventional Commits via semantic-release, com lançamentos estáveis na primeira e terceira terça-feira de cada mês e tags nightly para acompanhar a branch principal. Não há branches de manutenção: todos os releases saem da main.