Rust могут сделать обязательным для CPython: опубликован Pre-PEP Обложка: Skyread

Rust могут сделать обязательным для CPython: опубликован Pre-PEP

Новости
Главное:

  • Предложено сделать Rust обязательным для сборки интерпретатора CPython к версии Python 3.17.
  • Rust призван устранить проблемы с безопасностью памяти и упростить многопоточность, заменив C в ядре Python.
  • В сообществе разработчиков отсутствует единство, имеются технические сложности и опасения по поводу повышения порога входа в разработку.

В сообществе Python обсуждается предложение, подготовленное в формате pre-PEP, которое предусматривает включение языка Rust в ядро интерпретатора CPython на уровне обязательной зависимости. По плану, начиная с Python 3.15, Rust будет использоваться опционально для ускорения некоторых модулей, в версии 3.16 сборка CPython станет невозможной без установленного компилятора Rust (если не отключить проверку флагом), а к релизу 3.17 Rust станет обязательным требованием для сборки.

Главной мотивацией для подобного шага называют изъязвления традиционного языка C, применяемого в ядре Python, который подвержен утечкам памяти и ошибкам сегментации. Rust предлагает встроенную систему безопасного управления памятью и улучшенную поддержку многопоточности, что критически важно в контексте планируемого устранения глобальной блокировки интерпретатора (GIL). Для взаимодействия с C API будет использоваться инструмент bindgen и крейт cpython-sys, тогда как ранее популярная библиотека PyO3 исключается, чтобы снизить зависимость от сторонних проектов.

Несмотря на перспективы безопасности и производительности, внедрение Rust сопровождается серьёзными техническими и организационными сложностями. В частности, возникает циклическая зависимость: Rust для сборки требует уже имеющийся Python, что усложняет деплой и создание дистрибутивов. Внутри команды Core Developers подходы разнятся: одни поддерживают введение Rust, другие считают его противоречащим принципам упрощения рантайма и предупреждают о рисках конфликта поколений, аналогично сценарию с ядром Linux.

Эксперты также отмечают, что принятие данной инициативы повысит порог входа в разработку CPython, поскольку разработчики будут должны осваивать Rust наряду с C, а поддержка существующих C-расширений станет более сложной. Тем не менее статистика свидетельствует о растущем интересе к Rust в мире Python — на саммите 2025 года сообщалось, что около трети новых расширений для языка создаются именно на Rust.

Таким образом, инициативы по интеграции Rust в структуру CPython представляют собой важный, но дискуссионный этап в развитии языка Python, сопоставимый с техническими вызовами и изменениями в экосистеме, которые необходимо проработать с учётом долгосрочных интересов сообщества.

Tagged