
Node या ब्राउज़र में संरक्षित ARM64 कोड चलाएँ; डिकोड किए गए इमेज पिक्सेल और इनिशियलाइज़्ड मेमोरी का निरीक्षण करें।
संरक्षित नेटिव कोड चलाएँ। उसकी आरंभिक अवस्था को पुनः खोलें। Capsulith चयनित ARM64 फ़ंक्शन, उनके कॉलिंग कॉन्ट्रैक्ट और स्वामित्व वाली मेमोरी को Node या ब्राउज़र के लिए पैकेज करता है। मूल निर्देशों को बनाए रखें और मूल एप्लिकेशन के बिना, एक नए वर्कर में आरंभिक ऑब्जेक्ट को फिर से शुरू करें।
एक लेगेसी डिकोडर, चेकसम या पृथक बाइनरी रूटीन एक छोटा पुन: प्रयोज्य API बन सकता है। Capsulith दिखाता है कि कौन-से बाइट्स और निर्भरताएँ इसके साथ जाते हैं, निष्पादन कहाँ पढ़ता और लिखता है, और जब किसी सुविधा के लिए असमर्थित स्थिति की आवश्यकता होती है तो उसे क्यों निकाला नहीं जा सकता।
नेटिव इमेज वर्कबेंच खोलें। तैयार किए गए QOI आर्टवर्क के लिए Load & run example चुनें, या एक छोटी PNG या QOI इमेज लाएँ। निकाला गया मूल QOI एनकोडर एक फ़ाइल लिखता है, एक अलग नेटिव डिकोडर उसके पिक्सेल लौटाता है, और आप अलग-अलग RGBA बाइट्स का निरीक्षण कर सकते हैं। उस आरंभिक पिक्सेल आवंटन को संरक्षित करें, वर्कर बंद करें, फिर एक नए वर्कर में उसे पुनर्स्थापित करें और मुक्त करें। सार्वजनिक वर्कबेंच चलाने के लिए किसी खाते, अपलोड सर्वर, मूल बाइनरी या कंपाइलर की आवश्यकता नहीं है।
PNG स्पष्ट तुलना आधार के रूप में ब्राउज़र-डिकोडेड RGBA का उपयोग करता है; केवल-QOI इनपुट के लिए कोई स्वतंत्र स्रोत-पिक्सेल तुलना नहीं है। इमेजें प्रति आयाम 256 पिक्सेल और 1 MiB तक सीमित हैं। यह एक ज्ञात-स्रोत तैयार नेटिव कंपोनेंट प्रदर्शन है, न कि कोई नया कोडेक या सार्वभौमिक फ़ॉर्मेट रिकवरी। मूल QOI स्रोत, कॉन्ट्रैक्ट, स्वतंत्र नेटिव/FFmpeg नियंत्रण और स्टैंडअलोन Node कमांड।

कीलेस ब्राउज़र ऑब्जेक्ट डेमो आज़माएँ और Run lifecycle दबाएँ। यह वास्तविक निकाले गए निर्देशों को स्थानीय रूप से निष्पादित करता है; परिणाम उत्पन्न करने के लिए यह किसी सर्वर को कॉल नहीं करता।
रिलीज़ से Python wheel डाउनलोड करें, फिर:
python3 -m pip install capsulith-0.3.0-py3-none-any.whl
capsulith studio
http://127.0.0.1:6359 खोलें। फ़ंक्शन Studio LZ4 डिकोडर और xxHash नमूनों को बनाए रखता है। Object studio खोलें, Open original LZ4 example चुनें, फिर एक वास्तविक संकलित स्ट्रीम को बनाने, संपीड़ित करने, एक शब्दकोश सहेजने, चेकपॉइंट करने, पुनर्स्थापित करने, जारी रखने और मुक्त करने के लिए Run lifecycle चलाएँ। किसी API कुंजी या सशुल्क सेवा की आवश्यकता नहीं है। निष्कर्षण के लिए Python 3.10+ और Capstone आवश्यक हैं; ब्राउज़र शामिल WebAssembly एमुलेटर के माध्यम से निष्पादित करता है। Node 20+ केवल CLI या निर्यात किए गए Node कॉल के लिए आवश्यक है।
Studio एक ARM64 Mach-O dylib स्वीकार करता है, उसके फ़ंक्शन की सूची बनाता है, एक चयनित रूट निकालता है, और आपको बफ़र्स, रजिस्टर आर्ग्युमेंट, स्केलर इनपुट और रिटर्न प्रकार संपादित करने देता है। निर्भरता दृश्य सहायक/आयात को वास्तविक कॉल साइटों और मूल निर्देशों से जोड़ता है। निष्पादन घटनाएँ नामित मेमोरी क्षेत्र और मूल कोड से लिंक होती हैं। रुके हुए निष्पादन सफल-परिणाम के दावे के बिना आंशिक साक्ष्य दिखाते हैं।
Export portable capsule वर्तमान बाइट्स, अनुबंध और इनपुट, Node/ब्राउज़र रनर, पिन किया गया बैकएंड, पूर्ण बैकएंड स्रोत/बिल्ड स्क्रिप्ट और लाइसेंस डाउनलोड करता है। अनज़िप करें और node run.cjs चलाएँ, या उस फ़ोल्डर को HTTP पर सर्व करें और उसका स्वतंत्र ब्राउज़र रनर खोलें। उन कॉल के लिए Python, Capstone और मूल बाइनरी अनावश्यक हैं। निर्यातित API भिन्न इनपुट स्वीकार करता है, रद्दीकरण का समर्थन करता है और घोषित सीमाओं को लागू करता है।
Original LZ4 methods, restored dictionary access and exact native comparison in the object Studio
ऑब्जेक्ट Studio निकाले गए मॉड्यूल JSON को आयात करता है या स्पष्ट रूप से घोषित नामित विधियों के साथ आपके स्वामित्व वाले ARM64 Mach-O आर्टिफ़ैक्ट को पढ़ता है। वास्तविक रूट, चंक और निर्भरताओं का निरीक्षण करें; हेक्स या स्थानीय फ़ाइल से नामित कॉलर बफ़र्स आवंटित करें; एक विधि चुनें और टाइप किए गए क्षेत्र संदर्भ या पूर्णांक प्रदान करें। मेमोरी मैप अनुमानित फ़ील्ड के बजाय अपारदर्शी कच्चे बाइट्स के साथ वास्तविक स्वामित्व वाले क्षेत्र और आरंभीकरण दिखाता है। रिटर्न, एक्सेस रेंज, काउंटर और सीमित घटनाएँ मूल निर्देशों से आती हैं।
किसी ऐसे ऑपरेशन से पहले चेकपॉइंट सहेजें जिसे आपको पूर्ववत करने की आवश्यकता हो सकती है। मिलते-जुलते मॉड्यूल को पुनर्स्थापित करने से गेस्ट पते और क्षेत्र ID संरक्षित रहते हैं लेकिन एक नई इंस्टेंस पहचान बनती है; क्षेत्र ID द्वारा संदर्भों को पुनः बाइंड करें। इनपुट संपादित करने से पुराना साक्ष्य रद्द हो जाता है, और किसी फ़ॉल्ट या रद्दीकरण के लिए पूर्व चेकपॉइंट या नई इंस्टेंस आवश्यक है। नेटिव फ्री और कॉलर-बफ़र रिलीज़ अलग स्पष्ट लाइफ़साइकिल ऑपरेशन हैं। रनटाइम कभी अनुमान नहीं लगाता कि नेटिव पॉइंटर अभी भी किसी बफ़र को संदर्भित करते हैं।
capsulith module examples/lz4/liblz4.dylib \
--methods examples/native-objects/methods.json --out stream.module.json
node runtime/object-cli.cjs examples/native-objects/start.json \
--module stream.module.json --checkpoint-out first.checkpoint.json
# The first Node process has ended. This command opens a fresh worker.
node runtime/object-cli.cjs examples/native-objects/continue.json \
--module stream.module.json --checkpoint first.checkpoint.json
capsulith export-module stream.module.json \
--checkpoint first.checkpoint.json --out stream-object.zip
नए आउटपुट नाम चुनें; module, checkpoint और object export कमांड मौजूदा फ़ाइलों को ओवरराइट करने से इनकार करते हैं। दिए गए ऑपरेशन प्रोग्राम दस्तावेज़ित LZ4 लाइफ़साइकिल के लिए विशिष्ट हैं। सामान्य मॉड्यूल को अपने स्वयं के कॉलर-घोषित मेथड्स और ऑपरेशन प्रोग्राम की आवश्यकता होती है।
एक object export में मूल instruction module, वैकल्पिक रूप से सुरक्षित रखे गए checkpoint बाइट्स, स्वतंत्र Node/browser रनर, object Studio, runtime और संबंधित backend स्रोत/बिल्ड स्क्रिप्ट, लाइसेंस, और बाइट्स, SHA256 और अनुमतियों वाली एक फ़ाइल मैनिफ़ेस्ट शामिल होता है। फ़ोल्डर को सर्व करें और API एंडपॉइंट के बिना बंडल किए गए checkpoint को पुनर्स्थापित करने के लिए index.html खोलें, या node run.cjs your-operations.json --checkpoint checkpoint.json चलाएँ। निष्पादन के लिए मूल बाइनरी, Python पैकेज और कंपाइलर अनावश्यक हैं। एक checkpoint में सुरक्षित रखे गए कॉलर बाइट्स शामिल होते हैं; साझा करने से पहले उनका निरीक्षण करें। the object API and operation format और the native example देखें।
capsulith inspect legacy.dylib
capsulith extract legacy.dylib --root _decode \
--contract decode-contract.json --out decode.capsule.json
capsulith run decode.capsule.json --inputs input.json
capsulith export decode.capsule.json --inputs input.json --out decoder.zip
रूट चयन एक सत्यापित फ़ंक्शन-प्रारंभ पते को भी स्वीकार करता है, जैसे --root 0x440। एक निर्यातित प्रतीक एक प्रोटोटाइप नहीं है। आप वास्तविक कॉलिंग अनुबंध प्रदान करते हैं; Capsulith किसी ABI (वे नियम जो तर्कों और वापसी मानों को रजिस्टरों में रखते हैं) का अनुमान नहीं लगाता। रनटाइम गाइड बफ़र्स, 32/64-बिट पूर्णांकों, मेमोरी इम्पोर्ट्स और सीमाओं को परिभाषित करता है। examples/xxhash/contract.json एक पूर्ण तीन-तर्क वाला उदाहरण है।