{"id":3813,"url":"https://github.com/grundic/awesome-python-models","name":"awesome-python-models","description":"A curated list of awesome Python libraries, which implement models, schemas, serializers/deserializers, ODM's/ORM's, Active Records or similar patterns.","projects_count":154,"last_synced_at":"2026-04-10T13:00:30.227Z","repository":{"id":137099879,"uuid":"85747461","full_name":"grundic/awesome-python-models","owner":"grundic","description":"A curated list of awesome Python libraries, which implement models, schemas, serializers/deserializers, ODM's/ORM's, Active Records or similar patterns.","archived":false,"fork":false,"pushed_at":"2018-05-07T19:53:05.000Z","size":104,"stargazers_count":167,"open_issues_count":3,"forks_count":9,"subscribers_count":14,"default_branch":"master","last_synced_at":"2026-03-27T09:59:13.427Z","etag":null,"topics":["activerecord","awesome","awesome-list","awesome-lists","deserialization","document-mapper","mapper","marshalling","model","odm","orm","python","schema","serialization","validation","validator"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grundic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-03-21T20:01:05.000Z","updated_at":"2026-02-05T00:56:00.000Z","dependencies_parsed_at":"2023-03-29T12:50:35.480Z","dependency_job_id":null,"html_url":"https://github.com/grundic/awesome-python-models","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/grundic/awesome-python-models","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grundic%2Fawesome-python-models","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grundic%2Fawesome-python-models/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grundic%2Fawesome-python-models/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grundic%2Fawesome-python-models/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grundic","download_url":"https://codeload.github.com/grundic/awesome-python-models/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grundic%2Fawesome-python-models/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31643431,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"readme":"# Awesome Python Models [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)\nA curated list of awesome Python libraries, which implement models, schemas, serializers/deserializers, ODM's/ORM's, Active Records or similar patterns.\n\n- [Awesome Python Models](#awesome-python-models)\n    - [Model/Schema](#model-schema)\n    - [ODM/ORM/Active Record](#odm-orm-active-record)\n    - [Data/validation](#data-validation)\n- [Other resources](#other-resources)\n- [Other Awesome Lists](#other-awesome-lists)\n- [Contributing](#contributing)\n\n- - -\n\n## Model, Schema\n*Libraries implementing some kind of model, letting you to serialize/deserialize python object to some data structures.*\n* :ghost: [ascetic](https://bitbucket.org/emacsway/ascetic) - Ascetic, a lightweight Python datamapper ORM.\n* ![alt text](https://avatars1.githubusercontent.com/u/25880274?v=3\u0026s=32 \"The attrs Cabal\") \n  [attrs](https://github.com/python-attrs/attrs) - Python Classes Without Boilerplate.\n* ![alt text](https://avatars2.githubusercontent.com/u/825580?v=3\u0026s=32 \"Jaime Gil de Sagredo Luna\") \n  [booby](https://github.com/jaimegildesagredo/booby) - data modeling and validation Python library.\n* ![alt text](https://avatars3.githubusercontent.com/u/5652479?v=3\u0026s=32 \"roronya\")\n  [causalmodels](https://github.com/roronya/causalmodels) - causal modeling in Python.\n* ![alt text](https://avatars2.githubusercontent.com/u/452227?v=3\u0026s=32 \"Pylons Project\")\n  [colander](https://github.com/Pylons/colander) - A serialization/deserialization/validation library for strings, mappings and lists.\n* ![alt text](https://avatars1.githubusercontent.com/u/824379?v=3\u0026s=32 \"tarvitz\")\n  [composite](https://github.com/tarvitz/composite/) - Declarative XML files parse, unparse with help of lxml library.\n* ![alt text](https://avatars0.githubusercontent.com/u/3585075?v=3\u0026s=32 \"datastore\")\n  [datastore.objects](https://github.com/datastore/datastore.objects) - simple object mapper on top of datastore (not relational).\n* ![alt text](https://avatars1.githubusercontent.com/u/574291?v=3\u0026s=32 \"Alfred Santacatalina Gea\")\n  [dirty-models](https://github.com/alfred82santa/dirty-models) - Dirty model for python.\n* [dejavu](http://www.aminus.net/dejavu/chrome/common/doc/2.0a/html/intro.html) - Dejavu is a thread-safe Object-Relational Mapper for Python applications.\n* ![alt text](https://avatars1.githubusercontent.com/u/723451?v=3\u0026s=32 \"Adrian Perez\")\n  [gnarl](https://github.com/aperezdc/gnarl) - Lightweight module to define serializable, schema-validated classes\n* ![alt text](https://avatars1.githubusercontent.com/u/124167?v=3\u0026s=32 \"Sebastian Heimann\")\n  [guts](https://github.com/emolch/guts) - Lightweight declarative YAML and XML data binding for Python.\n* ![alt text](https://avatars2.githubusercontent.com/u/29016?v=3\u0026s=32 \"Matt Good\")\n  [jsonmapper](https://github.com/mgood/jsonmapper) - Python JSON\u003c-\u003eObject mapper.\n* ![alt text](https://avatars1.githubusercontent.com/u/956019?v=3\u0026s=32 \"Szczepan Cieślik\")\n  [jsonmodels](https://github.com/beregond/jsonmodels) - jsonmodels is library to make it easier for you to deal with structures that are converted to, or read from JSON.\n* ![alt text](https://avatars3.githubusercontent.com/u/1021723?v=3\u0026s=32 \"Max Kamenkov\")\n  [jsonobjects](https://github.com/caxap/jsonobjects) - jsonobjects allows you to declaratively specify how to extract and convert elements from a JSON document.\n* ![alt text](https://avatars1.githubusercontent.com/u/94514?v=3\u0026s=32 \"Dimagi\")\n  [jsonobject](https://github.com/dimagi/jsonobject) - A simple json-object mapping for Python.\n* :ghost: [jsonpickle](https://github.com/jsonpickle/jsonpickle) - Python library for serializing any arbitrary object graph into JSON.\n* ![alt text](https://avatars1.githubusercontent.com/u/488217?v=3\u0026s=32 \"Mike Waites\")\n  [kim](https://github.com/mikeywaites/kim) - A JSON Serialization and Marshaling framework.\n* ![alt text](https://avatars0.githubusercontent.com/u/111217?v=3\u0026s=32 \"Neil Isaac\")\n  [lazycontract](https://github.com/neilisaac/lazycontract) - Python library to define declarative contracts for serialization and deserialization.\n* ![alt text](https://avatars3.githubusercontent.com/u/87913??v=3\u0026s=32 \"Aurélien\")\n  [lupin](https://github.com/holinnn/lupin) - Python document object mapper (load python object from JSON and vice-versa).\n* ![alt text](https://avatars1.githubusercontent.com/u/10334301?v=3\u0026s=32 \"Python object serialization and deserialization, lightweight and fluffy\")\n  [marshmallow](https://github.com/marshmallow-code/marshmallow) - A lightweight library for converting complex objects to and from simple Python datatypes.\n* :ghost: [metaparams](https://github.com/mementum/metaparams) - Python meta framework for Parameters in classes.\n* ![alt text](https://avatars0.githubusercontent.com/u/6988?v=3\u0026s=32 \"Jamie Matthews\")\n  [micromodels](https://github.com/j4mie/micromodels) - Declarative dictionary-based model classes for Python.\n* ![alt text](https://avatars2.githubusercontent.com/u/27304?v=3\u0026s=32 \"Andy Mikhailenko\")\n  [monk](https://github.com/neithere/monk) - An unobtrusive data modeling, manipulation and validation library.\n* ![alt text](https://avatars3.githubusercontent.com/u/633032?v=3\u0026s=32 \"Hearsay Social\")\n  [normalize](https://github.com/hearsaycorp/normalize) - A toolkit for wrapping network data in Python objects.\n* ![alt text](https://avatars0.githubusercontent.com/u/9479519?v=3\u0026s=32 \"Caxiam\")\n  [model-api](https://github.com/caxiam/model-api) - For modeling remote APIs in an ORM fashion.\n* ![alt text](https://avatars2.githubusercontent.com/u/323018?v=3\u0026s=32 \"Marek Polak\")\n  [object-mapper](https://github.com/marazt/object-mapper) - ObjectMapper is a class for automatic object mapping in Python.\n* ![alt text](https://avatars3.githubusercontent.com/u/1693676?v=3\u0026s=32 \"IOAM\")\n  [param](https://github.com/ioam/param) - Make your Python code clearer and more reliable by declaring Parameters.\n* :ghost: [prettyrecord](https://github.com/skorczan/prettyrecord) - Structures like SQLAlchemy's declarative_base or Django's models in your project!\n* ![alt text](https://avatars3.githubusercontent.com/u/4039449?v=3\u0026s=32 \"Samuel Colvin\")\n  [pydantic](https://github.com/samuelcolvin/pydantic) - Data validation using Python 3.6 type hinting.\n* ![alt text](https://avatars3.githubusercontent.com/u/251374?v=3\u0026s=32 \"Spotify\")\n  [pyschema](https://github.com/spotify/pyschema) - Python library for class-based schema definition, object serialization and data validation.\n* ![alt text](https://avatars1.githubusercontent.com/u/2567468?v=3\u0026s=32 \"Trust Sanger Institute - Human Genetics Informatics\")\n  [python-json](https://github.com/wtsi-hgi/python-json) - Python library for easily JSON encoding/decoding complex class-based Python models, using an arbitrarily complex (but easy to write!) mapping schema.\n* ![alt text](https://avatars1.githubusercontent.com/u/922613?v=3\u0026s=32 \"30loops\")\n  [python-docar](https://github.com/30loops/python-docar) - A library for document oriented architectures.\n* ![alt text](https://avatars3.githubusercontent.com/u/1820812?v=3\u0026s=32 \"F-Secure Corporation\")\n  [resource-api](https://github.com/F-Secure/resource-api) - A framework that allows developers decoratively define resources and relationships between them.\n* ![alt text](https://avatars0.githubusercontent.com/u/7866441?v=3\u0026s=32 \"Schematics\") \n  [schematics](https://github.com/schematics/schematics) - Python Data Structures for Humans™.\n* ![alt text](https://avatars2.githubusercontent.com/u/275106?v=3\u0026s=32 \"Marrow Open Source Collective\")\n  [schema](https://github.com/marrow/schema/) - A generic declarative schema system.\n* ![alt text](https://avatars0.githubusercontent.com/u/152941?v=3\u0026s=32 \"Jordan McCoy\")\n  [scheme](https://github.com/jordanm/scheme) - A declarative schema framework for Python.\n* ![alt text](https://avatars1.githubusercontent.com/u/5894089?v=3\u0026s=32 \"Maksim Ekimovskii\")\n  [simple-models](https://github.com/prawn-cake/simple-models) - Simple models - keep your API messages in shape with validation and handy descriptors based object interface.\n* ![alt text](https://avatars1.githubusercontent.com/u/1730315?v=3\u0026s=32 \"Aljosha Friemann\")\n  [simple_model](https://github.com/afriemann/simple_model) - a very simple model framework for python.\n* ![alt text](https://avatars0.githubusercontent.com/u/939501?v=3\u0026s=32 \"Jace Browning\")\n  [yorm](https://github.com/jacebrowning/yorm) - Automatic object-YAML mapping for Python.\n  \n\n## ODM, ORM, Active Record\n*Libraries, implementing ODM/ORM/Active Record patterns, letting you to work with external objects (REST, DB) like normal python instances.*\n* ![alt text](https://avatars3.githubusercontent.com/u/2315?v=3\u0026s=32 \"dw\")\n  [acid](https://github.com/dw/acid) - SQLite for NoSQL.\n* :ghost: [butterdb](https://github.com/terrible-ideas/butterdb) - butterdb is a Python object mapper for Google Drive Spreadsheets.\n* ![alt text](https://avatars1.githubusercontent.com/u/27804?v=3\u0026s=32 \"Django\")\n  [django](https://github.com/django/django) - The Web framework for perfectionists with deadlines (includes ORM layer).\n* ![alt text](https://avatars2.githubusercontent.com/u/825580?v=3\u0026s=32 \"Jaime Gil de Sagredo Luna\")\n  [finch](https://github.com/jaimegildesagredo/finch) - Asynchronous RESTful API consumer for Python.\n* ![alt text](https://avatars1.githubusercontent.com/u/506791?v=3\u0026s=32 \"Steven Arcangeli\")\n  [flywheel](https://github.com/stevearc/flywheel) - Object mapper for Amazon's DynamoDB.\n* ![alt text](https://avatars3.githubusercontent.com/u/48549?v=3\u0026s=32 \"Brian Jinwright\")\n  [kev](https://github.com/capless/kev) - Python ORM for key-value stores. Currently supported backends are Redis, S3, and a S3/Redis hybrid backend.\n* ![alt text](https://avatars0.githubusercontent.com/u/3344584?v=3\u0026s=32 \"Center for Open Science\")\n  [modular-odm](https://github.com/CenterForOpenScience/modular-odm) - A database-agnostic Object-Document Mapper for Python.\n* ![alt text](https://avatars3.githubusercontent.com/u/1502485?v=3\u0026s=32 \"MongoEngine\")\n  [mongoengine](https://github.com/MongoEngine/mongoengine) - A Python Object-Document-Mapper for working with MongoDB.\n* ![alt text](https://avatars3.githubusercontent.com/u/555648?v=3\u0026s=32 \"Sébastien Eustace\")\n  [orator](https://github.com/sdispater/orator) - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.\n* ![alt text](https://avatars1.githubusercontent.com/u/3248238?v=3\u0026s=32 \"ponyorm\")\n  [pony](https://github.com/ponyorm/pony) - Pony Object Relational Mapper.\n* ![alt text](https://avatars0.githubusercontent.com/u/119974?v=3\u0026s=32 \"Charles Leifer\")\n  [peewee](https://github.com/coleifer/peewee) - a small, expressive orm -- supports postgresql, mysql and sqlite.\n* ![alt text](https://avatars1.githubusercontent.com/u/7572385?v=3\u0026s=32 \"GenePeeks, Inc.\")\n  [py-rest-orm](https://github.com/GenePeeks/py-rest-orm) - Generic Python REST ORM. Inspired by Django. Powered by Requests.\n* ![alt text](https://avatars2.githubusercontent.com/u/2125212?v=3\u0026s=32 \"Mohamed Daif\")\n  [python-rest-model](https://github.com/mdaif/python-rest-model) - A standard way to consume a RESTful service, inspired by Django models.\n* ![alt text](https://avatars0.githubusercontent.com/u/126780?v=3\u0026s=32 \"Burak Yiğit Kaya\")\n  [pyresto](https://github.com/BYK/pyresto) - A generic ORM framework for RESTful APIs.\n* ![alt text](https://avatars3.githubusercontent.com/u/45120?v=3\u0026s=32 \"mongodb\")\n  [pymodm](https://github.com/mongodb/pymodm) - A Pythonic, object-oriented interface for working with MongoDB.\n* ![alt text](https://avatars2.githubusercontent.com/u/236514?v=3\u0026s=32 \"Jharrod LaFon\")\n  [PynamoDB](https://github.com/jlafon/PynamoDB) - A pythonic interface to Amazon's DynamoDB.\n* ![alt text](https://avatars3.githubusercontent.com/u/391998?v=3\u0026s=32 \"sebastien requiem\")\n  [redisco](https://github.com/kiddouk/redisco) - A Python Library for Simple Models and Containers Persisted in Redis.\n* ![alt text](https://avatars2.githubusercontent.com/u/319844?v=3\u0026s=32 \"Andrei Horak\")\n  [remodel](https://github.com/linkyndy/remodel) - Very simple yet powerful and extensible Object Document Mapper for RethinkDB, written in Python.\n* ![alt text](https://avatars1.githubusercontent.com/u/96970?v=3\u0026s=32 \"Joeri Bekker\")\n  [restorm](https://github.com/joeribekker/restorm) - RestORM allows you to interact with resources as if they were objects.\n* :ghost: [storm](https://storm.canonical.com) - Storm is an object-relational mapper (ORM) for Python developed at Canonical.\n* :ghost: [sqlobject](http://www.sqlobject.org) - SQLObject is a popular Object Relational Manager for providing an object interface to your database, with tables as classes, rows as instances, and columns as attributes.\n* ![alt text](https://avatars2.githubusercontent.com/u/4458558?v=3\u0026s=32 \"SurveyMonkey\")\n  [wukong](https://github.com/SurveyMonkey/wukong) - An ORM Client library for SolrCloud.\n* ![alt text](https://avatars0.githubusercontent.com/u/443794?v=3\u0026s=32 \"Alexander Zelenyak\")\n  [yadm](https://github.com/zzzsochi/yadm) - Yet Another Document Mapper (ODM) for MongoDB.\n* ![alt text](https://avatars2.githubusercontent.com/u/119974?v=3\u0026s=32 \"Charles Leifer\")\n  [walrus](https://github.com/coleifer/walrus) - Lightweight Python utilities for working with Redis.\n\n\n## Data validation\n*Libraries for validating custom data structures.*  \n* ![alt text](https://avatars1.githubusercontent.com/u/26229868?v=3\u0026s=32 \"eve\")\n  [cerberus](https://github.com/pyeve/cerberus) - Lightweight, extensible data validation library for Python.\n* ![alt text](https://avatars0.githubusercontent.com/u/1328688?v=3\u0026s=32 \"Michael Selik\")\n  [destructure](https://github.com/selik/destructure) - Easy declarative schema validation with optional name-binding.\n* ![alt text](https://avatars1.githubusercontent.com/u/329822?v=3\u0026s=32 \"Julian Berman\")\n  [jsonschema](https://github.com/Julian/jsonschema) - jsonschema is an implementation of JSON Schema for Python (supporting 2.7+ including Python 3).\n* ![alt text](https://avatars0.githubusercontent.com/u/22664290?v=3\u0026s=32 \"Shivaprasad Bhat\")\n  [pyschemes](https://github.com/shivylp/pyschemes) - PySchemes is a library for validating data structures in Python.\n* ![alt text](https://avatars0.githubusercontent.com/u/872991?v=3\u0026s=32 \"Davide Zanotti\")\n  [pyvaru](https://github.com/daveoncode/pyvaru) - Rule based data validation library for python 3.  \n* ![alt text](https://avatars0.githubusercontent.com/u/1761188?v=3\u0026s=32 \"Shezad Khan\")\n  [required](https://github.com/shezadkhan137/required) - Required is a simple library which allows you to validate dependencies across multiple fields.\n* ![alt text](https://avatars1.githubusercontent.com/u/619158?v=3\u0026s=32 \"Vladimir Keleshev\")\n  [schema](https://github.com/keleshev/schema) - schema is a library for validating Python data structures, such as those obtained from config-files, forms, external services or command-line parsing, converted from JSON/YAML (or something else) to Python data-types.\n* ![alt text](https://avatars0.githubusercontent.com/u/6067509?v=3\u0026s=32 \"Colm O'Connor\")\n  [strictyaml](https://github.com/crdoconnor/strictyaml) - Type-safe YAML parser and validator.\n* ![alt text](https://avatars0.githubusercontent.com/u/446761?v=3\u0026s=32 \"Podio\")\n  [valideer](https://github.com/podio/valideer) - Lightweight data validation and adaptation Python library.\n* ![alt text](https://avatars0.githubusercontent.com/u/6367792?v=3\u0026s=32 \"guyskk\")\n  [validr](https://github.com/guyskk/validr) - A simple, fast, extensible python library for data validation.\n* ![alt text](https://avatars0.githubusercontent.com/u/41767?v=3\u0026s=32 \"Alec Thomas\")\n  [voluptuous](https://github.com/alecthomas/voluptuous) - Voluptuous, despite the name, is a Python data validation library. It is primarily intended for validating data coming into Python as JSON, YAML, etc.\n\n\n# Other resources\n* [fullstackpython: Object-relational mappers (ORMs)](https://www.fullstackpython.com/object-relational-mappers-orms.html)\n* [Python ORM/ODM Examples, For The Sleepy](https://github.com/sloria/PythonORMSleepy)\n* [martinfowler: Active Record](https://www.martinfowler.com/eaaCatalog/activeRecord.html)\n* [martinfowler: Data Mapper](https://martinfowler.com/eaaCatalog/dataMapper.html)\n* [wiki: Object-relational mapping](https://en.wikipedia.org/wiki/Object-relational_mapping)\n* [Higher Level Database Programming](https://wiki.python.org/moin/HigherLevelDatabaseProgramming)\n\n\n# Other Awesome Lists\nList of lists.\n* Monty\n    * [awesome](https://github.com/sindresorhus/awesome)\n    * [lists](https://github.com/jnv/lists)\n* Python\n    * [awesome-python](https://github.com/vinta/awesome-python)\n    * [awesome-sqlalchemy](https://github.com/dahlia/awesome-sqlalchemy)\n    * [pycrumbs](https://github.com/kirang89/pycrumbs)\n    * [python-github-projects](https://github.com/checkcheckzz/python-github-projects)\n    * [python_reference](https://github.com/rasbt/python_reference)\n    * [pythonidae](https://github.com/svaksha/pythonidae)\n    \n# Contributing\nIf you know some project/library that is not listed here, just let me know! Or even better, create a pull request.\n","created_at":"2024-01-06T10:58:06.698Z","updated_at":"2026-04-10T13:00:30.228Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Data validation","Model, Schema","ODM, ORM, Active Record"],"sub_categories":[],"projects_url":"https://awesome.ecosyste.ms/api/v1/lists/grundic%2Fawesome-python-models/projects"}