pydantic VS msgspec

Compare pydantic vs msgspec and see what are their differences.

Scout Monitoring - Free Django app performance insights with Scout Monitoring
Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.
www.scoutapm.com
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
pydantic msgspec
172 31
19,759 2,090
3.0% -
9.8 7.9
2 days ago about 1 month ago
Python Python
MIT License BSD 3-clause "New" or "Revised" License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

pydantic

Posts with mentions or reviews of pydantic. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-07-16.
  • Checkbox Extraction from PDFs - A Tutorial
    3 projects | dev.to | 16 Jul 2024
    If you carefully think about it, the system that extracts raw text from the PDF needs to both detect and render PDF form elements like checkboxes and radiobuttons in a way that LLMs can understand. In this example, we’ll use LLMWhisperer to extract PDF raw text representing checkboxes and radiobuttons. You can use LLMWhisperer completely free for processing up to 100 pages per day. As for structuring the output from LLMWhisperer, we’ll use GPT3.5-Turbo and we’ll use Langchain and Pydantic to help make our job easy.
  • Table Extraction and Processing from PDFs - A Tutorial
    3 projects | dev.to | 11 Jul 2024
    Pydantic: Use Pydantic to declare your data model. This output parser allows users to specify an arbitrary Pydantic Model and query LLMs for outputs that conform to that schema.
  • Supercharge Your Python Toolkit with These Powerful Tools
    4 projects | dev.to | 8 Jul 2024
    1. Pydantic: Ultimate Data Validation
  • JSON extra uses orjson instead of ujson
    4 projects | news.ycombinator.com | 5 Jun 2024
    I'm really surprised ijl got angry that his mail was quoted, it looks innocent enough to me.

    For reference it's been edited out here: https://github.com/pydantic/pydantic/issues/589

    But github shows edits, so the edit is meaningless for privacy. Here's the original mail (yes, I'm blatantly ignoring his request to not publish this, I'm just this evil.)

        I've looked into replacing ujson in pydantic with orjson
  • Advanced RAG with guided generation
    2 projects | dev.to | 18 Apr 2024
    First, note the method prefix_allowed_tokens_fn. This method applies a Pydantic model to constrain/guide how the LLM generates tokens. Next, see how that constrain can be applied to txtai's LLM pipeline.
  • utype VS pydantic - a user suggested alternative
    2 projects | 15 Feb 2024
    utype is a concise alternative of pydantic with simplified parameters and usages, supporting both sync/async functions and generators parsing, and capable of using native logic operators to define logical types like AND/OR/NOT, also provides custom type parsing by register mechanism that supports libraries like pydantic, attrs and dataclasses
  • Pydantic v2 ruined the elegance of Pydantic v1
    1 project | news.ycombinator.com | 28 Jan 2024
  • Ask HN: Pydantic has too much deprecation. Why is it popular?
    1 project | news.ycombinator.com | 3 Jan 2024
    I like some of the changes from v1 to v2. But then you have something like this [0] removed from the library without proper documentation or replacement, resulting in ugly workarounds in the link that wont' work properly.

    [0]: https://github.com/pydantic/pydantic/discussions/6337

  • OpenAI uses Pydantic for their ChatCompletions API
    1 project | news.ycombinator.com | 3 Dec 2023
  • 🍹GinAI - Cocktails mixed with generative AI
    3 projects | dev.to | 19 Oct 2023
    The easiest implementation I found was to use a PyDantic class for my target schema — and use that as a parameter for the method call to “ChatCompletion.create()”. Here’s a fragment of the GinAI Python classes used.

msgspec

Posts with mentions or reviews of msgspec. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-01.
  • Htmx, Rust and Shuttle: A New Rapid Prototyping Stack
    3 projects | news.ycombinator.com | 1 Nov 2023
  • Litestar 2.0
    4 projects | /r/Python | 29 Aug 2023
    Full support for validation and serialisation of attrs classes and msgspec Structs. Where previously only Pydantic models and types where supported, you can now mix and match any of these three libraries. In addition to this, adding support for another modelling library has been greatly simplified with the new plugin architecture
  • FastAPI 0.100.0:Release Notes
    12 projects | news.ycombinator.com | 7 Jul 2023
    > Maybe it was very slow before

    That is at least partly the case. I maintain msgspec[1], another Python JSON validation library. Pydantic V1 was ~100x slower at encoding/decoding/validating JSON than msgspec, which was more a testament to Pydantic's performance issues than msgspec's speed. Pydantic V2 is definitely faster than V1, but it's still ~10x slower than msgspec, and up to 2x slower than other pure-python implementations like mashumaro.

    Recent benchmark here: https://gist.github.com/jcrist/d62f450594164d284fbea957fd48b...

    [1]: https://github.com/jcrist/msgspec

  • Pydantic 2.0
    2 projects | news.ycombinator.com | 30 Jun 2023
    While it's definitely much faster than pydantic V1 (which is a huge accomplishment!), it's still not exactly what I'd call "fast".

    I maintain msgspec (https://github.com/jcrist/msgspec), a serialization/validation library which provides similar functionality to pydantic. Recent benchmarks of pydantic V2 against msgspec show msgspec is still 15-30x faster at JSON encoding, and 6-15x faster at JSON decoding/validating.

    Benchmark (and conversation with Samuel) here: https://gist.github.com/jcrist/d62f450594164d284fbea957fd48b...

    This is not to diminish the work of the pydantic team! For many users pydantic will be more than fast enough, and is definitely a more feature-filled tool. It's a good library, and people will be happy using it! But pydantic is not the only tool in this space, and rubbing some rust on it doesn't necessarily make it "fast".

  • Need help developing a high performance Redis ORM for Python
    2 projects | /r/Python | 23 May 2023
    https://github.com/jcrist/msgspec so I am using this instead of Pydantic.
  • Blog post: Writing Python like it’s Rust
    2 projects | /r/Python | 20 May 2023
    Another thing: why pyserde rather than stuff like msgspec? https://github.com/jcrist/msgspec
  • Show HN: Msgspec, a fast serialization/validation library for Python
    1 project | news.ycombinator.com | 11 May 2023
  • [Guide] A Tour Through the Python Framework Galaxy: Discovering the Stars
    14 projects | /r/coder_corner | 29 Apr 2023
    Try msgspec | Maat | turbo for fast serialization and validation
  • Pydantic V2 rewritten in Rust is 5-50x faster than Pydantic V1
    3 projects | news.ycombinator.com | 8 Apr 2023
    Congratulations to the team, Pydantic is an amazing library.

    If you find JSON serialization/deserialization a bottleneck, another interesting library (with much less features) for Python is msgspec: https://github.com/jcrist/msgspec

  • Starlite updates March '22 | 2.0 is coming
    14 projects | /r/Python | 26 Mar 2023
    This feature is yet to be released, but it will allow you to seamlessly use data modelled with for example Pydantic, SQLAlchemy, msgspec or dataclasses in your route handlers, without the need for an intermediary model; The conversion will be handled by the specific DTO "backend" implementation. This new paradigm also makes it trivial to add support for any such modelling library, by simply implementing an appropriate backend.

What are some alternatives?

When comparing pydantic and msgspec you can also consider the following projects:

Cerberus - Lightweight, extensible data validation library for Python

orjson - Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy

nexe - 🎉 create a single executable out of your node.js apps

fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production

SQLAlchemy - The Database Toolkit for Python

mashumaro - Fast and well tested serialization library

sqlmodel - SQL databases in Python, designed for simplicity, compatibility, and robustness.

MessagePack - MessagePack serializer implementation for Java / msgpack.org[Java]

mypy - Optional static typing for Python

marshmallow - A lightweight library for converting complex objects to and from simple Python datatypes.

pyparsing - Python library for creating PEG parsers [Moved to: https://github.com/pyparsing/pyparsing]

ultrajson - Ultra fast JSON decoder and encoder written in C with Python bindings

Scout Monitoring - Free Django app performance insights with Scout Monitoring
Get Scout setup in minutes, and let us sweat the small stuff. A couple lines in settings.py is all you need to start monitoring your apps. Sign up for our free tier today.
www.scoutapm.com
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured

Did you konow that Python is
the 1st most popular programming language
based on number of metions?