HeadlinesBriefing favicon HeadlinesBriefing.com

Nix में SQLite को लाने के तीन तरीके

Hacker News •
×

nixpkgs-multiverse प्रोजेक्ट JSON इंडेक्स (versions.json 5.3 MiB पर, history.json 7.5 MiB पर) का उपयोग करता है जो 305,492 पैकेज संस्करणों को 31,904 पैकेजों में कवर करता है। Nix का builtins.fromJSON उत्सुकता से पूरी फ़ाइलों को पार्स करता है, जिससे सिंगल लुकअप की लागत फुल स्कैन जितनी होती है।

तीन वर्कअराउंड मौजूद हैं। builtins.exec (2017 से) SQLite चलाता है और इसके Nix-फॉर्मेटेड आउटपुट को पार्स करता है, लेकिन प्रति क्वेरी एक प्रोसेस स्पॉन करता है। builtins.importNative (2014 से) कैश्ड SQLite हैंडल के साथ एक शेयर्ड लाइब्रेरी लोड करता है, स्टार्टअप ओवरहेड से बचाता है। दोनों को allow-unsafe-native-code-during-evaluation की आवश्यकता होती है।

एक तीसरा दृष्टिकोण इंडेक्स को 6.0 MiB Nix फ़ाइल में बदल देता है, Nix के आलसी मूल्यांकन का लाभ उठाकर केवल आवश्यक विशेषताओं को छूता है। एक चौथा विकल्प, builtins.wasm (मार्च 2026), WebAssembly फ़ंक्शन को कॉल करता है, नए builtins के बिना Nix का विस्तार करता है।

मुख्य संस्थाएं: कंपनियां: Determinate Systems | लोग: Eelco, rickynils, fmzakari