Skip to main content
For planned work and acceptance gates, see the canonical project roadmap. Release records below describe delivered versions, not roadmap commitments.

0.8.0-beta.1 · Published prerelease

Published on 2026-10-21 as a prerelease: runtime and derive. This breaking beta is opt-in and is not the latest stable release. Stable/default remains 0.7.0. Install with rydantic = "=0.8.0-beta.1", with matching runtime/derive packages and an exact derive dependency. The guarded publication workflow succeeded for source commit 9bc51b3. Both downloaded registry archives matched their registry API and sparse-index checksums and the final local packages. Their VCS metadata identifies that source commit; both versions were confirmed unyanked, and the runtime pins derive to exactly =0.8.0-beta.1. A fresh registry-only consumer passed 83 tests plus 3 isolated settings cases in each of its default and all-features modes. A separate renamed-dependency/direct-macro consumer passed 2 tests in each configuration mode. Cargo metadata confirmed both exact beta packages resolved from crates.io without path patches. The safe panic-boundary migration ran successfully; five negative compile probes rejected the intended UnwindSafe, RefUnwindSafe, Rc, borrowed-data and pipeline stage-type violations. See the release record for detailed verification results.
  • Ordered callback lists: before transforms stop at the first failure; typed sync/async check lists accumulate errors in declaration order, behind existing prerequisite gates. Siblings still accumulate errors and model checks require successful fields. Synchronous errors prevent the async phase.
  • Typed per-call context: explicit hooks and owned Model entry points carry Any + Send + Sync data through nested validation/encoding. Missing or wrong types are validation errors. Models do not retain context; ordinary/Serde and existing high-level Axum/SQL/Cap’n Proto entry points stay context-free.
  • Sync/async pipelines: typed, sequential, fail-fast stages with explicit wrappers that may skip/repeat their continuation. No automatic rollback, model-validity proof, schema synthesis, scheduler or implicit retries. Single callbacks remain supported through the same implementation, not a compatibility layer.
  • Breaking from 0.7.0: Context no longer implements UnwindSafe or RefUnwindSafe, even without data. The erased Arc<dyn Any + Send + Sync> payload omits these markers, so captures across catch_unwind can stop compiling. Construct and consume the context inside the closure or avoid capturing it. Use AssertUnwindSafe only after auditing every captured value and shared payload, never as a blind wrapper. Validation failures remain ordinary Result errors; no compatibility layer restores the old bounds.
  • This core release covers only runtime/derive. AI remains independently versioned at 0.6.0, with its source path dependency adjusted for this workspace; it is not being published here. CLI/codegen remain unpublished 0.1.0 tools. Frozen Skill/evaluation versions are unchanged.
New checks/transforms can change accepted data; they do not migrate stored values or promise lossless conversion. Existing explicit Cap’n Proto derives, configuration-specific wire compatibility, SQLite index-safety guards, backups/manual migrations, settings secret handling, partial JSON limits and domain provenance requirements remain. Read the full changelog and migration limits.

RydanticAI · Unreleased

PDF inputs add Pdf and Prompt::pdf() for ordered document, image and text prompts. Embedded PDFs work through all nine protocol combinations, including JSON/SSE output, tool continuations, Partial and Iterable streams. Responses and Messages also support URL references; Chat Completions requires embedded PDF data. Validation bounds PDF data, names and counts, and replay uses compact attachment digests. CI covers 89 strict official Python SDK cases.

0.7.0 · Stable

Published on 2026-10-21 as stable: runtime and derive. Install with rydantic = "=0.7.0"; the runtime pins derive to the same exact version. The guarded publication workflow succeeded for source commit 09ad96d. Both downloaded registry archives matched their API and sparse-index checksums and the final local packages. A fresh registry-only consumer passed 48 tests plus 3 isolated settings cases, 2 alternate-configuration tests, and 2 direct-macro tests in each configuration mode. Both packages resolved from crates.io without path patches. See the release record for detailed verification results.
  • Promote settings, partial JSON and domain types from the verified betas, with their documented limits. Fix callback-path hygiene and evaluate consumer cfg/cfg_attr before automatic Cap’n Proto schema generation.
  • Breaking from 0.6.0: explicitly derive Model on every capnp_models struct/enum. Conditional definitions create configuration-specific wire schemas; different feature/target sets are not automatically compatible. Preserve explicit ordinal checks; use fixed/schema-first protocols for shared wire formats.
  • SQLite migration guards reject unsupported index layouts rather than losing constraints. Back up data and review migrations; users remain responsible for existing deployments. No automatic production-data migration is performed.
  • Core archives contain only runtime and derive. AI is independently released; CLI/codegen remain unpublished source tools. Exact-version Skill/evaluation fixtures remain pinned to their original contracts.
See the complete changelog, Cap’n Proto migration guidance, migration limits, settings, partial JSON and domain provenance.

RydanticAI 0.6.0

All three providers and gateway frontends support ordered user image inputs across the nine protocol combinations, including URL references and Base64 images. Typed Prompt / Image builders work with Agents, Partial and Iterable output. Requests are bounded to 16 MiB with image-specific validation, and replay identity includes compact image digests. The release also carries the multi-turn replay fixes from main. See image inputs.

RydanticAI 0.5.0

The independently versioned rydantic-ai crate adds native gateway frontends for /v1/chat/completions and /v1/messages. Gateway protocols covers all nine frontend/upstream combinations, JSON and SSE, tools, structured output mappings, usage, authentication and bounded native history replay. Successful stream terminals follow budget settlement. Shared tool-choice and sampling controls map to each upstream protocol. CI includes strict official Python SDK checks for all three frontends.

RydanticAI 0.4.0

The independently versioned rydantic-ai crate supports Responses, Chat Completions and Anthropic Messages upstreams through BASEURL and APIKEY. API providers share typed tools, validation correction, Partial and Iterable streams, usage accounting and gateway routing. Native message history survives same-protocol tool continuations, including through the gateway HTTP interface. Provider setup uses standard protocol constructors and explicit capabilities. The published crate contains the Rust SDK, gateway and generic examples. Core release versions remain independent.

RydanticAI 0.3.0

The independently versioned rydantic-ai crate adds structured output streaming. Core release versions remain independent.
  • Partial<T> emits provisional JSON snapshots and completes with a fully validated Rust model.
  • Iterable<T> emits validated elements from an items envelope and collects the accepted attempt into Vec<T> without a Clone bound. Async item validators run once per element per attempt.
  • Explicit model-call numbers and reset reasons cover validation correction and tool continuations. Completion retains usage and history. Cancellation, deadlines, bounded queues and byte/depth/item limits cover stream processing.
  • Preserve native Responses events and support custom providers without HTTP features. Non-streaming providers fall back to processing their completed response.

0.7.0-beta.4 · Published prerelease

Published on 2026-10-20: release and verification. The published release record reports verified archives and a fresh registry-only consumer (46 tests plus 3 isolated environment cases). Opt in with rydantic = "=0.7.0-beta.4".
  • Add individually optional phone, country and currency types, with pinned offline catalogs and explicit local validation rules. Phones are not proof of reachability/ownership; currencies include legacy, fund and special entries, not a current-tender guarantee. Preserve upstream/data-source attribution.
  • The source-only JSON Schema-to-Rust developer tool remains unpublished (publish = false), outside the two core package archives. The source workspace also contains independent AI/Jev work; neither is part of the core archives or uploaded by this release.
  • No new breaking API change from beta.3. Preserve the explicit Model derive upgrade, backup/manual migration responsibilities and partial JSON safety limits below.

0.7.0-beta.3 · Published prerelease

Published on 2026-10-20: release and verification. Opt in with rydantic = { version = "=0.7.0-beta.3", features = ["partial-json"] }. Stable remains 0.6.0.
  • Add bounded partial JSON snapshots, separate from strict streaming and Model validation. Incomplete containers, numbers and literals may be recovered; all incomplete strings/keys are rejected.
  • Hard limits: 1 MiB input and 64 nested containers. The pinned parser’s 4300-digit integer-part ceiling is reported as unsupported, never rounded; no equivalent fractional/exponent limit is claimed.
  • Preview values are not validated business data. Require the producer’s final document, Complete and ordinary Model validation before consequential actions. Successful values can contain secrets; repeated prefix reparsing can be quadratic.
  • Preserve beta.1 breaking derives, migration guards and backup responsibilities below. No new breaking API change from beta.2. New JSON Schema-to-Rust code generation and phone/country/currency domain types are excluded.

0.7.0-beta.2 · Published prerelease

Published on 2026-10-20: release and verification. Opt in with rydantic = "=0.7.0-beta.2". Stable remains 0.6.0.
  • Add opt-in settings: explicit ordered JSON, environment, strict dotenv-subset and flat secrets-directory sources, existing Model validation, and redacted source errors. This is not full pydantic-settings compatibility.
  • Accept exact zero with arbitrarily large positive or negative JSON exponents during integer normalization. Nonzero overflow, fractions, malformed JSON and numeric strings remain invalid.
  • Preserve the beta.1 explicit-derive contract and SQLite migration guards. No new breaking API change from beta.1; follow the upgrade and backup guidance below when coming from 0.6.0.
Partial JSON, the new JSON Schema-to-Rust code generator, and phone/country/currency domain types are not included in this release.

0.7.0-beta.1 · Published prerelease

Published on 2026-10-20: release and verification. Both packages are available with explicit opt-in rydantic = "=0.7.0-beta.1". This version does not contain settings. Stable remains 0.6.0.
  • Breaking: every struct and enum inside capnp_models, including nested models, must explicitly derive Model. No automatic derive insertion or compatibility layer remains.
  • Fix relative Cap’n Proto compiler paths, including Windows drive-relative and root-relative paths; imported aliases for Model are resolved by Rust.
  • Reject SQLite rebuilds with non-BINARY collation or descending index order, including primary-key indexes, instead of silently losing semantics. Ordinary BINARY ascending indexes, no-op migrations and native rename-only changes remain supported.
Review the Cap’n Proto migration guidance and database migration limits. Back up databases and test migration plans before upgrades. Users are responsible for existing deployments and data; unsupported custom SQLite schemas need a reviewed manual migration, not removal of constraints to bypass the guard.

Main and beta rhythm

Main stays releasable. Breaking or substantial changes first receive numbered beta packages and GitHub prereleases; no permanent beta branch is maintained. Stable promotion is not time-based: require exact-commit integrated CI, package verification, a fresh registry-only consumer, and no release-blocking issues. Stable 0.7.0 is a new immutable version with fresh validation, not a renamed beta.

0.6.0 · Model-driven database migrations

  • Automatic migration plans for SQLite, PostgreSQL and MySQL.
  • Column renames, SQL defaults, indexes, foreign keys and explicit destructive changes.
  • Migration history, stale-plan checks and database-specific concurrency locks.
  • Unified SQL API with independent database drivers.
The old SQLite-specific codec hooks and duplicate DDL entry points were removed. Enable the driver you use, derive Model and SqlModel, and call YourModel::migrate(&pool).await? to create or upgrade a table. See the 0.6.0 release and the automatic migration guide.

Earlier releases

The project added native Cap’n Proto support, automatic schema and binding generation, and Axum/SQL integrations across earlier releases. Find the complete history on GitHub Releases.