इस प्रोजेक्ट के बारे में

sled रस्ट में लिखा गया एक एम्बेडेड डेटाबेस है, जिसे इसके लेखक ने बीटा सॉफ़्टवेयर बताया है। इसका API एक थ्रेड-सुरक्षित BTreeMap<[u8], [u8]> जैसा दिखता है, इसलिए बुनियादी इंसर्ट, गेट, रेंज, रिमूव और कम्पेयर-एंड-स्वैप ऑपरेशन रस्ट डेवलपर्स को परिचित लगते हैं। README में सूचीबद्ध प्रमुख क्षमताओं में कई कीस्पेस में कई कुंजियों को परमाणु रूप से पढ़ने और लिखने के लिए सीरियलाइज़ेबल ACID ट्रांज़ैक्शन, पूरी तरह से परमाणु एकल-कुंजी संचालन, शून्य-प्रतिलिपि रीड, राइट बैच, कुंजी उपसर्गों पर परिवर्तनों की सदस्यता, कई कीस्पेस, मर्ज ऑपरेटर, आगे और पीछे की रेंज इटरेटर, और एक क्रैश-सुरक्षित मोनोटोनिक ID जनरेटर शामिल हैं। ऑप्शनल zstd कंप्रेशन एक बिल्ड सुविधा के पीछे उपलब्ध है जो डिफ़ॉल्ट रूप से अक्षम है। कार्यान्वयन को एक लॉक-फ्री लॉग पर लॉक-फ्री पेजकैश पर लॉक-फ्री ट्री के रूप में वर्णित किया गया है, जिसमें फ्लैश-अनुकूलित लॉग-संरचित स्टोरेज डिज़ाइन है। यह लंबी कुंजियों के लिए साझा उपसर्गों के साथ स्टोरेज लागत कम करने के लिए प्रीफिक्स एन्कोडिंग और सफ़िक्स ट्रंकेशन जैसी b-tree तकनीकों का उपयोग करता है। README का दावा है कि पारंपरिक B+ ट्री जैसी रीड परफॉर्मेंस के साथ LSM-ट्री जैसी राइट परफॉर्मेंस मिलती है, और नोट करता है कि स्थायित्व डिफ़ॉल्ट रूप से हर 500ms में fsync होता है, जिसे flush_every_ms या मैनुअल flush/flush_async कॉल के माध्यम से कॉन्फ़िगर किया जा सकता है। उल्लेखनीय चेतावनियाँ: ट्रांज़ैक्शन आशावादी हैं, इसलिए ट्रांज़ैक्शन क्लोजर को बाहरी स्टेट या IO से बचना चाहिए जब तक कि वे इडेम्पोटेंट न हों; sled कई खुले इंस्टेंस का समर्थन नहीं करता है, इसलिए इसे प्रक्रिया के जीवनकाल के लिए खुला रहना चाहिए; सही लेक्सिकोग्राफ़िक क्रम के लिए संख्यात्मक कुंजियों को बिग-एंडियन संग्रहीत किया जाना चाहिए; और 1.0.0 से पहले ऑन-डिस्क प्रारूप बदलने की उम्मीद है, जिसके लिए मैनुअल माइग्रेशन की आवश्यकता होती है। README यह भी बताता है कि जब विश्वसनीयता प्राथमिक बाधा हो तो SQLite बेहतर है, जब स्टोरेज मूल्य/प्रदर्शन मायने रखता हो तो RocksDB, और उन मल्टी-प्रोसेस वर्कलोड के लिए LMDB जो शायद ही लिखते हैं। न्यूनतम समर्थित रस्ट संस्करण 1.62 है।