Introduction
Floci is an open-source AWS cloud service emulator designed for local development and CI testing. It provides a lightweight alternative to LocalStack, focusing on fast startup times and minimal resource consumption while emulating core AWS services like S3, SQS, DynamoDB, and Lambda.
What Floci Does
- Emulates core AWS services (S3, SQS, Lambda, DynamoDB, EC2, ECS) locally
- Starts in seconds with minimal memory and CPU requirements
- Provides AWS-compatible API endpoints for standard SDK usage
- Supports Docker-based deployment for consistent dev/CI environments
- Integrates with Testcontainers for automated integration testing
Architecture Overview
Floci is written in Java and packages multiple AWS service emulations into a single lightweight container. Each emulated service exposes endpoints compatible with the official AWS SDKs. The system uses in-memory storage by default for speed, with optional persistent storage for stateful testing scenarios.
Self-Hosting & Configuration
- Deploy via Docker with a single command and default port 4566
- Configure which AWS services to enable via environment variables
- Set persistence mode for data to survive container restarts
- Adjust memory limits based on which services you need
- Use with standard AWS SDKs by overriding the endpoint URL
Key Features
- Significantly faster startup compared to heavier emulators
- Low memory footprint suitable for CI pipelines and laptops
- Compatible with standard AWS CLI and SDK configurations
- Native Testcontainers integration for Java and other languages
- Free and open-source with no feature gating
Comparison with Similar Tools
- LocalStack — more services but heavier resource usage and partially paywalled
- Moto — Python library for mocking AWS, not a running service
- ElasticMQ — SQS-only emulator, narrower scope
- MinIO — S3-compatible only, does not cover other AWS services
- DynamoDB Local — official but covers only DynamoDB
FAQ
Q: Which AWS services does Floci support? A: Core services including S3, SQS, DynamoDB, Lambda, EC2, and ECS. Check the documentation for the full list.
Q: Can I use it in CI/CD pipelines? A: Yes. Its fast startup and low resource usage make it well-suited for CI.
Q: Is it compatible with the AWS CLI? A: Yes. Point the --endpoint-url flag to your Floci instance.
Q: How does it compare to LocalStack Community? A: Floci focuses on lighter resource usage and faster boot, while LocalStack has broader service coverage.