Разработчики Python рассматривают возможность внедрения языка программирования Rust в CPython

Разработчики Эмма Смит (Emma Smith) и Кирилл Подопригора (Kirill Podoprigora), входящие в число ключевых мейнтейнеров Python (команда core team), опубликовали предварительное предложение (Pre‑PEP) о постепенном добавлении возможности использования языка Rust в кодовой базе CPython, эталонной реализации языка программирования Python.

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

По информации OpenNET, основные причины внедрения Rust заключаются в необходимости обеспечения безопасной работы с памятью, предотвращении ошибок категории use‑after‑free и выходов за границы буфера, а также упрощении разработки потокобезопасного кода, что особенно актуально в свете официальной поддержки сборки CPython без глобальной блокировки интерпретатора (GIL, Global Interpreter Lock) для распараллеливания операций на многоядерных системах (проект free‑threaded Python). Rust также предоставляет высокоуровневые, но производительные структуры данных и развитую систему метапрограммирования, включая гигиеничные макросы.

Предлагаемый план внедрения Rust в CPython:

Python 3.15 (2026 год): предупреждение при отсутствии Rust в окружении сборки.

Python 3.16 (2027 год): сборка возможна без Rust только с флагом «‑with‑rust=no».

Python 3.17 (2028 год): Rust может стать обязательным на этапе сборки.

Для взаимодействия с компонентами C API CPython предполагается использовать автоматически генерируемые привязки через bindgen, а не сторонние абстракции, такие как PyO3, чтобы избежать задержек при обновлении API. Вопросы управления зависимостями, кросс‑компиляции и поддержки редких платформ находятся в стадии обсуждения.

В опубликованном предложении подчёркивается, что все платформы из документа PEP 11 поддерживаются Rust как минимум на уровне Tier 2. Некоторые устаревшие или нишевые системы (например, HPPA и RISC OS) не поддерживаются, однако их доля в экосистеме Python считается незначительной.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии