marshmallow VS WTForms

Compare marshmallow vs WTForms and see what are their differences.

marshmallow

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

WTForms

A flexible forms validation and rendering library for Python. (by wtforms)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
marshmallow WTForms
11 5
6,865 1,454
1.1% 0.4%
8.8 8.4
3 days ago 7 days 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.

marshmallow

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.
  • 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.
  • 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
    Marshmallow
  • 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.
  • Strict YAML deserialization in Python with marshmallow
    3 projects | dev.to | 27 Jan 2021
    I found a recommendation to use marshmallow to parse dict generated from JSON object. I decided that these cases are the same as mine only uses JSON instead of YAML. And so I tried to use class_schema generator for dataclass schema:

WTForms

Posts with mentions or reviews of WTForms. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-03-15.
  • Using HTML5 fields with WTForms
    2 projects | /r/codehunter | 15 Mar 2022
    I then ended up on the WTForms github page, and found that actually there is support for all the new HTML5 fields, but that these fields aren't imported by default. https://github.com/wtforms/wtforms/blob/master/wtforms/fields/html5.py Therefore instead of using

What are some alternatives?

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

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

django-crispy-forms - The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.

cattrs - Composable custom class converters for attrs.

serpy - ridiculously fast object serialization

Deform - A Python HTML form library.

jsonschema - JSON Schema validation library

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

flask-wtf - Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration.

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

jsons - 🐍 A Python lib for (de)serializing Python objects to/from JSON

WTForms-JSON - Adds smart json support for WTForms. Useful for when using WTForms with RESTful APIs.

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