უკან დაბრუნება
CPython-ში Rust-ის ინტეგრაცია: პროექტმა ეტაპობრივი გეგმა და წარმატების კრიტერიუმები წარადგინა
SiTech AI Team2 წთ. საკითხავი

CPython-ში Rust-ის ინტეგრაცია: პროექტმა ეტაპობრივი გეგმა და წარმატების კრიტერიუმები წარადგინა

Python Language Summit 2026-ზე David Hewitt-მა Rust for CPython პროექტის გეგმა წარადგინა: Python 3.16-ში zlib-ის არასავალდებულო Rust ვერსია, წარმატების კრიტერიუმების PEP 2026 წლის ბოლოსთვის და სავალდებულო Rust არა უადრეს 2029 წლისა.

Python Language Summit 2026-ზე David Hewitt-მა Rust for CPython პროექტის გეგმა წარადგინა: ეტაპები და წარმატების კრიტერიუმები. პროექტი PyCon US 2025-ზე განიხილეს, გუნდს კი CPython-ის core დეველოპერი Kirill Podoprigora და Emma Smith ხელმძღვანელობს.

გუნდი Discord-ის არხზე დაახლოებით 60 დეველოპერს აერთიანებს, მათ შორის CPython-ის core დეველოპერებსა და Rust პროექტის წარმომადგენლებს. ბევრს Android-ში და Linux-ის ბირთვში Rust-ის ინტეგრაციის გამოცდილება აქვს.

რატომ Rust?

„type-crash“ იარლიყით გახსნილი პრობლემების რაოდენობა იზრდება: 2021 წელს 82 შემთხვევა, 2025 წელს 222, 2026 წლის პროგნოზი კი დაახლოებით 353-ია. ზრდის ერთ-ერთ მიზეზად ახალი პარსერი, JIT და free-threading სახელდება, Rust კი შესაძლო გადაწყვეტად მიიჩნევა.

დიაგრამა: type-crash პრობლემების ზრდა

პირველი სამიზნე: zlib მოდული

პირველი მოდული, რომელიც Rust-ის არასავალდებულო იმპლემენტაციას მიიღებს, zlib-ია. გუნდი zlib-rs-ს გამოიყენებს, რომელსაც Firefox, uv და Cargo იყენებენ და რომელიც zlib-ზე სწრაფია. zlib-ს Python-ის პაკეტების სისტემა ფართოდ იყენებს, ამიტომ Python 3.16-ში თითქმის ყველა pip install დაიჩქარებს.

Rust for CPython-ის განრიგი

გეგმით, Rust API-ის პროტოტიპი 2026 წლის ზაფხულში მზადდება, წარმატების კრიტერიუმების PEP კი წლის ბოლოსთვის გამოქვეყნდება. Python 3.16 (2027 წლის ოქტომბერი) zlib-ის Rust ვერსიას და პირად Rust API-ს მიიღებს; Python 3.17 (2028) Rust-ს io, json, xml, memoryview და parser მოდულებშიც შეიტანს. სავალდებულო გახდომა არა უადრეს Python 3.18-ისა (2029) იგეგმება.

შეშფოთება და დისკუსია

Hewitt-ის თქმით, დანერგვა სოციალური გამოწვევაცაა: Rust-ის ცოდნა core დეველოპერებში საყოველთაო არ არის, ამიტომ გეგმა CPython-ის მცირე ნაწილებს მოიცავს, რადგან „C-ის მილიონი ხაზის კოდი ერთბაშად ვერ გადაიტანება“. პლატფორმების მხარდაჭერა, ერთი წლის წინ მთავარი შეშფოთება, გაფართოვდა.

დისკუსიაზე Larry Hastings-მა იკითხა, რატომ არ არის პროექტი „გადაწერა“; Hewitt-მა აღნიშნა, რომ RustPython უკვე არსებობს. მანვე თქვა, რომ „CPython არ უნდა დაიწეროს Rust-ზე მხოლოდ იმიტომ, რომ Rust-ია“ და CPython კიდევ დიდხანს ორენოვანი იქნება. Pablo Galindo Salgado-მ Cargo-დან დამოკიდებულებების მოზიდვას პოტენციური „showstopper“ უწოდა; Hewitt-ის პასუხით, გარე დამოკიდებულებები მინიმუმამდე შემცირდება და აწყობას Cargo არ დასჭირდება.

წარმატების კრიტერიუმები

JIT-ისა და free-threading-ის შემთხვევაშიც კრიტერიუმები წინასწარ განისაზღვრა, ამიტომ Hewitt-ის თქმით, მსგავსი პირობები საჭიროა: core დეველოპერების უმრავლესობა Rust API-ის მიმართ ღია უნდა იყოს („ღია“, და არა „მცოდნე“), წარმადობა შესამჩნევად არ გაუარესდეს, Rust-ს კი ყველა tier პლატფორმაზე მხარდაჭერა ჰქონდეს.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.