---
title: "pydantic-core"
created: 2026-06-10
updated: 2026-06-10
type: concept
tags: [pydantic, rust, validation, performance]
sources: [raw/articles/pydantic-three-piece-suite-2026.md]
---

# pydantic-core

> [[pydantic|Pydantic]] 生态的物理引擎——Rust 编写的校验核心，通过 PyO3 绑定到 Python，完全脱离 GIL。

## 校验流程

当调用 `model_validate(data)` 时：

1. Python 层将模型定义转为 **CoreSchema JSON**（一份"校验指令"）
2. CoreSchema JSON 通过 PyO3 传给 Rust 层
3. Rust 层按 schema 逐字段校验、类型转换、处理嵌套
4. 返回校验通过的类型化 Python 对象，或 `ValidationError`

**关键**：步骤 2-4 全部在 Rust 侧完成，不走 GIL。

## 性能

| 场景 | 纯 Python | pydantic-core | 倍数 |
|------|----------|--------------|------|
| 简单模型 1000 次 | ~12ms | ~1.5ms | 8× |
| 嵌套 3 层 10000 次 | ~450ms | ~35ms | 13× |
| JSON 大文件反序列化 | ~800ms | ~48ms | 17× |
| 内存峰值 | 基线 | -35% | — |

## 对 AI 开发者的关键意义

- `asyncio.gather()` 并发 20 个 LLM API 调用时，每个回复的 JSON 解析在不同线程并行跑 Rust 校验，互不阻塞
- 深层嵌套模型收益最大——每层嵌套原来都是 Python 层的递归开销

## 三配置升级

```python
model_config = {
    "strict": True,    # 类型不匹配直接炸，不静默转换
    "extra": "forbid", # 多字段立刻报错
    "frozen": True,    # 创建后不可修改
}
```

## 参考

- [[pydantic|Pydantic 生态]]
- [[typeadapter|TypeAdapter]]
- [[pydantic-three-piece-suite|Pydantic 三件套]]
