Библиотеки запускают Rust внутри Python с помощью PyO3
Libraries Run Rust Inside Python (With PyO3)

Pydantic v2 и другие библиотеки используют Rust-расширения через PyO3. В статье на примере JSON-парсера на Rust показано, как экспортировать его в Python с помощью макросов #[pyfunction] и #[pymodule], а также как собрать и установить модуль через maturin. Главный вывод: преобразование Rust-структур в Python-объекты может занять больше времени, чем сам парсинг, поэтому оптимизировать нужно границу, а не только алгоритм.
Для документа с 100 000 значений это означает создание порядка 100 000 Python-объектов на границе, уже после того как парсинг полностью завершён. На большом документе именно этот цикл материализации, а не парсинг, может определять общее время работы.