- Limbo एक प्रायोगिक प्रोजेक्ट है जो memory safety देने वाले Rust में SQLite को फिर से लागू करता है
- SQLite की embedded प्रकृति पसंद थी, लेकिन अधिक खुला development model चाहिए था, इसलिए libSQL प्रोजेक्ट शुरू किया गया
- SQLite को fork करने का कारण: नई features को आसानी से integrate किया जा सकता है और मौजूदा code के साथ compatibility बनाए रखी जा सकती है
- नुकसान: SQLite का test suite proprietary है और C में लिखा गया है, इसलिए code evolution कठिन है
- नया approach
- vector search feature जोड़ते समय SQLite की सीमाओं का अनुभव हुआ
- SQLite को शुरू से फिर से लिखकर compatibility बनाए रखते हुए अधिक आक्रामक feature additions की संभावना तलाशना
- अगले कदम
- Limbo को आधिकारिक Turso प्रोजेक्ट में बदलना
- SQLite जैसी reliability बनाए रखते हुए memory safety देने वाली नई architecture बनाने का लक्ष्य
- SQLite की reliability को चुनौती
- deterministic simulation testing (DST) के जरिए उच्च reliability हासिल करना
- Antithesis के साथ मिलकर system-level DST framework का उपयोग
- वर्तमान स्थिति
- पूरी तरह asynchronous I/O: Limbo पूरी तरह asynchronous design पर आधारित है, जो SQLite के synchronous interface की समस्या हल करता है
- WASM के लिए design: WASM environment में उपयोग को ध्यान में रखकर बनाया गया design
- performance: कई workloads में SQLite के बराबर या उससे तेज़ performance
- simplicity: आधुनिक environments में कम महत्वपूर्ण features हटाकर बेहतर user experience देना
- अतिरिक्त जानकारी
- Limbo MIT license के तहत GitHub पर उपलब्ध है
- embedded database बनाने में रुचि रखने वाले लोगों को आमंत्रित किया जाता है, जो SQLite के वादे को अगले चरण तक ले जाना चाहते हैं
4 टिप्पणियां
जिस प्रोजेक्ट में मैं योगदान दे रहा था, उसे Hacker News पर देखना काफ़ी दिलचस्प लगा, हाहा
Hacker News राय
SQLite ऐसा प्रोजेक्ट लगता है जिसे code quality और सख्त testing के कारण दोबारा लिखने की ज़रूरत नहीं है
SQLite के "open contribution" न होने पर होने वाली चर्चा इस बात को नज़रअंदाज़ करती है कि योगदान स्वीकार करना हमेशा हर योगदान को अपनाने के बराबर नहीं होता
SQLite3 से LibSQL में fork की शुरुआती घोषणा पर नकारात्मक प्रतिक्रिया थी
अधिकतम performance के लिए WAL mode चुनना चाहिए, और POSIX advisory locking को disable करना चाहिए
कुछ लोगों ने कहा कि उन्हें पहली बार पता चला कि SQLite का test suite proprietary है
"async IO" सेक्शन की दलील से सहमति नहीं है
कुछ लोगों का कहना है कि यह अभी शुरुआती चरण का प्रोजेक्ट है
Fil-C से compile करने पर memory-safe SQLite पाया जा सकता है
SQLite लगभग 156,000 lines of code और 92,000 lines of test code से बना है
माना जा रहा है कि Rust variant के लिए DO-178B certification पर विचार नहीं किया जा रहा है
"Limbo" नाम AT&T के Inferno operating system के लिए post-C/UNIX language में भी इस्तेमाल होता है
SQLite एक ऐसा प्रोजेक्ट लगता है जिसे उसके code quality और कड़े testing की वजह से दोबारा लिखने की ज़रूरत नहीं है -> SQLite के बारे में ऐसी राय सच में ईर्ष्या करने लायक और शानदार लगती है।
कहा जा रहा है कि यह DO-178B process का पालन करता है और 100% MC/DC code coverage हासिल कर चुका है.
SQLite की अनजानी कहानी