Pydantic

Data validation and settings management using Python type hints, backed by a Rust core.

Library
PyPI
v2.13.5
28,891 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
93 /100 Excellent
Development Activity 100
Maintenance 96
Community 76
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
91 /100 Excellent
Architecture 93
Code Quality 90
Innovation 92
Learning Curve 88

Pydantic is the most widely used data validation library for Python. It lets you define data schemas as ordinary Python classes with type hints, then validates, parses, and serializes data against those schemas at runtime, catching malformed input before it reaches your business logic. Its validation engine is implemented in Rust (pydantic-core) and exposed through a pure-Python API, giving it both speed and Python’s usual ergonomics.

It underpins much of the modern Python web and data ecosystem: FastAPI uses it for request/response validation, SQLModel and various ORMs build on it for typed data access, and it’s a common building block wherever untrusted or external data needs to become trustworthy typed objects — API payloads, config files, CLI arguments, and LLM structured outputs.

What You Get

  • A BaseModel class that validates and parses data purely from Python type-hint annotations
  • A Rust-compiled validation and serialization core (pydantic-core) for near-native performance
  • Automatic JSON Schema generation for every model, ready for OpenAPI docs or LLM structured outputs
  • TypeAdapter for validating arbitrary types (dataclasses, TypedDicts, lists) without a BaseModel
  • Structured, machine-readable validation errors instead of ad hoc exception strings

Common Use Cases

  • Validating and parsing incoming API request/response bodies in FastAPI and similar frameworks
  • Loading and validating application configuration and environment variables via typed settings models
  • Coercing and validating third-party API responses or webhook payloads into typed Python objects
  • Defining structured output schemas for LLM function calling and tool use

Under The Hood

Architecture — Pydantic’s core validation and serialization logic is implemented in Rust in the pydantic-core subproject (pydantic-core/src), compiled to a native extension and exposed to Python via PyO3 bindings. The pure-Python pydantic package (pydantic/main.py’s BaseModel, pydantic/fields.py’s FieldInfo) builds a “core schema” description of each model by walking type annotations in pydantic/_internal/_generate_schema.py, which is then handed to pydantic-core to produce a compiled SchemaValidator/SchemaSerializer pair cached on the model class by pydantic/_internal/_model_construction.py’s ModelMetaclass. At runtime, validation and serialization calls go straight into the compiled Rust validators rather than walking Python-level type trees, which is the mechanism behind Pydantic v2’s speed. Generic models, dataclasses, and TypedDicts route through the same schema-generation path (pydantic/_internal/_generics.py, _dataclasses.py), and JSON Schema derivation (pydantic/json_schema.py) works off the same core schema graph.

Tech Stack — A pure-Python 3.10+ layer with three runtime dependencies (typing-extensions, annotated-types, typing-inspection) plus a version-pinned pydantic-core Rust extension (pydantic-core/Cargo.toml) built with PyO3/maturin-style tooling. Development is uv-managed (uv.lock, pyproject.toml dependency-groups) with pytest, pytest-benchmark and pytest-codspeed for performance-regression tracking, and mypy/pyright cross-checks exercised in tests/.

Code Quality — tests/ contains 170+ test files covering validators, serializers, JSON Schema generation, generics, dataclasses, and the mypy plugin. The project uses pytest-examples to execute every documentation code sample as a real test, pytest-benchmark/pytest-codspeed to guard against performance regressions, and a pre-commit config enforcing lint and format on every change. A dedicated deprecated/ subpackage isolates legacy v1-compatible APIs behind explicit deprecation warnings instead of silently changing behavior, and underscore-prefixed _internal/ modules keep the curated public surface (pydantic/init.py, 456 lines of explicit re-exports) distinct from implementation detail.

API Design — The primary API is a single BaseModel subclass with fields expressed as plain Python type hints, so a working model requires no boilerplate beyond annotations. Validators and serializers are opt-in decorators (functional_validators.py, functional_serializers.py) rather than mandatory ceremony, TypeAdapter provides ad hoc validation for non-BaseModel types, and failures (errors.py) return structured, machine-readable ErrorDetails rather than bare strings — a consistently ergonomic design that libraries like FastAPI and SQLModel build directly on top of.

Used by 116 apps in this directory

TypeScript
55%
Other

OpenReplay

Analytics

12,911

Self-hosted session replay and product analytics suite that lets you see exactly what users do on your web app — without sending data to third parties.

View details
90
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 55%
Go 13%
Updated 2 weeks ago
Python
38%
Apache 2.0

OpenSandbox

Developer Tools · Security

15,540

Secure, fast, and extensible sandbox runtime for AI agents with multi-language SDKs and Docker/Kubernetes runtimes.

View details
85
Repo Health
81
Technical
72
Dependency
Built with
Python 38%
Go 35%
Updated 1 weeks ago
Python
75%
AGPL 3.0

OpenViking

AI Development · AI Memory · Databases

38,819

An open-source context database that gives AI agents a unified filesystem for memory, resources, and skills with hierarchical tiered retrieval.

View details
85
Repo Health
75
Technical
64
Dependency
Built with
Python 75%
Rust 12%
Updated 1 weeks ago
Python
100%
MIT

Ossature

AI Development

201

An open-source build system that turns written specs and architecture into working code — an LLM generates code under tight constraints, task by task with narrow context windows, instead of attempting an entire codebase at once.

View details
48
Repo Health
70
Technical
78
Dependency
Built with
Python 100%
Updated 2 months ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,641

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
90
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 42%
Updated 1 weeks ago
Python
65%
Apache 2.0

Polar

Developer Tools · Ecommerce · Invoicing Finance

10,293

Open source payments infrastructure that turns software into a business — subscriptions, usage-based billing, digital products, and merchant-of-record compliance in one platform.

View details
90
Repo Health
82
Technical
66
Dependency
Built with
Python 65%
TypeScript 28%
Updated 1 weeks ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

39,975

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 1 weeks ago
TypeScript
89%
MIT

Prime Agent

AI Agents · AI Code Assistants · Developer Tools

21,340

An open-source coding and research agent built around a Recursive Language Model that treats context as variables and a persistent Python REPL as its only tool.

View details
85
Repo Health
89
Technical
70
Dependency
Built with
TypeScript 89%
Updated 1 weeks ago
TypeScript
97%
MIT

Promptfoo

AI Development

25,506

An open-source CLI and library for evaluating and red-teaming LLM applications — replace trial-and-error prompt engineering with systematic evals, vulnerability scanning, and CI/CD integration.

View details
90
Repo Health
73
Technical
68
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers