jsonschema VS marshmallow

Compare jsonschema vs marshmallow and see what are their differences.

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.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
jsonschema marshmallow
4 11
488 6,948
- 0.3%
7.9 8.7
11 days ago 3 days ago
Rust Python
MIT License MIT 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.


Posts with mentions or reviews of jsonschema. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-05-14.
  • Fast Linked Lists
    4 projects | news.ycombinator.com | 14 May 2024
    > This article is disingenuous with its Vec benchmark. Each call to `validate` creates a new Vec, but that means you allocate + free the vec for each validation. Why not store the vec on the validator to reuse the allocation? Why not mention this in the article, i had to dig in the git history to find out whether the vec was getting reallocated.

    The idea comes back to [0] which is similar to one of the steps in the article, and before adding `push` & `pop` I just cloned it to make things work. That's what Rust beginners do.

    > This feels like you had a cool conclusion for your article, 'linked lists faster than vec', but you had to engineer the vec example to be worse. Maybe I'm being cynical.

    Maybe from today's point in time, I'd think the same.

    > It would be interesting to see the performance of a `Vec<&str>` where you reuse the vector, but also a `Vec` where you copy the path bytes directly into the vector and don't bother doing any pointer traversals. The example path sections are all very small - 'inner', 'another', 5 bytes, 7 bytes - less than the length of a pointer! storing a whole `&str` is 16 bytes per element and then you have to rebuild it again anyway in the invalid case.

    Yeah, that makes sense to try!

    > This whole article is kinda bad, it's titled 'blazingly fast linked lists' which gives it some authority but the approach is all wrong. Man, be responsible if you're choosing titles like this. Someone's going to read this and assume it's a reasonable approach, but the entire section with Vec is bonkers.

    > Why are we designing 'blazingly fast' algorithms with rust primitives rather than thinking about where the data needs to go first? Why are we even considering vector clones or other crazy stuff? The thought process behind the naive approach and step 1 is insane to me:

    > 1. i need to track some data that will grow and shrink like a stack, so my solution is to copy around an immutable Vec (???)

    > 2. this is really slow for obvious reasons, how about we: pull in a whole new dependency ('imbl') that attempts to optimize for the general case using complex trees (???????????????)

    That's clickbait-y, though none of the article's ideas aim to be a silver bullet. I mean, there are admittedly dumb ideas in the article, though I won't believe that somebody would come up with a reasonable solution without trying something stupid first. However, I might have used better wording to highlight that and mention that I've come up with some of these ideas when was working on `jsonschema` in the past.

    > I understand you're trying to be complete, but 'some scenarios' is doing a lot of work here. An Arc<[T]> approach is literally just the same as the naive approach but with extra atomic refcounts! Why mention it in this context?

    If you don't need to mutate the data and need to store it in some other struct, it might be useful, i.e. just to have cheap clones. But dang, that indeed is a whole different story.

    > I have no idea why you mention 'code complexity' here (complexity introduced by rust and its lifetimes), but fail to mention how adding a dependency on 'imbl' is a negative.

    Fair. Adding `imbl` wasn't a really good idea for this context at all.

    Overall I think what you say is kind of fair, but I think that our perspectives on the goals of the article are quite different (which does not disregard the criticism).

    Thank you for taking the time and answer!

    - [0] - https://github.com/Stranger6667/jsonschema-rs/commit/1a1c6c3...

  • web service framework and OpenAPI spec
    2 projects | /r/rust | 24 Mar 2023
    Checkout this crate https://crates.io/crates/jsonschema
  • Show HN: Pg_jsonschema – A Postgres extension for JSON validation
    8 projects | news.ycombinator.com | 21 Jul 2022
    The `jsonschema` crate author here.

    First of all, this is an exciting use case, I didn't even anticipate it when started `jsonschema` (it was my excuse to play with Rust). I am extremely pleased to see such a Postgres extension :)

    At the moment it supports Drafts 4, 6, and 7 + partially supports Draft 2019-09 and 2020-12. It would be really cool if we can collaborate on finishing support for these partially supported drafts! What do you think?

    If you'll have any bug reports on the validation part, feel free to report them to our issue tracker - https://github.com/Stranger6667/jsonschema-rs/issues.

    Re: performance - there are a couple of tricks I've been working on, so if anybody is interested in speeding this up, feel free to join here - https://github.com/Stranger6667/jsonschema-rs/pull/373

    P.S. As for the "Prior Art" section, I think that https://github.com/jefbarn/pgx_json_schema should be mentioned there, as it is also based on `pgx` and `jsonschema`.

  • Need help: Faster JSON Schema validation in Rust
    1 project | /r/rust | 14 Jun 2022
    I've been working on rewriting my jsonschema crate for a while and now I want to ask for help as I don't have much bandwidth to work on it. Here is a WIP pull request with things I have so far:


Posts with mentions or reviews of marshmallow. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-10-25.
  • Help making draggable items for Flask app.
    1 project | /r/flask | 21 Aug 2023
    Somehow get a serializer going for your database models. I used marshmallow and flask-marshmallow
  • Faster time-to-market with API-first
    12 projects | dev.to | 25 Oct 2022
    Uses a robust data validation library: validating payloads is a complex business. Your data validation library must handle optional and required properties, string formats like ISO dates and UUIDs (both dates and UUIDs are string types in OpenAPI), and strict vs loose type validation (should a string pass as an integer if it can be casted?). Also, in the case of Python, you need to make sure 1 and 0 don’t pass for True and False when it comes to boolean properties. In my experience, the best data validation libraries in the Python ecosystem are pydantic and marshmallow. From the above-mentioned libraries, flasgger and flask-smorest work with marshmallow.
  • What's best library for swagger + flask?
    6 projects | /r/Python | 25 Sep 2022
    I also came across things like Marsmallow and Blueprints, but don't know what these are, still reading about this as I write.
  • pydantic VS marshmallow - a user suggested alternative
    2 projects | 21 Sep 2022
    Pydantic is a data validation library, marshmallow is a data validation library. None of the other libraries in the list of pydantic alternatives is a data validation library.
  • Yet another object serialization framework!
    2 projects | /r/Python | 5 Sep 2022
    I have been working on a package that is very similar in concept to marshmallow (https://marshmallow.readthedocs.io), but which adds a versioning mechanism to track changes in object structure across time, allowing you to migrate objects between different versions.
  • How to implement conditional model
    1 project | /r/flask | 6 Jul 2022
    Either using meta programming: https://github.com/marshmallow-code/marshmallow/issues/585
  • Should I use SQLAlchemy for a side project?
    2 projects | /r/Python | 15 Jun 2022
    You might be surprised how much I agree - I recently opened an issue there hoping to discuss something like this (still awaiting response). https://github.com/marshmallow-code/marshmallow/issues/2000
  • The Pocket Guide To API Request Validation You Wish You Had Earlier
    2 projects | dev.to | 6 Jan 2022
  • Project Althaia - looking for performance/accuracy feedback on my shallow fork of marshmallow
    2 projects | /r/Python | 3 Jan 2022
    I created a shallow fork of everyone's favourite marshmallow, to work around some performance issues while dumping data. The performance gain I measured is around 45%, but since it's a bad idea to rely on one's own testing, I was hoping that there are some folks here who use marshmallow in their projects, and who would be willing to try it out. Doubly so if your project has some unit tests in it, to confirm that nothing is broken due to my patches.
  • What's the fastest way to parse JSON to output?
    1 project | /r/flask | 21 Feb 2021
    I was looking at https://github.com/marshmallow-code/marshmallow That's a nice library to use to parsing?

What are some alternatives?

When comparing jsonschema and marshmallow you can also consider the following projects:

Fast JSON schema for Python - Fast JSON schema validator for Python.

lupin is a Python JSON object mapper - Python document object mapper (load python object from JSON and vice-versa)

cattrs - Composable custom class converters for attrs, dataclasses and friends.

cargonauts - A Rust web framework

serpy - ridiculously fast object serialization

WTForms - A flexible forms validation and rendering library for Python.

PyValico - Small python wrapper around https://github.com/rustless/valico

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

RDFLib plugin providing JSON-LD parsing and serialization - JSON-LD parser and serializer plugins for RDFLib

Trafaret - Ultimate transformation library that supports validation, contexts and aiohttp.

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.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives

Did you konow that Rust is
the 5th most popular programming language
based on number of metions?