Floci – मुफ़्त ओपन सोर्स लोकल AWS emulator
(github.com/hectorvent)- Floci एक मुफ़्त ओपन सोर्स AWS लोकल emulator है जिसे अकाउंट रजिस्ट्रेशन या authentication के बिना तुरंत चलाया जा सकता है, और यह single-command पर चलने वाली lightweight संरचना देता है
- LocalStack Community Edition के 2026 में service end के बाद के लिए यह एक बिना किसी प्रतिबंध वाला विकल्प है, और MIT license के तहत commercial उपयोग भी अनुमति है
- 24ms startup time, 13MiB memory, और 90MB image size के साथ यह बेहद हल्का है, और LocalStack की तुलना में 100x तेज़ तथा 10x कम memory usage दिखाता है
- 20 से अधिक AWS services को पूरी तरह support करता है, और 408 SDK tests सभी pass करके उच्च compatibility देता है
- मौजूदा AWS SDK में सिर्फ endpoint बदलकर इसे तुरंत integrate किया जा सकता है, इसलिए यह local development और test environment के लिए तुरंत इस्तेमाल योग्य alternative solution देता है
Floci overview
- Floci एक मुफ़्त ओपन सोर्स AWS लोकल emulator है, जिसे अकाउंट रजिस्ट्रेशन या authentication token के बिना तुरंत चलाया जा सकता है
- यह सिर्फ
docker compose upकमांड से चल जाता है, और इसमें CI/CD restrictions या feature lock नहीं हैं - इसका नाम बादलों के एक रूप cirrocumulus floccus से आया है, और यह “हल्का, स्मूद और हमेशा मुफ़्त” होने का दावा करता है
LocalStack alternative के रूप में इसकी स्थिति
- LocalStack Community Edition की सेवा मार्च 2026 में समाप्त होने वाली है, जिसके बाद authentication token की आवश्यकता, CI support बंद होना, और security updates रुकने की योजना है
- Floci इसे ध्यान में रखकर एक बिना प्रतिबंध वाला alternative के रूप में दिया गया है
- इसे MIT license के तहत वितरित किया गया है, इसलिए commercial उपयोग सहित स्वतंत्र रूप से इस्तेमाल किया जा सकता है
Performance और feature comparison
- लगभग 24ms startup time, 13MiB idle memory, और 90MB Docker image size के कारण यह बहुत lightweight है
- LocalStack Community version की तुलना में लगभग 100x तेज़ startup, और 10x से अधिक कम memory usage
- 20 से अधिक AWS services support, 408/408 SDK tests pass
- मुख्य supported services:
-
API Gateway v2 / HTTP API**,** Cognito**,** ElastiCache (Redis + IAM authentication)
-
RDS (PostgreSQL, MySQL, IAM authentication), S3 Object Lock (COMPLIANCE / GOVERNANCE)
- DynamoDB Streams, IAM, STS, Kinesis, KMS आदि का पूर्ण support
- LocalStack में ऊपर दिए गए features आंशिक रूप से supported हैं या supported नहीं हैं
-
Quick start
- बेसिक
docker-compose.ymlconfiguration example दिया गया है- पोर्ट
4566का उपयोग, लोकल./datadirectory mount
- पोर्ट
- रन कमांड:
docker compose up - सभी services को
http://localhost:4566पर access किया जा सकता है - AWS credentials के लिए कोई भी value इस्तेमाल की जा सकती है (
AWS_ACCESS_KEY_ID=test,AWS_SECRET_ACCESS_KEY=test) - उदाहरण कमांड:
aws s3 mb s3://my-bucketaws sqs create-queue --queue-name my-queueaws dynamodb list-tables
SDK integration
- मौजूदा AWS SDK में सिर्फ endpoint बदलने से इसे वैसे ही इस्तेमाल किया जा सकता है
- प्रमुख भाषाओं के उदाहरण:
- Java (AWS SDK v2):
endpointOverride(URI.create("http://localhost:4566")) - Python (boto3):
endpoint_url="http://localhost:4566" - Node.js (AWS SDK v3):
endpoint: "http://localhost:4566"
- Java (AWS SDK v2):
- सभी उदाहरणों में
regionहैus-east-1, और credentials के लिए"test"value उपयोग की गई है
Image tags
latest: native image, 1 सेकंड से कम startup time के कारण recommendedlatest-jvm: JVM-आधारित image, जहाँ platform compatibility अधिक महत्वपूर्ण हैx.y.z/x.y.z-jvm: version-fixed releases
Environment settings
- सभी settings को
FLOCI_prefix वाले environment variables से override किया जा सकता है - मुख्य variables:
QUARKUS_HTTP_PORT: default4566FLOCI_DEFAULT_REGION: defaultus-east-1FLOCI_DEFAULT_ACCOUNT_ID: default000000000000FLOCI_STORAGE_MODE:memory,persistent,hybrid,walमें से चुनें (defaulthybrid)FLOCI_STORAGE_PERSISTENT_PATH: data directory path (./data)
- पूरी configuration documentation: configuration docs
- service-specific storage settings: storage docs
License
- MIT license के तहत उपलब्ध, इसलिए बिना किसी प्रतिबंध के स्वतंत्र उपयोग और modification संभव
1 टिप्पणियां
Hacker News की राय
अच्छा होता अगर AWS, GCP, Azure जैसे cloud providers लोकल डेवलपमेंट के लिए आधिकारिक emulator देते
मैं अभी कई AWS serverless stacks इस्तेमाल कर रहा हूँ, और लोकल integration testing लगभग नामुमकिन है
Localstack एक ठीक-ठाक विकल्प है, लेकिन अगर यह सुविधा AWS खुद दे तो developer experience कहीं बेहतर होगा
लोग उन अंतरों को AWS bug समझेंगे, इसलिए AWS के लिए यह support nightmare बन जाएगा
यह भी दिलचस्प है कि AI-आधारित shift-left infrastructure tooling ट्रेंड की वजह से Localstack को प्रतिस्पर्धा मिल रही है
अब उसका दायरा कम हो गया है, लेकिन विचार यह था कि लोकल में पूरे Azure cloud की नकल की जाए
सॉफ़्टवेयर को किसी खास cloud API पर निर्भर होने से बचाने के लिए abstractions और interfaces के इर्द-गिर्द डिज़ाइन किया जाना चाहिए
मेरे लिए इस तरह के टूल बेकार कोशिश लगते हैं
unit testing के लिए AWS calls को mocking करना बेहतर है,
और लोकल डेवलपमेंट के लिए Terraform जैसे IaC tools से test environment को सचमुच provision करना ज़्यादा सुरक्षित है
अगर emulator का व्यवहार असली service से अलग हो, तो bug के production तक पहुँच जाने का जोखिम रहता है
“लोकल AWS” की अवधारणा पर अपना अनुभव और सोच साझा कर रहा हूँ
जो लोग credit card जोड़ने से भी हिचकते हैं, वे वैसे भी high-value customers नहीं बनते
लेकिन असली deployment के समय यह security debt चुकाना पड़ता है, और इसी दौरान “मेरे कंप्यूटर पर तो चल रहा था” वाला code टूट जाता है
किसी FOSS विकल्प के लिए उस स्तर तक पहुँचना मुश्किल लगता है
least privilege principle निभाने के लिए हर बार एक-एक permission खोलनी पड़ती है, और यह permission whack-a-mole game जैसा धीमा हो जाता है
अगर लोकल में IAM तक सही ढंग से emulate हो जाए, तो deployment cycle काफ़ी छोटा हो सकता है
यह सुविधा Localstack के paid version में है, इसलिए जानना चाहता हूँ कि नया प्रोजेक्ट इसे कितना अच्छे से लागू करता है
सैकड़ों integration tests जल्दी चलाने होते हैं, लेकिन असली AWS calls latency, consistency issues, cost, rate limit जैसी वजहों से अक्षम हो जाती हैं
हर developer को अलग AWS account देना भी management nightmare है
“AWS billing blast खुद झेलोगे तभी सीखोगे” कहना वैसा ही अवास्तविक उदाहरण है जैसे “आग सीखने के लिए जलना ज़रूरी है”
हर developer को अलग account देकर सिर्फ़ billing alert सेट कर दें तो security की समस्या बहुत बड़ी नहीं रहती
जानना चाहता हूँ कि यह प्रोजेक्ट moto से कैसे अलग है
Localstack के license बदलाव से लोग नाखुश हैं, लेकिन अच्छे विकल्प पहले से मौजूद हैं
moto की service coverage काफ़ी प्रभावशाली है
हमारी टीम भी लगभग migrate कर ही गई थी, लेकिन Localstack के enterprise support contract की वजह से वहीं बने हुए हैं
testing के लिए यह काफ़ी उपयोगी लगता है
मैं Ansible role के साथ Lambda packaging automation बना रहा हूँ,
और अगर S3 में पहले से zip मौजूद है या नहीं, इस हिस्से को mocking कर सकूँ तो काम बहुत आसान हो जाएगा
LocalStack का community edition मार्च 2026 में बंद हो रहा है, और authentication token की अनिवार्यता व security updates बंद होने की योजना है
Floci को इन सीमाओं के बिना एक विकल्प के रूप में पेश किया जा रहा है
CloudFormation deployment का इंतज़ार किए बिना तेज़ feedback loop बना, जिससे हज़ारों घंटे बचे
इंटरनेट कनेक्शन के बिना भी ट्रेन में testing की जा सकती थी
इस प्रोजेक्ट का नाम रोमानियाई में “छोटा बालों का गुच्छा” और slang में जघन बाल के अर्थ में आता है, इसलिए मज़ेदार है
यही वह प्रोजेक्ट है जिसका मैं इंतज़ार कर रहा था
मुझे Localstack पसंद है, लेकिन मुझे लगा कि community-driven open solution ज़्यादा उपयुक्त होगा
अगर AWS engineers भी सीधे इसमें योगदान दे सकें, तो सबके लिए फ़ायदेमंद होगा
अभी जब AI adoption तेज़ हो रहा है, लोकल integration testing अनिवार्य है
उसकी बजाय आधिकारिक local container version देना ज़्यादा व्यावहारिक होगा
लोकल testing ही सुरक्षित तरीके से “model के भ्रम में table delete कर देने” जैसी स्थिति का प्रयोग करने का तरीका है
मैंने Localstack इस्तेमाल किया है और वह काफ़ी अच्छा था
क्या किसी को GCP के लिए ऐसा कुछ पता है?
bigquery-emulator उपयोगी था,
लेकिन पूरे GCP को emulate करने वाली चीज़ अभी तक नहीं मिली
features अच्छे लगते हैं, लेकिन commit history लगभग नहीं है, और न PR हैं न issues
यह auto-generated project जैसा लगता है, इसलिए भरोसा करना मुश्किल महसूस होता है
असली data के साथ test करते समय यह सुरक्षित है या नहीं, इस पर यक़ीन नहीं होता
अभी यह बहुत शुरुआती अवस्था में है, इसलिए आगे देखेंगे
पहले लोग मानते थे कि open source है तो कोई न कोई security issue ढूँढ ही लेगा,
लेकिन आजकल LLM से security audit भी चलाया जा सकता है
यह परफ़ेक्ट नहीं है, लेकिन ऐसी automated audit से malicious code छिपाना मुश्किल हो जाता है