- 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 का विकास किया
अभी कोई टिप्पणी नहीं है.