Emma Smith ja Kirill Podoprigora, kes kuuluvad Pythoni (core team) peamiste arendajate hulka, avaldasid esialgse ettepaneku (Pre-PEP) järkjärguliseks võimaluse lisamiseks Rusti keele kasutamiseks CPythoni koodibaasis, mis on Python programmeerimiskeele viidene rakendus. Algselt soovitatakse Rusti kasutada standardraamatukogu valikuliste moodulite jaoks, mis asuvad kaustas Modules/. Tulevikus, Python 3.17 versioonis, võib Rustist saada kohustuslik sõltuvus CPythoni koostamisel.
Peamised põhjused Rusti kasutuselevõtuks on mälukaitse tagamine, use-after-free kategooria vigade ja puude piire ületamise vältimine, samuti keerukate püsivate koodide arendamise lihtsustamine, mis on eriti oluline arvestades CPythoni ametlikku toetust globaalse tõkestamise (GIL, Global Interpreter Lock) tõttu, et paralleelselt teostada operatsioone mitme tuuma süsteemides (free-threaded Python projekt). Rust pakub ka kõrgetasemelisi, kuid tootlikke andmestruktuure ja arenenud meetaprogrammeerimise süsteemi, sealhulgas puhtaid makrode mehhanisme.
Rakendamise plaan:
- Python 3.15 (2026 aasta): hoiatus, kui Rust'i ei ole kogumise keskkonnas.
- Python 3.16 (2027 aasta): kogumine on võimalik ilma Rust'ita ainult lipuga «—with-rust=no».
- Python 3.17 (2028 aasta): Rust võib saada kogumise etapil kohustuslikuks.
CPython C API-ga suhtlemiseks on ette nähtud kasutada automaatselt genereeritud sidemeid läbi bindgen, mitte kolmandate osapoolte abstraktsioone nagu PyO3, et vältida API värskendamisega seotud viivitusi. Sõltuvuste haldamise, ristkompileerimise ja haruldaste platvormide toe küsimused on arutamisel.
Avaldatud ettepanekus rõhutatakse, et kõik PEP 11 dokumendis loetletud platvormid toetavad Rust'i vähemalt Tier 2 tasemel. Mõned vananenud või niššisüsteemid (nt HPPA ja RISC OS) ei ole toetatud, kuid nende osakaal Python ökosüsteemis peetakse ebaoluliseks.
Allikas: opennet.ru
