pydantic_core
Core functionality for Pydantic validation and serialization
Decision gist · record as of 2026-08-14
Yes, if you need direct schema-based validation outside of Pydantic or are building a tool that requires the low-level validation API. For most use cases, install Pydantic instead, which depends on pydantic-core automatically. The package is actively maintained, has no known vulnerabilities, and supports current Python versions with permissive licensing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or later; compiled Rust components are pre-built for common platforms but may require a build toolchain on unsupported architectures.
- Medium install friction due to compiled Rust components; wheels are pre-built for common platforms (Python 3.10–3.14, CPython, PyPy, GraalPy on Linux, macOS, Windows).
- Active maintenance with releases every few days; repository has 28533 stars and current Python support.
License · maintenance · safety
MIT (permissive) — MIT license (permissive); no restrictions on commercial or private use, modification, or redistribution as long as the license and copyright notice are included.
last release 2026-08-06 (8 days) · last repo commit 2026-08-13 · 28,533 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 1,007,754,482 downloads/mo, #26 on PyPI
Alternatives
Verify before relying
from pydantic_core import SchemaValidator, ValidationError
v = SchemaValidator({
'type': 'typed-dict',
'fields': {
'name': {'type': 'typed-dict-field', 'schema': {'type': 'str'}},
'age': {'type': 'typed-dict-field', 'schema': {'type': 'int', 'ge': 18}}
}
})
result = v.validate_python({'name': 'Samuel', 'age': 35})- Whether direct use of pydantic-core (rather than via pydantic) is recommended for production workloads.
- Performance characteristics and benchmarking details beyond the stated 17x speedup claim versus Pydantic V1.
What it is and what it does
pydantic-core is the underlying validation and serialization engine for Pydantic, written in Rust for performance. It accepts schema definitions and validates Python objects and JSON strings against those schemas, enforcing type constraints, defaults, and custom validation rules. The package is designed primarily as a dependency of Pydantic rather than for direct use; it exposes low-level APIs like SchemaValidator and ValidationError for cases where direct schema-based validation is needed.
The package supports Python 3.10–3.14 and implementations including CPython, PyPy, and GraalPy with pre-built wheels for major platforms. It has one runtime dependency (typing-extensions) and is actively maintained with frequent releases. The MIT license permits unrestricted use in any context.
Use it for
- Validate structured data (dictionaries, JSON) against typed schemas with field constraints and defaults.
- Serialize and deserialize Python objects to and from JSON with schema-driven type coercion.
- Build custom validation pipelines that require fine-grained control over schema definitions and error handling.
- Integrate high-performance validation into frameworks or applications needing faster validation than earlier versions.
- Validate JSON directly without parsing to Python objects first, for performance-critical workflows.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need direct schema-based validation outside of Pydantic or are building a tool that requires the low-level validation API.
For most use cases, install Pydantic instead, which depends on pydantic-core automatically. The package is actively maintained, has no known vulnerabilities, and supports current Python versions with permissive licensing.
Install
pydantic-core on PyPI
Before you install
Medium install friction due to compiled Rust components; wheels are pre-built for common platforms (Python 3.10–3.14, CPython, PyPy, GraalPy on Linux, macOS, Windows). Active maintenance with releases every few days; repository has 28533 stars and current Python support.
Requires Python 3.10 or later; compiled Rust components are pre-built for common platforms but may require a build toolchain on unsupported architectures.
License in practice
MIT license (permissive); no restrictions on commercial or private use, modification, or redistribution as long as the license and copyright notice are included.
Quickstart
from pydantic_core import SchemaValidator, ValidationError
v = SchemaValidator({
'type': 'typed-dict',
'fields': {
'name': {'type': 'typed-dict-field', 'schema': {'type': 'str'}},
'age': {'type': 'typed-dict-field', 'schema': {'type': 'int', 'ge': 18}}
}
})
result = v.validate_python({'name': 'Samuel', 'age': 35})
Verify before relying
- Whether direct use of pydantic-core (rather than via pydantic) is recommended for production workloads.
- Performance characteristics and benchmarking details beyond the stated 17x speedup claim versus Pydantic V1.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagetyping-extensions |
| Maintenance | Actively maintained 8 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,007,754,482 / month, #26 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 3 - AlphaFramework :: PydanticIntended Audience :: DevelopersIntended Audience :: Information TechnologyOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: GraalPyProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: RustTyping :: Typed |
Evidence: pydantic_core-2.48.0-cp310-cp310-macosx_10_12_x86_64.whl; pydantic_core-2.48.0-cp310-cp310-macosx_11_0_arm64.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_31_riscv64.whl; pydantic_core-2.48.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl; pydantic_core-2.48.0-cp310-cp310-musllinux_1_1_aarch64.whl; pydantic_core-2.48.0-cp310-cp310-musllinux_1_1_armv7l.whl; pydantic_core-2.48.0-cp310-cp310-musllinux_1_1_x86_64.whl; pydantic_core-2.48.0-cp310-cp310-win32.whl; pydantic_core-2.48.0-cp310-cp310-win_amd64.whl; pydantic_core-2.48.0-cp311-cp311-macosx_10_12_x86_64.whl; pydantic_core-2.48.0-cp311-cp311-macosx_11_0_arm64.whl; pydantic_core-2.48.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pydantic_core-2.48.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pydantic_core-2.48.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pydantic_core-2.48.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
An agent finds packages by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language. Give your agent the search over MCP.
Similar packages
Dynamically generates Pydantic models from JSON schemas at runtime, allowing you to create validated data models on-the-fly based on schema definitions.
However, the dormant maintenance status (562 days since last release) means you should verify compatibility with your pydantic version and be prepared to maintain a…
Converts JSON Schema definitions into Pydantic model classes, enabling you to generate type-safe data validation models directly from schema specifications.
However, verify Python and Pydantic version compatibility first, and be aware that no active support is available.
Pydantic validates Python data structures against type hints, coercing and checking input at runtime to ensure it matches a declared schema.
Converts JSON Schema definitions to Pydantic v2 models at runtime, enabling dynamic validation and serialization of data against JSON Schema specifications.
However, it is in Alpha status (first release 2025-11-12), so expect potential API changes and test thoroughly before using in production.
Wraps Python functions to validate their arguments against type hints using Pydantic models, providing a migration path from Pydantic v1's deprecated ValidatedFunction.
However, if you only need basic argument validation without signature introspection, Pydantic's validate_call decorator may be simpler.
Adds Pydantic model validation to Flask route handlers, automatically parsing and validating query parameters, request bodies, form data, and URL path parameters.
However, note that maintenance is aging (235 days since last release); verify compatibility with your specific Flask and Pydantic versions before adopting.
See also flask-pydantic-spec · drf-pydantic · jambo · instructor