• Rust में लिखा गया अत्यंत तेज़ Python type checker और language server ty अब बीटा वर्ज़न में जारी किया गया है
  • इसे mypy, Pyright, Pylance के विकल्प के रूप में डिज़ाइन किया गया है, और यह 10~60 गुना तेज़ प्रदर्शन देता है
  • Incremental architecture के ज़रिए, कोड बदलने पर केवल ज़रूरी हिस्सों की दोबारा गणना की जाती है, जिससे real-time response speed अधिकतम होती है
  • सटीकता और usability पर ज़ोर देते हुए यह intersection types, advanced type narrowing, reachability analysis जैसे आधुनिक type system features को सपोर्ट करता है
  • Astral की योजना है कि ty को Ruff, uv के साथ Python ecosystem के मुख्य development tools में विकसित किया जाए

ty का परिचय

  • ty Astral द्वारा विकसित Python type checker और language server है, जिसे Rust में implement किया गया है
    • इसे मौजूदा mypy, Pyright, Pylance की तुलना में कहीं अधिक तेज़ विकल्प के रूप में डिज़ाइन किया गया है
    • Astral के आंतरिक प्रोजेक्ट्स में इसका पहले से उपयोग हो रहा है, और बीटा चरण में इसे बाहरी उपयोगकर्ताओं के लिए भी अनुशंसित किया जा रहा है
  • Astral Python ecosystem के लिए high-performance development tools बनाने वाली टीम है, जो uv (package manager) और Ruff (linter और formatter) के लिए जानी जाती है

प्रदर्शन और आर्किटेक्चर

  • ty को language server-केंद्रित संरचना के साथ डिज़ाइन किया गया है, और फ़ाइल बदलने पर केवल आवश्यक computation फिर से चलाने वाली incremental processing approach अपनाई गई है
    • इसके कारण editor के भीतर real-time updates की गति बहुत तेज़ रहती है
  • cache के बिना चलाने पर भी यह mypy और Pyright से 10~60 गुना तेज़ है
    • उदाहरण: PyTorch repository की मुख्य फ़ाइलों में बदलाव होने पर diagnostics की पुनर्गणना गति 4.7ms रही, जो Pyright (386ms) से 80 गुना और Pyrefly (2.38 सेकंड) से 500 गुना तेज़ है
  • बड़े प्रोजेक्ट्स में भी incremental updates के दौरान प्रदर्शन का अंतर कई दर्जन गुना तक देखा गया

type system और सटीकता

  • ty intersection types, advanced type narrowing, type-आधारित reachability analysis आदि को सपोर्ट करता है
    • इन सुविधाओं के ज़रिए यह सटीक type feedback देता है और अनावश्यक false positives को कम करता है
  • लक्ष्य सिर्फ़ गति बढ़ाना नहीं, बल्कि ऐसा type checker बनाना है जो सटीकता और user experience दोनों को बेहतर करे

diagnostics system

  • ty में Rust compiler के error message system से प्रेरित उन्नत diagnostics system शामिल है
    • एक ही diagnostic message में कई फ़ाइलों के context को साथ दिखाकर समस्या के कारण और समाधान की दिशा को स्पष्ट किया जाता है
    • उदाहरण: गलत dictionary key assignment होने पर type mismatch की जगह और declaration की जगह दोनों दिखाई जाती हैं
  • diagnostics output ty का मुख्य interface है, और इसे इंसानों तथा AI दोनों के लिए आसानी से समझ आने वाली संरचना में डिज़ाइन किया गया है

language server features

  • ty को VS Code, Cursor जैसे LSP(Language Server Protocol) सपोर्ट करने वाले सभी editors में इस्तेमाल किया जा सकता है
    • Go to Definition, Rename Symbol, autocomplete, auto import, semantic syntax highlighting, inlay hints जैसी सभी आधुनिक language server capabilities उपलब्ध हैं
  • इसे VS Code extension के माध्यम से install किया जा सकता है, और CLI installation के लिए uv tool install ty@latest कमांड भी उपलब्ध है

आगे की योजना

  • बीटा के बाद अल्पकालिक लक्ष्य हैं स्थिरता मज़बूत करना और bug fixes, Python type specification को पूरा करना, Pydantic और Django support
  • दीर्घकाल में ty को Astral toolchain के semantic feature engine के रूप में विस्तारित किया जाएगा
    • dead code removal, unused dependency detection, security vulnerability (CVE) reachability analysis, type-aware linting जैसी सुविधाएँ योजनाबद्ध हैं
  • Astral का लक्ष्य ty को लगातार बेहतर बनाकर Python को सबसे अधिक productive programming ecosystem बनाना है

आभार

  • ty के विकास में दर्जनों open source contributors ने भाग लिया, और इसे MIT license के तहत जारी किया गया है
  • Salsa, Elixir, Python typing community के कई व्यक्तियों और टीमों ने तकनीकी सहयोग और प्रेरणा दी
  • Astral की core team ने type theory, Python runtime semantics, ecosystem usage patterns की गहरी समझ के आधार पर ty का विकास किया

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.