Skip to main content

pydantic-msgspec

Generate msgspec Struct types from Pydantic v2 BaseModel classes. Structs use rename="camel" for JSON keys. Models with a single-string Literal role or type field map to msgspec tag_field / tag for tagged unions.

Install

pip install pydantic-msgspec
# or
uv add pydantic-msgspec

Usage

from pydantic import BaseModel
import msgspec
from pydantic_msgspec import msgspec_from_pydantic, pydantic_from_msgspec


class Item(BaseModel):
    name: str
    count: int = 1


MSItem = msgspec_from_pydantic(Item)
raw = msgspec.json.encode(MSItem(name="x", count=2))
model = pydantic_from_msgspec(Item, MSItem(name="x", count=2))
assert model == Item(name="x", count=2)

Full API reference: Read the Docs.

Development

uv sync --all-extras   # dev + docs
uv run pytest --cov=pydantic_msgspec
uv run sphinx-build -W -b html docs docs/_build

For maintainers

PyPI (trusted publishing with GitLab)

  1. On PyPI (or TestPyPI), add a pending publisher or open your project → ManagePublishingAdd a new pending publisher / trusted publisher for GitLab.
  2. Set GitLab namespace and project to your path (for example group/pydantic-msgspec), workflow to GitLab CI/CD, and the correct GitLab hostname if not gitlab.com.
  3. Tag a release (v0.1.0) so the deploy job in .gitlab-ci.yml runs; the pipeline uses OIDC (id_tokens) and twine without long-lived API tokens.

Adjust Repository / Documentation URLs in pyproject.toml to match your real GitLab and Read the Docs project slug.

Read the Docs

  1. Import the GitLab repository at readthedocs.org.
  2. Use the included .readthedocs.yaml; set the default branch and Python version as needed.
  3. After the first successful build, update PyPI project URLs if the docs URL differs from the placeholder in pyproject.toml.

Release files for pydantic-msgspec 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydantic-msgspec 0.1.1
File Size Uploaded
pydantic_msgspec-0.1.1.tar.gz 6.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pydantic-msgspec 0.1.1
File Interpreter ABI Platform
pydantic_msgspec-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 12.2 kB

Release files / pydantic_msgspec-0.1.1.tar.gz

Download URL pydantic_msgspec-0.1.1.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
dc792c9de59216c61e128d0371610ea2aa7c68b84eb88ebe9fd0cc80c406e8d3
BLAKE2b-256 checksum
How to use checksums
ccf0dcdb43db52b24f569dd2490030da126b45554da4fe2b8af0b3880a6cf784
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / pydantic_msgspec-0.1.1-py3-none-any.whl

Download URL pydantic_msgspec-0.1.1-py3-none-any.whl
Size 5.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b46863495add2d56f2e1f7b4f6f769e6a3bc3aae4eeb2d7191d1f5acd76be1d4
BLAKE2b-256 checksum
How to use checksums
9a47af80ef12a78044e5d422c6b1f2b365230f9907786a7341bfaf0c00566f25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page