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

Reprobuild एक एकीकृत बिल्ड सिस्टम है जो Dockerfiles, Nix flakes, Makefiles और CI पाइपलाइनों जैसे खंडित टूल्स को एक सिंगल, कंपाइल-टाइम-वेरिफाइड बिल्ड ग्राफ से बदल देता है। इसका मुख्य नवाचार केवल फाइलों को ही नहीं, बल्कि स्टेट्स (जैसे रनिंग सर्विसेज, सिस्टम सेटिंग्स, या क्लाउड रिसोर्सेज) को ग्राफ में नोड्स के रूप में मॉडल करना है। यह बिल्ड्स, देव एनवायरनमेंट्स और इंफ्रास्ट्रक्चर में निरंतर कैशिंग, हर्मेटिकिटी और रोलबैक की अनुमति देता है। मुख्य विशेषताओं में फाइलसिस्टम मॉनिटरिंग (io-mon के माध्यम से) द्वारा स्वचालित डिपेंडेंसी डिस्कवरी, परस्पर निर्भर प्रोजेक्ट्स में हॉट कोड रिलोडिंग (जैसे Firefox बिल्ड करते समय Cairo को एडिट करना), और `repro develop` के माध्यम से जीरो-सेटअप डेवलपमेंट शामिल हैं। प्रोजेक्ट्स को एक टाइप्ड Nim DSL (`repro.nim`) में परिभाषित किया जाता है, जो IDE सपोर्ट और टूल वर्जन्स, बिल्ड स्टेप्स और सर्विस कॉन्फ़िगरेशन के कंपाइल-टाइम वैलिडेशन को सक्षम बनाता है। यह Windows, Linux और macOS को सपोर्ट करता है; Terraform प्रोवाइडर्स के साथ इंटीग्रेट होता है; और डिस्ट्रिब्यूटेड बिल्ड्स और टेस्ट शार्डिंग की सुविधा देता है। Bazel या Nix के विपरीत, यह बिना किसी डेमन्स या रिमोट सर्विसेज के एक सिंगल नेटिव बाइनरी के रूप में आता है। Reprobuild इनपुट्स की कंटेंट-एड्रेसिंग, बाइट-दर-बाइट आउटपुट समानता के सत्यापन और स्वचालित रूप से SBOMs और एटेस्टेशन्स जेनरेट करके पुनरुत्पादकता (reproducibility) लागू करता है। यह ReproOS को भी पावर देता है, जो उसी ग्राफ मॉडल का उपयोग करके पूरी तरह से सोर्स से बनाया गया एक Linux डिस्ट्रिब्यूशन है। CLI कमांड्स में बिल्डिंग, टेस्टिंग, सर्विसेज मैनेज करना, वर्कस्पेस सिंकिंग और लोकल इंफ्रास्ट्रक्चर मैनेजमेंट शामिल हैं। यह सिस्टम MIT-लाइसेंस प्राप्त है, जिसमें होस्टेड कैशे और एंटरप्राइज उपयोग के लिए वैकल्पिक कमर्शियल सर्विसेज उपलब्ध हैं।