HeadlinesBriefing favicon HeadlinesBriefing.com

वास्तव में क्वेरी करने योग्य एक्ज़ीक्यूटेबल्स: SQLite प्रोग्राम

Hacker News •
×

मैं यह देखकर सुखद आश्चर्यचकित हुआ कि मेरा लेख 'आपका एक्ज़ीक्यूटेबल एक SQLite डेटाबेस है' व्यापक रूप से गूंजा। SELF एक ऐसा फॉर्मेट है जहां प्रोग्राम SQLite डेटाबेस होते हैं। binfmt_misc का उपयोग करके एक कस्टम इंटरप्रेटर को ट्रिगर करना जो segments टेबल में पंक्तियों को एंट्री पॉइंट पर कूदने के लिए मैप करता है, बाइनरी टूलिंग SQL में सिमट जाती है।

आश्चर्यजनक अंतर्दृष्टि: यदि एक्ज़ीक्यूटेबल रनटाइम पर लिखने योग्य डेटाबेस है, तो चल रहा प्रोग्राम अपने स्टेट को उसी फाइल में ट्रांजेक्शनली स्टोर कर सकता है। self-httpd इसका प्रदर्शन करता है - एक सिंगल-फाइल वेब सर्वर जिसमें प्रोग्राम, वेबसाइट, रूट्स और विज़िटर लॉग्स होते हैं। सभी स्टेट अपडेट उसी SQLite फाइल में होते हैं जिसमें प्रोग्राम खुद होता है।

जबकि redbean Lua हुक के साथ सेल्फ-एक्सट्रैक्टिंग ZIP आर्काइव्स का उपयोग करता है, SELF हैंडलर के रूप में डेटाबेस पंक्तियों का उपयोग करता है। Lua स्क्रिप्ट्स के बजाय, हैंडलर handlers टेबल में SQL INSERT स्टेटमेंट्स होते हैं। मुख्य अंतर: redbean स्क्रिप्टिंग हुक प्रदान करता है, SELF क्वेरी करने योग्य एक्ज़ीक्यूटेबल्स प्रदान करता है जहां आप चल रहे प्रोग्राम से SELECT कर सकते हैं।

प्रोसेस argv[0] के माध्यम से खुद को एक्सेस करता है जिसमें एक्ज़ीक्यूटेबल पथ होता है। इंटरप्रेटर एंट्री पॉइंट पर कूदने से पहले अपना SQLite कनेक्शन जारी करता है, जिससे प्रोग्राम को अपना खुद का फाइल हैंडल खोलने की अनुमति मिलती है।

मुख्य संस्थाएं: लोग: Justine Tunney