लोकल-फर्स्ट macOS रिसर्च ब्राउज़र जो एक कस्टम Brave बिल्ड पर आधारित है, जो वेब ऐप्स को रिवर्स इंजीनियर करने के लिए नेटवर्क ट्रैफ़िक, फिंगरप्रिंट, स्क्रिप्ट और रनटाइम एविडेंस कैप्चर करता है।
रिपॉज़िटरी रूट से make चलाएँ। रूट Makefile डिफ़ॉल्ट लक्ष्य को परिभाषित करता है और इन फ़ाइलों को क्रम में शामिल करता है:
| फ़ाइल | ज़िम्मेदारी |
|---|---|
config.mk | कंपाइलर फ़्लैग, बिल्ड निर्देशिकाएँ, lint के लिए स्रोत सूचियाँ, प्लेटफ़ॉर्म डिफ़ॉल्ट |
native.mk | स्पष्ट नेटिव लिंक निर्भरताएँ, कंपाइलेशन, जनरेट किए गए हेडर निर्भरताएँ |
workflows.mk | उत्पाद लॉन्च, एविडेंस फ़िक्स्चर, स्थानीय सेवाएँ, Brave एकीकरण कमांड |
quality.mk | बिल्ड रिग्रेशन जाँच, linters, sanitizers, सफ़ाई |
मौजूदा कमांड नाम और निष्पादन योग्य पथ सार्वजनिक इंटरफ़ेस बने रहते हैं।
कार्यान्वयन ऑब्जेक्ट BUILD_DIR के भीतर स्रोत पथों को प्रतिबिंबित करते हैं; कंपाइलर द्वारा जनरेट की गई
.d फ़ाइलें प्रत्यक्ष और पारगमन परियोजना हेडरों को ट्रैक करती हैं। केवल डिकोडर
निष्पादन योग्य अपने लिंक कमांड में zlib जोड़ता है। make native-probe-compile ट्रैक किए गए
ब्राउज़र क्यू को अलग टेस्ट स्रोत के बिना कंपाइल करता है।
make bootstrap-dev-tools CI द्वारा उपयोग किए जाने वाले वही पिन किए गए clang-format और Ruff
संस्करणों को ~/.local/share/reb-tools में इंस्टॉल करता है, और Homebrew के साथ अनुपस्थित
shellcheck और actionlint फ़ॉर्मूले इंस्टॉल करता है। Make स्वचालित रूप से उन पिन किए गए
स्थानीय टूल्स को प्राथमिकता देता है। make deob-benchmark Rust वर्कर बनाता है और टाइमिंग, मेमोरी, रूपांतरण, और
परिवर्तित-स्रोत कवरेज एविडेंस के साथ सीमित सिमैंटिक कॉर्पस चलाता है।
make lint दोनों Rust मैनिफ़ेस्ट के लिए फ़ॉर्मेटिंग और Clippy चेतावनियों की जाँच करता है।
डीऑब्फ़स्केशन वर्कर में सभी लक्ष्य शामिल हैं ताकि इसका रिग्रेशन-टेस्ट कोड उत्पादन निष्पादन योग्य के साथ
जाँचा जाए।
भिन्न कंपाइलर या फ़्लैग के सेट के लिए अलग बिल्ड निर्दिका उपयोग करें:
make BUILD_DIR=build/debug OPT_CXXFLAGS='-O0 -g' all
Make किसी मौजूदा बिल्ड निर्दिका में कमांड-लाइन फ़्लैग मानों के परिवर्तनों का पता नहीं लगाता।
नेटिव नियमों या कंपाइलर कॉन्फ़िगरेशन फ़ाइलों में परिवर्तन नेटिव ऑब्जेक्ट्स को
अमान्य कर देते हैं। make sanitize अपनी स्वयं की स्वच्छ बिल्ड निर्दिका उपयोग करता है।
make native-build-test scripts/check-native-build.sh चलाता है, जो एक
अस्थायी निर्दिका में दो स्वतंत्र निष्पादन योग्य बनाता और चलाता है, जाँचता है कि दोहराया गया बिल्ड कोई कार्य नहीं करता, और सत्यापित करता है कि
किसी आर्टिफ़ैक्ट हेडर परिवर्तन से उसका उपभोक्ता अमान्य हो जाता है बिना इवेंट
डेमो को पुनर्निर्माण किए। make check में यह रिग्रेशन जाँच, डीऑब्फ़स्केशन सिमैंटिक
बेंचमार्क, और बैकएंड और डीऑब्फ़स्केटर वर्कर के Rust टेस्ट सूट शामिल हैं। यह निर्मित Rust/Oxc वर्कर के विरुद्ध स्रोत-तथ्य HTTP/CLI एकीकरण परीक्षण भी
चलाता है; उस हेल्पर को खोजते समय CARGO_TARGET_DIR का सम्मान किया जाता है।
make native-proxy-policy-check Chromium, Cargo, सॉकेट, या ब्राउज़र के बिना
केवल-तैयारी नेटिव प्रॉक्सी/कंटेनर नीति सूट को कंपाइल और चलाता है।
यह make check और make sanitize में शामिल है; यह वास्तविक
ब्राउज़र रूटिंग या आइसोलेशन स्थापित नहीं करता। संस्करणित नेटिव प्रॉक्सी-कंटेनर अनुबंध देखें।
origin-trace-backend Rust HTTP सेवा, VM विश्लेषक, और API CLI बनाता है।
ui नियतात्मक एविडेंस जनरेशन के बाद उस सेवा को शुरू करता है। backend-e2e
एक डिस्पोज़ेबल Chromium-संगत प्रोफ़ाइल और सिंथेटिक localhost फ़िक्स्चर उपयोग करता है;
गैर-मानक ब्राउज़र निष्पादन योग्य के लिए ORIGIN_TRACE_TEST_BROWSER सेट करें। ऐप बिल्ड
Rust निष्पादन योग्य और स्थिर UI एसेट्स को बंडल करते हैं, बिना किसी Python रनटाइम निर्भरता के।