
Інтеграція Rust у CPython: проєкт представив етапний план та критерії успіху
На Python Language Summit 2026 David Hewitt представив план проєкту Rust for CPython: необов'язкова Rust-версія zlib у Python 3.16, PEP критеріїв успіху до кінця 2026 року та обов'язковий Rust не раніше 2029 року.
На Python Language Summit 2026 David Hewitt представив план проєкту Rust for CPython: етапи та критерії успіху. Проєкт обговорили на PyCon US 2025, командою керують core-розробник CPython Kirill Podoprigora та Emma Smith.
Команда об'єднує близько 60 розробників у каналі Discord, серед них core-розробники CPython та представники Rust-проєктів. Багато з них мають досвід інтеграції Rust в Android та ядрі Linux.
Чому Rust?
Кількість проблем, виявлених за допомогою прапора „type-crash“, зростає: у 2021 році 82 випадки, у 2025 році 222, прогноз на 2026 рік — близько 353. Однією з причин зростання називають новий парсер, JIT та free-threading, а Rust розглядається як можливе рішення.

Перша ціль: модуль zlib
Перший модуль, який отримає необов'язкову реалізацію на Rust — це zlib. Команда використовує zlib-rs, яким користуються Firefox, uv та Cargo, і який швидший за zlib. Система пакетів Python широко використовує zlib, тому в Python 3.16 майже кожен pip install прискориться.

За планом, прототип Rust API буде готовим влітку 2026 року, а PEP критеріїв успіху буде опубліковано до кінця року. Python 3.16 (жовтень 2027) отримає Rust-версію zlib та приватний 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-платформах.
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.