The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

CPython может сделать Rust обязательной сборочной зависимостью к версии 3.17

18.11.2025 08:17

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

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

План внедрения:

  • 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 считается незначительной.

  1. Главная ссылка к новости (https://discuss.python.org/t/p...)
  2. OpenNews: В Debian намерены добавить Rust в число обязательных зависимостей к APT
  3. OpenNews: Rust опередил C/C++ по объёму кода, добавляемого в платформу Android
  4. OpenNews: Выпуск Rust 1.91
  5. OpenNews: В ядро Linux 6.18 принята реализация Binder IPC для Android, написанная на Rust
  6. OpenNews: В Git 3.0 предложено сделать Rust обязательной частью сборочной инфраструктуры
Автор новости: Maksim Belyy
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64275-python
Ключевые слова: python, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (41) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, 12yoexpert (ok), 08:20, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    RIP

    этот конкретный случай по многим признакам смахивает на заказной саботаж

     
     
  • 2.5, morphe (?), 08:34, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В каждом втором крупном питон проекте уже есть зависимость от PyO3, для меня удивительно что Rust в ядре только сейчас начали разрешать
     
     
  • 3.9, morphe (?), 08:39, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    requests зависит от cryptography, cryptography зависит от Rust, но таких зависимостей гораздо больше
     
  • 3.25, mos87 (ok), 09:34, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >В каждом втором крупном питон проекте уже есть зависимость от PyO3

    сколько нам открытий чудных

     
     
  • 4.33, пох. (?), 09:51, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Что ты тут открыл-то? Каждый первый крупный пихонопроект рекурсивно зависит от всех лефтпадов с пиписки и еще десятка напрямую из гитшлака. Очень странно,  если хотя бы куда-нибудь не затянет и хрустоподелку.

    А что на пихоне просто не надо писать крупные проекты - знают только первоначальные авторы hg и trac. Но они уже никому не расскажут, дело закрыто за отсутствием улик.

     
  • 2.26, Америка (?), 09:41, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Всё продвижение rust в принципе смахивает на заказной саботаж.
     
  • 2.37, Аноним (37), 09:57, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > RIP
    > этот конкретный случай по многим признакам смахивает на заказной саботаж

    Андроидный самарт и любимый Firefox уже похоронил?

     
     
  • 3.44, Аноним (44), 10:17, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Пришлось сменить платформу.
     
     
  • 4.52, User (??), 10:38, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    И kernel назло мамке выкинул поди?
     

  • 1.4, Аноним (4), 08:34, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошо, что у Python куча реализаций есть и не будет проблемой заменить в будущем на нормальную.
     
     
  • 2.18, Аноним (18), 09:10, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    был бы смысл, питон уже давно менять на нормальный язык
     
  • 2.31, пох. (?), 09:48, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Плохо что эти реализации совместимы только с хеловротами, и то не всегда.

    (потому что современный пихонокот на две строки на пихоне содержит гигабайт лефтпадов, большая часть из которых - бинарные)

    с другой стороны - нехрен, конечно, такое и использовать.

     

  • 1.6, Аноним (6), 08:35, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как быть с тем, что llvm всё не научили генерировать нормальный код? В 100% случаев код у gcc был более адекватным и универсальным к входным данным. И бсолютно быстрее, где была возможность прогнать pgo. Привязываться к llvm несколько недальновидно.
     
     
  • 2.10, VVVVVV (?), 08:39, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Жди релиза gccrs
     
     
  • 3.14, morphe (?), 08:44, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gccrs до релиза сильно дольше чем cg_gcc
     
  • 3.45, Аноним (44), 10:19, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько десятилетий раст разрабатывают? И пока ни одного стандарта. Вот ещё пару раз по столько.
     
  • 2.11, Аноним (11), 08:40, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В случае проблем с LLVM отправить им патч и ждать ответного гудка. Гусей не трогать.
     
  • 2.13, morphe (?), 08:43, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А никто и не привязывается, работа над gcc идёт параллельно

    https://blog.antoyo.xyz/rustc_codegen_gcc-progress-report-38

    > With LTO done, the remaining big tasks are:
    >    Finish debug info support
    >    Add support for other architectures
    >    Fix issues with unwinding
    >    Rustup distribution

     
     
  • 3.39, Соль земли2 (?), 10:03, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Пропадёт же весь смысл LLVM IR, в котором есть строгая типизация, на которую, скорее всего, опирается Rust (очень похожи обозначения i8, i32 и т.д.).
     
     
  • 4.42, Аноним (11), 10:12, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > скорее всего
    > очень похожи обозначения

    Толсто.

     

  • 1.15, Кошкажена (?), 08:54, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сейчас питон собирается в 4 потока ~5 минут.
     
     
  • 2.17, Жироватт (ok), 09:08, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Без прогона тестов?
     
     
  • 3.20, Кошкажена (?), 09:24, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Без прогона тестов?

    Без. Сейчас попробовала снова после make clean - результат 1m1,692s

     
     
  • 4.24, Жироватт (ok), 09:32, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У меня питон2 10 минут после сборки тесты жевал, лол.
    Но я не отключаю, мусть будет
     
     
  • 5.29, пох. (?), 09:46, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тесты могут быть нужны только если ты собираешь питон для кого-то кроме себя. (а могут и не быть)

    > Но я не отключаю, мусть будет

    ну да, буковки с цифирками бегут по экрану, можно делать умное лицо...

     
     
  • 6.32, Жироватт (ok), 09:50, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, для второго питиона уже желательно бы, бо пакет уже выпилен и остался только в ауре.

    > ну да, буковки с цифирками бегут по экрану, можно делать умное лицо...

    Поэтому ты так делаешь?

     
     
  • 7.36, пох. (?), 09:53, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    твой хеловрот либо работает, либо не работает. (причем во втором случае ты ничего сделать не сможешь)
    Зачем ты расходуешь невосполнимые ресурсы планеты и свою жизнь на совершенно бесполезную хрень?

    Собрался - пользуйся. Не собрался или падает хеловрот - ну значит приехали, дальше ехать некуда, ищи замену своему васяноскрипту.

     
     
  • 8.41, Жироватт (ok), 10:11, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Чувак, попробуй немного потоньше, а Ну даже для меня слишком грубо работаешь ... текст свёрнут, показать
     
     
  • 9.54, Аноним (-), 10:45, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это местный алконавт предпенсионного возраста Просто отфильтруй его посты в игн... текст свёрнут, показать
     
  • 2.19, Аномалии (?), 09:24, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А в чем преимущество сборки перед уже готовыми пакетами?
     
     
  • 3.21, Кошкажена (?), 09:26, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А в чем преимущество сборки перед уже готовыми пакетами?

    * Если ты хочешь сам собрать и не доверяешь тем, кто собирал. Например, если бутстрапишь систему.
    * Добавить нужные опции при сборке. Вроде как для того же nogil нужно пересобирать.

     
  • 3.35, Жироватт (ok), 09:52, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не всегда они есть, готовые пакеты.
    Или есть, но древних версий.
    Или есть, но реально хз от кого, на сюзевской OBS и "добавьте строчки в список реп".
    Или нужно настроить пакет до сборки.
     
  • 3.51, Аноним (44), 10:36, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Есть некая программа, в ней есть питон. Однажды, после очередного обновления ты обнаруживаешь, что твой проект не полностью (полностью не) открывается из-за разности версий питонов. Да, питоны совместимы между собой чуть менее, чем никак. Дистры на этот случай сделали взаимоисключающую установку таких версий. Поставить старый питон из готовых пакетов ты не можешь - система начинает сносить всё по цепочке, включая пакетный манагер и далее...
     

  • 1.27, пох. (?), 09:43, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Просто напоминаю что "поддерживаются Rust как минимум на уровне Tier 2" означает что хрустокомпилятор на этой платформе как-то вообще запускается. (И совершенно не означает что хотя бы запустится собранный для нее хеловрот)

    Причем чинить никто даже и не собирался.

     
  • 1.30, Смузихлеб забывший пароль (?), 09:46, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    эпически. Можно даже сказать, сказочно )
    Однако, одного только раста с проверками боровов в дополнение к питону очевидно маловато для запуска скриптика на питоне. Очевидно, что в зависимостях должны ещё появиться как минимум жс и бонусом можно прилепить бейсик с паскалем

    А после - объявить о новом, инновационном и безопасном питоне 4, который ломает совместимость с 3-м не хуже, чем 3-й со 2-м. С тем нюансом, что, где есть питон - там гарантированно будут пакеты с упомянутыми ЯП и нередко более стабильные в плане обратной совместимости, а код в любом случае придётся переписывать

     
     
  • 2.40, Жироватт (ok), 10:09, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты забыл про node + v8, жс как язым можно и на встроенном интерпретаторе выполнять.

    При компилировании питоньего скрипта в .pyc в таком Питон4 небось нужно будет:
    - каждый раз вызывать ноду, которая будет искать модули для себя в NPM (со свежими лефтпадами и вирусами)
    - обновлённая нода будет БЕЗОПАСТНО выкачивать модули из pip, которые при развёртывании будут уже сами запускать в контексте себя по ещё одному экземпляру ноды для БЕЗОПАСНОЙ скачки своих зависимостей, конечно с обновлением своего набора лефтпалов из NPM и так рекурсивно для каждой ветки дерева зависимостей
    - скрипт на ноде будет запускать и контролировать контролиующий его самого скрипт на питоне, который сгененрирует скрипт на пёрле, чтобы выполнить предварительные билдтаски
    - файлы перед сборкой будут скормлены чекателю боровов, который достанет афиногенно-аффинажные мутные типы и померит им череп, а также степень "проснутости" кода. При нахождении лексемы типа "бро", "ниггер", "slave", "master", "три хандред бакс" и прочих - откажется собирать этот неполиткорректный код.
    - после проверки ржавым проверяльщиком скрипт на джс должен будет запросить паспортные данные сборщика, его ЭП, его цели сборки, провести тест на политическую сознательность и соответствие текущим нарративам CNN и отправить все в ЦРУ. Если тест пройден не менее чем на 95% - сборка разрешается, иначе высылается зондеркоманда.
    - после чего код собирается
    - после чего прогоняются тесты
    - после чего выполняются посбилд-таски на смеси из пёрло-джеэсного кода, формирующие выхлоп на похапэ
    - после чего результат пакетируется

     

  • 1.34, mos87 (ok), 09:52, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Похоже это намеренное внедрение расто-зависимости ради блага самого раста. Ведь раст нужно развивать ВСЕМ, потому раст это ПРАВИЛЬНО. А остальное - нет.
     
  • 1.38, Аноним (37), 10:00, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Сейчас тут начнется традиционный вой воинов против Раста и гентушников. В то время как все нормальные люди устанавсливают готовые бинари и от изначального языка им не горячо не холодно.
     
     
  • 2.50, Аноним (-), 10:31, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если сидеть на конформистском железе типа x86_64, то да. А если на x86 (32-бит), то уже проблема. Не говоря про другие архитектуры (не буду упоминать всуе), где физически нет компилятора Rust (ну или есть, но работает чуть лучше, чем никак).
     
     
  • 3.53, Аноним (44), 10:38, 18/11/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > типа x86_64

    Поправочка: уже x86_64_v2

     

  • 1.46, Аноним (-), 10:21, 18/11/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Я будучи достаточно лояльным к Rust вынужден признать, что это уже ПЕРЕБОР. Начинают посещать мысли, что делается это всё умышленно.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру