Rust приходит в CPython: первым модулем станет zlib

· Linux и open source
На Python Language Summit 2026 команда проекта Rust for CPython представила дорожную карту постепенного внедрения Rust в интерпретатор — начиная с необязательной реализации модуля zlib в Python 3.16.

cover.svg

На саммите разработчиков Python 2026 Дэвид Хьюитт, выступающий «послом» проекта Rust for CPython, рассказал, чего ядро Python ждёт от Rust, и предложил сроки, этапы и критерии успеха. Год назад на PyCon US эту идею осторожно прощупывали; по словам Хьюитта, «никто не сказал „не делайте этого“».

Проект ведут разработчики ядра Кирилл Подопригора и Эмма Смит — авторы черновика PEP. Вокруг него сложилось сообщество примерно из 60 человек в Discord, включая нескольких коммиттеров CPython и «делегацию от проекта Rust», имеющую опыт внедрения Rust в Android и ядро Linux.

Зачем Rust

Хьюитт показал, что число issue с меткой «type-crash» неуклонно растёт — возможно, из-за крупных ставок вроде нового парсера, JIT и режима без GIL. Rust способен снять целые классы ошибок. Опыт Android он описал формулой «двигаться быстро и чинить на ходу»: меньше правок на патч того же объёма. При этом Хьюитт честно оговорился, что Rust не гарантирует отсутствия логических ошибок, и команда планирует опираться на property-based-тестирование и фаззинг.

Остаются и трудности. Поддержка платформ в Rust за год расширилась, но CPython официально поддерживает 20 архитектур. Знание Rust «не универсально» среди разработчиков ядра, поэтому подход — инкрементальный: миллион строк C нельзя переписать разом.

Первый модуль — zlib

Первым на Rust переведут zlib: малый объём, но заметный эффект. Реализация на основе zlib-rs (её используют Firefox, uv и Cargo) быстрее zlib на многих платформах. Поскольку zlib широко применяется в упаковке Python, «почти каждый pip install в 3.16 ускорится».

По плану в Python 3.16 (октябрь 2027) Rust будет необязательным, с C-кодом как запасным вариантом. В 3.17 (2028) к Rust добавят io, json, xml, memoryview и парсер. Обязательным для сборки Rust станет не раньше Python 3.18 (2029), тогда же появится публичный Rust API.

Споры

Томас Ваутерс призвал не делать «уступок динозаврам» и проектировать API с чистого листа. Ларри Хастингс спросил, почему это не форк, и признался, что не в восторге от необходимости учить Rust; Хьюитт заверил, что «CPython не нужно переписывать на Rust ради Rust» и проект надолго останется двуязычным — хотя обещать, что Rust будет необязателен вечно, было бы лукавством.

Пабло Галиндо назвал потенциальным «стопором» зависимости из Cargo: CPython тщательно отбирает и вендорит зависимости. Хьюитт ответил, что внешних зависимостей будет минимум, zlib-rs — единственная, а исходники будут вендориться отдельно, так что Cargo для сборки не понадобится.


Источник: Lobsters

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.