Pydantic v2의 심장, Rust로 Python 라이브러리 만드는 법
Libraries Run Rust Inside Python (With PyO3)

Pydantic v2의 핵심인 pydantic-core는 PyO3로 Rust 확장을 구현해 데이터 검증을 수행한다. 이 글은 Rust로 JSON 파서를 작성하고 PyO3 매크로를 붙여 maturin으로 빌드한 뒤 Python에서 임포트하는 4단계를 설명한다. 특히 Rust의 JsonValue 트리를 Python 객체로 변환하는 과정이 파싱 자체보다 더 큰 비용을 초래할 수 있음을 지적하며, 경계 비용을 프로파일링하고 지연 평가 뷰를 고려하라고 조언한다.
10만 개 값이 있는 문서라면 파싱이 완전히 끝난 뒤 경계에서 약 10만 개의 Python 객체가 생성된다. 대형 문서에서는 이 구체화 루프가 파싱이 아니라 전체 시간을 지배할 수 있다.