2 पॉइंट द्वारा GN⁺ 2025-04-09 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Lua के लिए उपयुक्त ecosystem बनाने के लक्ष्य के साथ, Lux Lua code के निर्माण, maintenance और deployment के लिए एक नया package manager है
  • Lux, cargo जैसे प्रसिद्ध package managers से प्रेरित एक सरल और सहज CLI प्रदान करता है

सुविधाएँ

  • सिस्टमों के बीच पूर्ण portability
  • parallel build और install का समर्थन 🚀
  • Lua header installation का स्वचालित प्रबंधन
  • lux-lib crate के माध्यम से Lua API को expose किया जा सकता है
  • lux.toml फ़ाइल के ज़रिए project management
  • automatic rockspec generation
  • मज़बूत lockfile support
  • पूरी तरह reproducible builds और development environments
  • code formatting और linting integration
  • busted के माध्यम से test execution support
  • Neovim को Lua interpreter के रूप में इस्तेमाल किया जा सकता है
  • pure environment configuration
  • luarocks ecosystem के साथ compatible

प्रेरणा

Lua

  • Luarocks का 20 साल का इतिहास है, इसलिए यह आधुनिक Lua development के लिए उपयुक्त नहीं है
  • Lux का लक्ष्य एक नई शुरुआत करना है
    • dependency management के लिए TOML को मुख्य manifest format के रूप में उपयोग करना
    • project directory में build कमांड से project को build और install किया जा सकता है
    • SemVer compliance को अनिवार्य बनाना
    • parallel build support

Neovim

  • Neovim plugin managers rocks.nvim और lazy.nvim में Luarocks support के कारण इसकी लोकप्रियता बढ़ी है
  • Lux non-destructive है और Neovim plugin distribution के तरीके में हस्तक्षेप नहीं करता
  • --nvim फ़्लैग के साथ Neovim-compatible tree structure में packages install किए जा सकते हैं

Nix

  • अगर Neovim plugins Luarocks packages के रूप में मौजूद हों, तो nixpkgs में उनका उपयोग किया जाता है
  • Lux का lux.lock हर dependency के source और rockspec hash को store करता है

अगले कदम

  • bug fixes और error messages में सुधार पर ध्यान
  • rocks.nvim को Lux-आधारित रूप में फिर से लिखने की योजना
  • अगर यह पुनर्लेखन सफल रहता है, तो Neovim ecosystem पर सकारात्मक प्रभाव की उम्मीद

दस्तावेज़

  • Lux की documentation website पर tutorial और guide उपलब्ध हैं
  • GitHub discussions और issue tracker के माध्यम से सवालों और समस्याओं का समाधान किया जा सकता है

लाइसेंस

  • Lux MIT license के तहत उपलब्ध है
  • Lux का logo CC BY-NC-SA 4.0 license के तहत उपलब्ध है

1 टिप्पणियां

 
GN⁺ 2025-04-09
Hacker News टिप्पणियाँ
  • स्क्रिप्ट भाषाओं का runtime environment एक कमज़ोरी है। मैं व्यक्तिगत रूप से Neovim इस्तेमाल नहीं करता, लेकिन लगा था कि यह Lua के विकास को बढ़ावा देगा। Bryan Cantrill ने Javascript को "C के कपड़ों में LISP" कहा था। Lua मुझे उसका उल्टा लगता है, और इसी वजह से मुझे Lua पसंद है (नोट: मैंने इसे काम में कभी इस्तेमाल नहीं किया)
    • Koreader जैसे प्रोजेक्ट Lua को मुख्य application language के रूप में इस्तेमाल करते हैं। अगर उन्हें migrate करने के लिए राज़ी किया जा सके, तो यह इस विचार की परिपक्वता और लोकप्रियता पर भरोसा देगा
  • दिलचस्प प्रोजेक्ट है। मैं Pixi में Lua support बेहतर करने के लिए साथ काम करना चाहूँगा (conda-forge ecosystem के ज़रिए)। मैं पहले से Lua और कुछ C extensions को package कर रहा हूँ। C extensions, Pixi का मुख्य focus हैं, इसलिए यह अच्छा fit लगता है
  • यह शानदार लग रहा है। मैं Lua का बहुत उपयोग करता हूँ, लेकिन luarocks इतने कड़े विचारों वाला है कि लगभग बेकार हो जाता है। "local system पर सीधे चलाने के लिए library install करना" से आगे की किसी भी चीज़, या उसके आसपास की चीज़ों के लिए, यह शुरू भी नहीं हो पाता। आपके पास Lua packages के साथ काम करने वाला built-in scripting environment है, और आप उसमें इस्तेमाल होने वाली scripts को dependencies सहित package करना चाहते हैं? तो फिर हार माननी पड़ती है
    • मुझे नहीं पता कि यह इस use case के लिए बेहतर है या नहीं, लेकिन अगर नहीं भी है, तब भी luarocks इस्तेमाल करने में असुविधाजनक और चिढ़ाने वाला है
  • व्यक्तिगत रूप से मैं सभी language-specific package managers पर शक करता हूँ। मुझे नहीं लगता कि यह सही दिशा है। मेरे हिसाब से nix जैसी चीज़ कहीं बेहतर approach है
  • Lua का एक package manager जो Rust पर निर्भर है
  • बढ़िया! Lua को packages को आसान बनाने के लिए ऐसी चीज़ की ज़रूरत थी
  • अच्छा है। मैं कई devices पर Lua packages install करने का एक reproducible तरीका चाहता था
  • configuration के लिए TOML की जगह Lua का उपयोग क्यों नहीं करते? अगर मुझे सही याद है, तो Lua मूल रूप से एक data schema language थी, इसलिए यह उपयुक्त लगेगी
  • Neovim ecosystem को first-class treatment देने के लिए धन्यवाद। plugin development के दौरान मुझे Rust और Typescript जैसी third-party libraries के ease of use की कमी खली थी