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

devenv, Nix के ऊपर पुनरुत्पादनीय डेवलपर वातावरण बनाता है, जिसे devenv.nix और devenv.yaml के माध्यम से कॉन्फ़िगर किया जाता है। यह तेज़ पुनरावृत्ति पर लक्षित है: इंक्रीमेंटल Nix मूल्यांकन कैशिंग, लाइव बिल्ड प्रगति के साथ एक टर्मिनल UI, और नेटिव शेल रीलोडिंग जो शेल को इंटरैक्टिव बनाए रखते हुए पृष्ठभूमि में पुनर्निर्माण करता है। एक बंडल किया गया nixd-आधारित LSP devenv.nix के लिए ऑटोकम्पलीट, हॉवर डॉक्स और go-to-definition प्रदान करता है। वातावरण CLI से बिना कॉन्फ़िग फ़ाइलों के तदर्थ रूप से बनाए जा सकते हैं, या --from के साथ अन्य रिपॉज़िटरी से खींचे जा सकते हैं, और कॉन्फ़िगरेशन विकल्पों को टाइप किए गए मानों जैसे --option services.postgres.enable:bool true के साथ ओवरराइड किया जा सकता है। कवरेज में 50+ भाषाएँ शामिल हैं जिनमें कंपाइलर, LSP सर्वर, फ़ॉर्मेटर, लिंटर और संस्करण चयन शामिल हैं; Linux, macOS, x64 और ARM64 के लिए Nixpkgs से 100,000+ पैकेज, जिसमें WSL2 भी शामिल है; और 40+ सेवाएँ जैसे PostgreSQL, Redis, MySQL, MongoDB, Elasticsearch और Caddy। Rust में लिखा एक नेटिव प्रोसेस मैनेजर निर्भरता क्रम, रीस्टार्ट नीतियाँ, रेडीनेस प्रोब (exec, HTTP, systemd notify), सॉकेट एक्टिवेशन, वॉचडॉग हार्टबीट और फ़ाइल वॉचिंग, साथ ही स्वचालित फ्री-पोर्ट आवंटन संभालता है। टास्क DAG-आधारित निष्पादन, कैशिंग, समानांतर रन और नेमस्पेस का समर्थन करते हैं, और स्क्रिप्ट सभी वातावरण पैकेजों तक पहुँच के साथ चलती हैं। पैकेजिंग और परिनियोजन सुविधाओं में Docker के बिना वातावरण से OCI कंटेनर बनाना, भाषा-विशिष्ट टूल के साथ ऐप्स पैकेज करने के लिए आउटपुट, और रिपॉज़िटरी में आउटपुट और विकल्पों को संदर्भित करने के लिए पॉलीरेपो समर्थन शामिल है। संरचना प्रोफ़ाइल, इम्पोर्ट और पिन किए गए या ओवरराइड किए गए इनपुट के माध्यम से संभाली जाती है। एकीकरण में घोषणात्मक सीक्रेट प्रबंधन के लिए SecretSpec, git-hooks.nix के माध्यम से git हुक, devenv test के साथ परीक्षण जो प्रक्रियाओं को स्वचालित रूप से शुरू और बंद करता है, स्वचालित शेल सक्रियण के लिए direnv, AI सहायक एकीकरण के लिए एक MCP सर्वर, और प्राकृतिक भाषा विवरण से AI-आधारित वातावरण निर्माण शामिल हैं। CLI में init, generate, shell, update, search, info, up, processes, tasks, test, container, inputs, changelogs, repl, gc, build, eval, direnvrc, version, mcp और lsp जैसे कमांड शामिल हैं, साथ ही Nix बिल्ड कंकरेंसी, हर्मेटिसिटी, ऑफ़लाइन मोड, प्रोफ़ाइल, मूल्यांकन कैशिंग और ट्रेसिंग आउटपुट के विकल्प भी।