- Meta का Pyrefly Rust में विकसित एक ओपन सोर्स Python type checker और IDE extension है
- यह बेहद तेज़ analysis performance और IDE integration को सपोर्ट करता है, और Pyre की सीमाओं को पार करने के लिए विकसित किया गया है
- स्वचालित type inference, बड़े codebase का support, और open source philosophy इसके मूल सिद्धांत हैं
- Python community के साथ सहयोग और योगदान के ज़रिये पूरे ecosystem के type system को बेहतर बनाने का लक्ष्य है
- फिलहाल alpha version जारी किया गया है, और community feedback व contribution सक्रिय रूप से मांगे जा रहे हैं
परिचय
- Pyrefly Meta द्वारा Rust में बनाया गया एक ओपन सोर्स Python static type checker और IDE extension project है
- code चलाने से पहले type consistency की जांच करके यह error को पहले से पकड़ने में मदद करता है
- IDE integration और CLI, दोनों का उपयोग संभव है, जिससे लचीला workflow मिलता है
- open source community के सहयोग के माध्यम से Python type system और विभिन्न libraries के विकास में योगदान देना इसका लक्ष्य है
Pyrefly के विकास की पृष्ठभूमि
- 2017 में Meta ने Instagram के बड़े Python codebase के लिए एक नया type checker विकसित किया, जो बाद में Pyre बना
- Pyre ने Hack, Flow आदि की मज़बूत design से प्रेरणा ली, और performance के लिए इसे OCaml में विकसित किया गया
- समय के साथ type system के विकास और IDE integration की ज़रूरत बढ़ने पर इसकी सीमाएँ सामने आईं
- Pyright जैसे community tools भी उपयोग किए गए, लेकिन बड़े पैमाने पर code navigation और type export जैसी ज़रूरतें पूरी करने में सीमाएँ थीं, इसलिए Pyrefly विकसित करने की कोशिश की गई
Pyrefly के मुख्य सिद्धांत
-
1. प्रदर्शन
- developers को code लिखते ही हर keypress पर तेज़ type checking की ज़रूरत होती है
- Pyrefly एक उच्च-प्रदर्शन Rust implementation पर आधारित है, जो बहुत बड़े codebase में भी प्रति सेकंड 18 लाख lines की जांच कर सकता है
-
2. IDE-केंद्रित design
- IDE और CLI एक जैसा view बनाए रखें, इसके लिए शुरुआत से ही abstraction design किया गया
- Pyre में यह बाद में जोड़ा गया था, लेकिन Pyrefly में design stage से ही consistency पर ज़ोर दिया गया
-
3. inference
- बिना annotation वाले और जिनमें type स्पष्ट नहीं है ऐसे Python code के लिए भी स्वचालित type inference का समर्थन करता है
- return value और local variables के types IDE में दिखाए जा सकते हैं, और बेहतर code लिखने के लिए double-click पर inferred type अपने-आप insert किया जा सकता है
-
4. open source
- Pyrefly MIT license के तहत GitHub पर उपलब्ध है, और community PRs व issue reports का स्वागत है
- यह Python ecosystem और Meta की प्रमुख libraries (जैसे PyTorch) से जुड़ते हुए Discord channel के माध्यम से सक्रिय संवाद को बढ़ावा देता है
Pyrefly का भविष्य
- community के साथ मिलकर Python language और developer experience को बेहतर बनाने पर काम किया जा रहा है
- Pyre के शुरुआती विकास से ही code को open source करने और PEP में योगदान की परंपरा रही है, और Pyrefly में भी विभिन्न developers, libraries और beginners के लिए types के उपयोग के लाभ अधिकतम करने की योजना है
- Meta, dynamic languages में typing के उपयोग से मिले अनुभव और परिणामों के आधार पर अपने अनुभव साझा करेगा और ecosystem की type quality बढ़ाने की दिशा में काम करेगा
- अभी Pyrefly alpha version में है, लेकिन इस गर्मियों में आधिकारिक launch के लक्ष्य के साथ लगातार bug fixes और feature additions किए जा रहे हैं
- community feedback बहुत महत्वपूर्ण है, और Pyrefly इस्तेमाल करने के बाद issue reports और improvement requests सक्रिय रूप से मांगे जा रहे हैं
Pyrefly alpha version उपयोग और community जानकारी
- Pyrefly के विकास की प्रक्रिया और technical details Meta Tech Podcast और PyCon US presentations आदि में साझा किए गए हैं
- Meta Open Source से जुड़े sites, YouTube, Facebook, Threads, X, LinkedIn आदि विभिन्न channels के माध्यम से अतिरिक्त जानकारी दी जा रही है
1 टिप्पणियां
Hacker News टिप्पणियाँ
uvकी लोकप्रियता इतनी ज़्यादा है कि अंदेशा हैtyइस क्षेत्र में जीत सकता है। गलत दिशा में जाने पर Atom या Flow जैसी स्थिति बन सकती है, जहाँ बाहरी open source आंतरिक टीम को पीछे छोड़ दे और ऊपर से "क्या इस टीम की सच में ज़रूरत है? इसे open source से बदल दें" जैसी हवा बनने लगे। लगता है यह वह हिस्सा है जिस पर प्रबंधन (Aaron Pollack?) को ध्यान देना चाहिएmypyभी अभी मौजूद हैmypyसे तेज़ है