# koxudaxi/datamodel-code-generator

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/koxudaxi-datamodel-code-generator).**

3,943 stars · 449 forks · Python · MIT

## Links

- GitHub: https://github.com/koxudaxi/datamodel-code-generator
- Homepage: https://datamodel-code-generator.koxudaxi.dev/
- awesome-repositories: https://awesome-repositories.com/repository/koxudaxi-datamodel-code-generator.md

## Topics

`code-generator` `csv` `dataclass` `datamodel` `fastapi` `generator` `graphql` `json-schema` `msgspec` `openapi` `openapi-codegen` `pydantic` `python` `swagger` `swagger-codegen` `typeddict` `yaml`

## Description

This project is a command-line schema-to-code converter designed to transform diverse data specifications into type-safe Python data structures. It functions as a generator for Pydantic models, dataclasses, and typed dictionaries, enabling developers to maintain synchronization between evolving data contracts and application code. By parsing formats such as JSON Schema, OpenAPI, AsyncAPI, Protobuf, and Avro, the tool automates the creation of native classes that reflect the constraints and metadata defined in the source specifications.

The generator distinguishes itself through a highly configurable pipeline that manages complex schema relationships, including circular dependency resolution and reference-based model linking. It provides extensive control over the generated output, allowing for custom base class definitions, field aliasing, and strict type enforcement. Users can tailor the rendering logic to match specific project style standards, ensuring that generated code is modular, formatted, and ready for integration into existing codebases.

Beyond basic generation, the tool supports automated workflows by integrating directly into continuous integration and deployment pipelines. It includes features for schema change monitoring, model validation, and configuration management, which ensure that generated models remain consistent with source definitions across different environments. The project is distributed as a command-line utility, with support for project-level configuration files to facilitate repeatable and auditable generation tasks.

## Tags

### Development Tools & Productivity

- [Schema-Driven Code Generators](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/code-generation/schema-driven-code-generators.md) — Transforms structured data specifications into native, type-safe Python classes and data structures.
- [Schema-to-Code CLI Generators](https://awesome-repositories.com/f/development-tools-productivity/documentation-generators/data-file-generators/command-line-generators/schema-to-code-cli-generators.md) — Provides a command-line interface to parse data formats and generate type-hinted Python code. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/))
- [Field-Level Metadata Annotations](https://awesome-repositories.com/f/development-tools-productivity/attribute-metadata-annotations/field-level-metadata-annotations.md) — Uses annotated syntax for field definitions to preserve schema constraints and metadata in generated code. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/))
- [Build-Triggered Workflow Automators](https://awesome-repositories.com/f/development-tools-productivity/build-triggered-workflow-automators.md) — Triggers automatic data model updates or verification whenever underlying schema files change. ([source](https://datamodel-code-generator.koxudaxi.dev/ci-cd/))
- [Custom Declarative Base Classes](https://awesome-repositories.com/f/development-tools-productivity/code-generators/boilerplate-generators/database-schema-scaffolding/model-generators/custom-base-model-inheritance/custom-declarative-base-classes.md) — Supports custom base class definitions and mixins to inject shared functionality into generated data models. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/))
- [Generated Code Organizers](https://awesome-repositories.com/f/development-tools-productivity/code-organization/generated-code-organizers.md) — Organizes generated models into modular file structures to maintain clean and manageable project codebases. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/))
- [Field Name Aliasing](https://awesome-repositories.com/f/development-tools-productivity/field-name-aliasing.md) — Maps schema field and class names to safe Python identifiers using custom aliasing configurations. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/))
- [Project Configuration](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/project-scaffolding-configuration/project-configuration.md) — Defines generation settings within project configuration files to ensure repeatable model creation. ([source](https://github.com/koxudaxi/datamodel-code-generator#readme))
- [Template-Based Code Generators](https://awesome-repositories.com/f/development-tools-productivity/template-based-code-generators.md) — Automates the creation of source code using dynamic templates and configurable rendering logic.

### Programming Languages & Runtimes

- [JSON Schema to Python Generators](https://awesome-repositories.com/f/programming-languages-runtimes/json-schema-converters/json-schema-generators/json-schema-to-python-generators.md) — Generates validated Python data structures from schema definitions to keep code synchronized with data contracts.
- [Schema-Driven Inheritance Generators](https://awesome-repositories.com/f/programming-languages-runtimes/class-inheritance/schema-driven-inheritance-generators.md) — Translates schema composition rules into explicit class inheritance hierarchies in generated Python models. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/))
- [Iterable Class Implementation](https://awesome-repositories.com/f/programming-languages-runtimes/iterator-implementation-utilities/iterable-class-implementation.md) — Implements sequence interfaces on root list-wrapping classes to allow direct indexing and iteration. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/))

### Data & Databases

- [Avro Model Generation](https://awesome-repositories.com/f/data-databases/data-serialization/avro-decoding/avro-model-generation.md) — Creates type-safe data models from diverse schema specifications including JSON Schema, XML, and Avro. ([source](https://datamodel-code-generator.koxudaxi.dev/getting-started/))
- [Constraint-to-Code Mappers](https://awesome-repositories.com/f/data-databases/schema-enforcement-tools/validation-constraints/constraint-to-code-mappers.md) — Translates schema constraints like minimum, maximum, or pattern requirements into field validation definitions. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/))
- [Schema Normalizers](https://awesome-repositories.com/f/data-databases/tabular-format-parsing/schema-normalizers.md) — Normalizes diverse schema formats like JSON Schema, OpenAPI, and Avro into a consistent internal model for translation.
- [API Schema Retrieval](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-serialization/json-schema/schema-definitions/api-schema-retrieval.md) — Retrieves schema definitions from network URLs with support for custom headers and timeouts. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/base-options/))
- [Generated Field Exclusions](https://awesome-repositories.com/f/data-databases/data-query-filters/field-exclusion-logic/generated-field-exclusions.md) — Adjusts field generation settings like optionality and default value stripping to meet specific data requirements. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/))
- [Literal Types](https://awesome-repositories.com/f/data-databases/data-type-definitions/scalar-types/custom-scalars/scalar-value-generation/literal-value-definitions/literal-types.md) — Converts enumeration fields into literal type annotations to simplify generated model structures. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/))
- [Dynamic Data Model Generation](https://awesome-repositories.com/f/data-databases/dynamic-data-model-generation.md) — Executes generated model code in temporary modules to provide live, usable classes at runtime. ([source](https://datamodel-code-generator.koxudaxi.dev/architecture/))
- [Identifier-Based Model References](https://awesome-repositories.com/f/data-databases/relationship-modeling/identifier-based-model-references.md) — Resolves internal and external schema references to prevent redundant class generation and promote code reuse.
- [Schema Patching and Merging](https://awesome-repositories.com/f/data-databases/schema-definitions/schema-modifiers/schema-patching-and-merging.md) — Identifies and merges identical model or enum definitions across a schema to reduce redundancy and simplify the generated codebase. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/))
- [Type Mapping Overrides](https://awesome-repositories.com/f/data-databases/type-mapping-utilities/custom-type-assertion-mapping/type-mapping-overrides.md) — Allows overriding default type generation to map schema formats to custom types. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/))
- [Strict Type Enforcement](https://awesome-repositories.com/f/data-databases/type-mapping-utilities/custom-type-assertion-mapping/type-to-validation-mappings/strict-type-enforcement.md) — Enforces strict type conversion rules during model generation to ensure data integrity. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/))

### Software Engineering & Architecture

- [API Client Generators](https://awesome-repositories.com/f/software-engineering-architecture/api-client-generators.md) — Generates type-safe client models from API specifications to ensure consistent data handling.
- [Data Model Engineering](https://awesome-repositories.com/f/software-engineering-architecture/data-model-engineering.md) — Transforms complex data formats into native Python data structures for robust application development.
- [Data Model Generators](https://awesome-repositories.com/f/software-engineering-architecture/openapi-specification-parsers/data-model-generators.md) — Transforms various API specifications into type-safe Pydantic models, dataclasses, and TypedDicts.
- [Schema Reference Resolution](https://awesome-repositories.com/f/software-engineering-architecture/api-reference-resolution/schema-reference-resolution.md) — Fetches external schema definitions over network or filesystem with configurable resolution settings. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/))
- [Configuration-Driven Pipelines](https://awesome-repositories.com/f/software-engineering-architecture/configuration-driven-pipelines.md) — Ensures reproducible generation workflows by defining parameters and execution sequences in static configuration files.
- [Pydantic Schema Validation](https://awesome-repositories.com/f/software-engineering-architecture/data-validation-schemas/pydantic-schema-validation.md) — Automates the creation of validated Pydantic data structures from schema definitions.
- [Schema Default Values](https://awesome-repositories.com/f/software-engineering-architecture/default-configuration-values/schema-default-values.md) — Allows overriding schema-defined default values with custom mappings during the code generation process. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/))
- [Circular Dependency Resolution](https://awesome-repositories.com/f/software-engineering-architecture/dependency-resolution-engines/circular-dependency-resolution.md) — Orders class definitions and resolves circular imports through forward references and modular splitting.
- [Immutable Model Generation](https://awesome-repositories.com/f/software-engineering-architecture/immutable-data-patterns/immutable-model-generation.md) — Generates frozen, immutable models to enforce data integrity and prevent accidental modification. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/))
- [CI/CD Integrations](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/ci-cd-integrations.md) — Automates data model generation and validation within continuous integration pipelines to ensure schema synchronization. ([source](https://datamodel-code-generator.koxudaxi.dev/))
- [Model Field Constraints](https://awesome-repositories.com/f/software-engineering-architecture/model-field-constraints.md) — Configures model strictness to allow, ignore, or forbid extra fields not defined in the source schema. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/))
- [Model Naming Overrides](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/identifier-renaming/model-specification-renaming/model-naming-controls/model-naming-overrides.md) — Overrides auto-generated class names using custom mappings to avoid collisions and improve readability. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/model-customization/))
- [Package and Variable Name Collision Avoidances](https://awesome-repositories.com/f/software-engineering-architecture/naming-conventions/package-scope-naming/package-and-variable-name-collision-avoidances.md) — Resolves naming conflicts between fields and types to maintain clarity in generated code. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/))
- [Parameter Name Normalization](https://awesome-repositories.com/f/software-engineering-architecture/parameter-name-normalization.md) — Normalizes non-safe property names to snake case to ensure generated code follows standard naming conventions. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/field-customization/))
- [Generated Container Types](https://awesome-repositories.com/f/software-engineering-architecture/specialized-container-modules/generated-container-types.md) — Implements abstract container types in generated models to enhance type hinting flexibility and usability. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/typing-customization/))

### System Administration & Monitoring

- [Source Change Monitors](https://awesome-repositories.com/f/system-administration-monitoring/resource-monitoring/resource-change-monitors/source-change-monitors.md) — Monitors input schema files for modifications to trigger automatic code regeneration. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/general-options/))

### User Interface & Experience

- [Data Model Validation](https://awesome-repositories.com/f/user-interface-experience/form-submission-management/data-model-validation.md) — Verifies that existing data models match current schema definitions to ensure consistency. ([source](https://datamodel-code-generator.koxudaxi.dev/ci-cd/))

### Web Development

- [Path Filters](https://awesome-repositories.com/f/web-development/api-specification-generation/path-filters.md) — Restricts model generation to a subset of API paths while maintaining necessary parameter and versioning context for the selected endpoints. ([source](https://datamodel-code-generator.koxudaxi.dev/cli-reference/openapi-only-options/))
- [OpenAPI to Python Converters](https://awesome-repositories.com/f/web-development/restful-apis/documentation-schemas/openapi-to-typescript-converters/openapi-to-python-converters.md) — Maps OpenAPI schema definitions to native Python classes for type-safe API consumption.
