- Разработчики Python предложили использовать Rust для разработки модулей стандартной библиотеки CPython.
- Планируется постепенное внедрение Rust в CPython с изменениями, начиная с версии 3.15 в 2026 году и возможным обязательным использованием Rust к версии 3.17 (2028).
- Rust обеспечит безопасность работы с памятью и упростит разработку многопоточного кода, поддерживая развитие проекта free-threaded Python без глобальной блокировки интерпретатора (GIL).
Ключевые мейнтейнеры Python, Эмма Смит и Кирилл Подопригора, опубликовали предварительное предложение (Pre-PEP) по внедрению языка программирования Rust в эталонную реализацию Python — CPython. Идея заключается в постепенном расширении использования Rust для разработки некоторых модулей стандартной библиотеки, размещённых в папке Modules/. Эта инициатива направлена на повышение безопасности и производительности кода Python.
План предусматривает, что уже в версии Python 3.15 (запланированной на 2026 год) сборщик будет предупреждать о необходимости Rust в окружении сборки. В Python 3.16 (2027) сборка без Rust станет возможной лишь с использованием специального флага «‑with‑rust=no». А к версии 3.17 (2028) Rust может стать обязательной зависимостью при сборке CPython.
Основные мотивы для включения Rust связаны с его возможностями предотвращения ошибок памяти, таких как use-after-free и выход за границы буфера, а также с поддержкой безопасной работы в многопоточном режиме. Это особенно актуально на фоне усилий по созданию «free-threaded Python» — версии интерпретатора без глобальной блокировки (GIL), что позволит эффективно использовать многопроцессорные системы.
Для интеграции с низкоуровневым C API CPython предлагается применять автоматическую генерацию привязок с помощью bindgen вместо сторонних абстракций, например, PyO3. Это позволит минимизировать задержки при обновлении API и улучшит поддержку множества платформ. В настоящее время обсуждаются вопросы управления зависимостями, кросс-компиляции и поддержки менее распространённых архитектур.
Отмечается, что большинство платформ, поддерживаемых Python, совместимы с Rust на уровне как минимум Tier 2. Некоторые устаревшие или нишевые системы, например HPPA и RISC OS, не поддерживаются, однако их влияние на экосистему Python считается минимальным.
Таким образом, предложение по постепенному интегрированию Rust в CPython отражает стремление сообщества Python повысить безопасность и масштабируемость кода, что соответствует современным требованиям разработки языков программирования и их срочной адаптации к многоядерным вычислительным системам.
