awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·

Schema definition languages

Ranking updated Jul 30, 2026

For schema definition languages, the strongest matches are marshmallow-code/marshmallow (Marshmallow is a Python data serialization and validation framework), keleshev/schema (This Python library provides a human-readable, schema-based data validation) and protobufjs/protobuf.js (This JavaScript and TypeScript library provides schema parsing, data). google/flatbuffers and jquense/yup round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.

Explore top open-source schema definition languages for your stack. Compare features, star ratings, and find the best fit for your project.

Schema definition languages

Find the best repos with AI.We'll search the best matching repositories with AI.
  • marshmallow-code/marshmallowmarshmallow-code avatar

    marshmallow-code/marshmallow

    7,239View on GitHub↗

    Marshmallow is a Python data serialization library and validation framework. It functions as a bridge that transforms complex application objects into primitive data types for storage or network transmission and vice versa. The library utilizes a schema-based approach to validate that incoming data conforms to specific types and constraints. It employs a two-way transformation pipeline consisting of separate load and dump phases to handle deserialization and serialization. The framework supports class-based schema definitions with declarative field validation and recursive schema nesting for

    Marshmallow is a Python data serialization and validation framework that uses schema definitions for parsing objects, though it lacks broad multi-language export or general API specification support.

    PythonData ValidationData Validation
    View on GitHub↗7,239
  • keleshev/schemakeleshev avatar

    keleshev/schema

    2,943View on GitHub↗

    Schema validation just got Pythonic

    This Python library provides a human-readable, schema-based data validation and parsing tool, fitting the category well though narrower in scope than a full multi-language API specification suite.

    PythonData ValidationData Validation
    View on GitHub↗2,943
  • protobufjs/protobuf.jsprotobufjs avatar

    protobufjs/protobuf.js

    10,558View on GitHub↗

    protobuf.js is a JavaScript and TypeScript library for encoding and decoding structured data using the Protocol Buffers binary format. It functions as a dynamic parser that can load and process schemas at runtime, a JSON transcoder for converting messages to human-readable formats, and a framework for building transport-agnostic remote procedure call clients. The project distinguishes itself by offering both dynamic message handling and a static code generator that produces TypeScript declarations and JavaScript modules to reduce runtime overhead. It also provides a reflection API for definin

    This JavaScript and TypeScript library provides schema parsing, data validation, and code generation for Protocol Buffers, fitting well within the data modeling tools category despite its focus on a specific binary serialization format.

    JavaScriptSchema ValidationCode Generators
    View on GitHub↗10,558
  • google/flatbuffersgoogle avatar

    google/flatbuffers

    25,558View on GitHub↗

    FlatBuffers is a cross-platform serialization library designed for performance-critical applications that require efficient, zero-copy data access. By organizing data in a structured binary format, it allows applications to read and write complex data structures directly from memory-mapped buffers without the need for intermediate parsing or temporary object allocation. The project distinguishes itself through a schema-driven approach that balances high-performance access with long-term data evolution. It utilizes a unique memory layout featuring relative offsets and inline fixed-size structu

    FlatBuffers uses a schema-driven approach with human-readable definitions to generate type-safe code and support zero-copy serialization across multiple languages, fitting the core data modeling and code generation needs.

    C++Code GeneratorsCode Generators
    View on GitHub↗25,558
  • jquense/yupjquense avatar

    jquense/yup

    23,673View on GitHub↗

    Yup is a JavaScript schema validation library used to define data shapes and validate runtime values. It functions as an object schema validator and a data coercion engine, allowing developers to transform raw input values into desired types before performing validation checks. The library is distinguished by its support for dynamic schema validation, where rules can be adjusted at runtime based on sibling field values or external context. It also enables recursive data structuring for polymorphic fields and provides a system for extracting static TypeScript interfaces from runtime schema def

    Yup is a JavaScript schema validation library that lets you define and validate data shapes with type safety, fitting the core data modeling and validation requirements despite lacking API specification export.

    TypeScriptSchema ValidationData ValidationData Validation
    View on GitHub↗23,673
  • sqlc-dev/sqlcsqlc-dev avatar

    sqlc-dev/sqlc

    17,882View on GitHub↗

    sqlc is a code generation tool that compiles raw SQL queries into type-safe application code. By analyzing SQL statements against database schema definitions during the build process, it eliminates the need for manual data mapping and prevents runtime type errors. The project functions as a schema-aware generator that translates database column types into native language primitives. It distinguishes itself through a modular, plugin-based architecture that allows for the extension of the generation pipeline to support diverse programming languages and custom frameworks beyond its default capab

    It translates database schemas and SQL queries into type-safe application code with multi-language support, aligning closely with schema definition and code generation needs despite focusing on database queries rather than general API specs.

    GoCode GenerationCode Generators
    View on GitHub↗17,882
  • googleapis/googleapisgoogleapis avatar

    googleapis/googleapis

    8,439View on GitHub↗

    This project is a centralized API specification registry and governance framework. It serves as a source of truth for structured API schemas, gRPC definitions, and data models used to maintain consistency across a large ecosystem of services. The system functions as a multi-language client generator, transforming standardized interface definitions into executable source code and language-specific libraries. This process ensures that client libraries and technical documentation remain synchronized by deriving them directly from the original interface definitions. The project also covers the m

    This repository provides a centralized collection of protocol buffer definitions that serve as a standard schema definition language and data modeling source of truth, though it focuses on Google's specific API standards rather than a general-purpose modeling tool.

    StarlarkInterface Definition Code Generation
    View on GitHub↗8,439
  • typestack/class-validatortypestack avatar

    typestack/class-validator

    11,796View on GitHub↗

    class-validator is a TypeScript class validation library that uses decorators to define constraints and rules for object properties. It functions as a decorator-based schema validator that ensures data integrity and structural correctness through a combination of synchronous checks and promise-based asynchronous rules. The library provides a recursive validation system for checking complex data hierarchies, including nested classes and individual elements within collections. It includes an object property whitelist utility capable of stripping undocumented properties or blocking unknown field

    This TypeScript decorator-based validation library provides robust data integrity checks and structural validation for classes, fitting the data modeling and validation requirement well despite focusing on code-first validation rather than broad API specifications.

    TypeScriptData ValidationData Validation
    View on GitHub↗11,796
  • pydantic/pydanticpydantic avatar

    pydantic/pydantic

    26,932View on GitHub↗

    Pydantic is a data validation and serialization library that enforces schema constraints and performs type conversion on complex data structures. It utilizes standard Python type annotations to define data models, allowing developers to establish structured schemas that automatically enforce business rules and constraints without the need for custom domain-specific languages. The library distinguishes itself by transforming high-level model definitions into optimized code during initialization to minimize runtime overhead. It supports recursive validation for nested data structures and employ

    Pydantic is a schema-driven data modeling and validation library that uses Python type annotations for defining structured schemas, though it focuses more on runtime validation than a standalone API specification language.

    PythonData ValidationData Validation
    View on GitHub↗26,932
  • hapijs/joihapijs avatar

    hapijs/joi

    21,192View on GitHub↗

    Joi is a JavaScript data validation library used to define schemas that validate, cast, and sanitize data objects. It functions as an object schema validator and parser, ensuring that input data matches specific types and formats before it is processed by an application. The library features a conditional validation engine capable of dynamic schema enforcement, where validation logic and dependencies change based on the values of other keys within an object. It also serves as a data casting and sanitization tool, transforming input values into target types and removing sensitive keys from the

    Joi is a JavaScript schema definition and data validation library that ensures inputs match specified structures, though it focuses primarily on runtime validation rather than generating API specifications or multi-language code.

    JavaScriptData ValidationData Validation
    View on GitHub↗21,192
  • prisma/prismaprisma avatar

    prisma/prisma

    46,366View on GitHub↗

    Prisma is a database toolkit that provides a unified access layer for interacting with relational and document databases. It centers on a declarative schema modeling approach, where developers define their data structures in a human-readable language. This schema serves as the single source of truth, from which the toolkit automatically generates type-safe database clients that provide compile-time validation and editor autocomplete for all data operations. The project distinguishes itself through a high-performance, Rust-based query engine that handles query planning and connection pooling o

    Prisma is a database toolkit built around a declarative schema language that provides human-readable data modeling, type-safe client generation, and validation for multiple databases.

    TypeScriptObject-Relational MappersSchema Modeling ToolsType-Safe Client Generators
    View on GitHub↗46,366
  • protocolbuffers/protobufprotocolbuffers avatar

    protocolbuffers/protobuf

    71,359View on GitHub↗

    Protocol Buffers is a language-neutral, platform-agnostic mechanism for serializing structured data. It provides a schema-driven toolchain that compiles declarative data definitions into type-safe source code, enabling consistent communication and strongly typed API contracts across services written in different programming languages. The project distinguishes itself through a highly efficient binary wire format that utilizes tag-based encoding and variable-width integer compression to minimize payload size and processing overhead. It supports robust evolutionary schema management, allowing d

    Protocol Buffers provides a schema-driven language and compiler for defining structured data, generating type-safe multi-language code, and managing API contracts with strong validation and human-readable definitions.

    C++API Contract DefinitionsData SerializationProtocol Buffers
    View on GitHub↗71,359
  • oai/openapi-specificationOAI avatar

    OAI/OpenAPI-Specification

    31,048View on GitHub↗

    The OpenAPI Specification is a formal, vendor-neutral standard for defining the structure, endpoints, and data models of HTTP-based web services. By providing a machine-readable interface definition language, it enables developers to establish clear API contracts that ensure consistency across diverse programming languages and backend systems. This specification promotes a design-first development approach, where interface behavior is defined through static, declarative configuration files rather than imperative code. This structure allows for the automated generation of type-safe client libr

    The OpenAPI Specification provides a formal, human-readable standard for defining API data structures and endpoints, directly fulfilling the need for schema definition and documentation tools.

    MarkdownAPI Contract DefinitionsAPI Description StandardsClient SDK Generators
    View on GitHub↗31,048
  • holistics/dbmlholistics avatar

    holistics/dbml

    3,520View on GitHub↗

    DBML is a domain-specific language and schema definition language used for documenting database architecture and design. It provides a human-readable text format for defining database tables, columns, and relationships in a standardized way. The project functions as a relational schema parser and SQL schema generator. It transforms declarative design specifications into an abstract syntax tree for programmatic manipulation and converts these definitions into executable SQL statements across various database dialects. The system covers relational data modeling, database schema design, and arc

    DBML is a schema definition language and data modeling tool featuring a human-readable text format, SQL schema generation, and relational data modeling capabilities tailored for database design and documentation.

    JavaScriptDomain Specific LanguagesSQL Schema GeneratorsDatabase Architecture Documentation
    View on GitHub↗3,520
  • open-circle/valibotopen-circle avatar

    open-circle/valibot

    8,769View on GitHub↗

    Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments.

    Valibot is a modular TypeScript schema validation library that provides type safety and runtime input verification, making it a fitting tool for data modeling despite lacking broader API specification formats.

    TypeScriptSchema ValidationData ValidationData Validation
    View on GitHub↗8,769
  • colinhacks/zodcolinhacks avatar

    colinhacks/zod

    43,036View on GitHub↗

    Zod is a TypeScript-first schema declaration and validation library designed to ensure end-to-end data integrity. It functions as a runtime type guard, allowing developers to define complex data structures through a declarative, chainable syntax. By using these schema definitions, the library automatically derives static TypeScript types, eliminating the need for manual type duplication and ensuring that runtime data matches expected application contracts. The library distinguishes itself through functional schema composition, which enables the creation of hierarchical structures by nesting a

    Zod is a TypeScript-first schema declaration and validation library that provides human-readable syntax, runtime type safety, and static type inference, fitting the data modeling category well even though it focuses primarily on code-first TypeScript rather than multi-language API specification export.

    TypeScriptData ValidationData Validation
    View on GitHub↗43,036
  • middleapi/orpcmiddleapi avatar

    middleapi/orpc

    4,862View on GitHub↗

    orpc is a contract-first API development framework for TypeScript that starts with a shared contract definition and generates type-safe clients and servers from that single source of truth. It guarantees end-to-end type safety, meaning inputs, outputs, errors, and streaming data are all checked at compile time across the client–server boundary. What distinguishes orpc from typical RPC frameworks is its ability to export contracts as OpenAPI specifications, to optimize server-side rendering by calling API handlers directly inside the server process, and to support real‑time bidirectional commu

    orpc is a contract-first API development framework that uses TypeScript to define shared API schemas and generate type-safe clients and servers, though it focuses on full API procedures rather than standalone database schema modeling.

    TypeScriptContract-First Specifications
    View on GitHub↗4,862
  • alipay/furyalipay avatar

    alipay/fury

    4,412View on GitHub↗

    Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to facilitate cross-language data exchange. It includes an interface definition language compiler that translates schema definitions into idiomatic native types and serialization boilerplate across multiple languages. The project distinguishes itself through a zero-copy binary reader that allows specific fields to be accessed without deserializing the entire object, as well as an object graph serializer that preserves circular references and referential integrity. It also features a

    Fury is a multi-language binary serialization framework that includes schema compilation and code generation features, making it a relevant tool for defining and working with structured data across different environments.

    JavaBinary DeserializationCross-Language Serialization FrameworksInterface Definition Languages
    View on GitHub↗4,412
  • drawdb-io/drawdbdrawdb-io avatar

    drawdb-io/drawdb

    37,382View on GitHub↗

    DrawDB is a browser-based visual database modeler designed for creating, organizing, and documenting relational database schemas. It provides an interactive interface for drag-and-drop entity relationship mapping, allowing users to plan and visualize complex data architectures through a centralized workspace. The platform distinguishes itself by enabling real-time collaborative design, allowing teams to iterate on schemas while maintaining a single source of truth. It functions entirely on the client side, utilizing local memory for state management and saving data directly to the local file

    DrawDB is a visual database modeler for designing and documenting relational schemas, which fits the category well even though it emphasizes visual diagramming over a code-first schema definition language.

    JavaScriptVisual Database ModelersDatabase Design ToolsSchema Modeling Tools
    View on GitHub↗37,382
  • vega/ts-json-schema-generatorvega avatar

    vega/ts-json-schema-generator

    1,708View on GitHub↗

    Ts-json-schema-generator is a command-line tool and Node.js library that automatically generates standard JSON validation schemas directly from TypeScript source files and type definitions. Operating as a static code analyzer and schema compilation engine, it inspects type definitions and interfaces to understand structural data shapes without requiring runtime execution. It uses static program analysis by initializing a virtual compiler instance to resolve complex generic types, imports, and type relationships across source files. The project translates extracted types into standard validati

    This tool generates JSON Schema directly from TypeScript sources, providing a clear human-readable syntax and type safety, though it lacks broader multi-language export features.

    TypeScriptCode Generators
    View on GitHub↗1,708
  • drizzle-team/drizzle-ormdrizzle-team avatar

    drizzle-team/drizzle-orm

    34,835View on GitHub↗

    Drizzle ORM is a TypeScript-native database toolkit providing type-safe SQL query building, schema management, and automated migrations across PostgreSQL, MySQL, SQLite, and SingleStore.

    Drizzle ORM is a TypeScript-native database toolkit that lets you define database schemas and build type-safe SQL queries directly in code, making it a strong fit for schema modeling despite missing a dedicated human-readable configuration syntax outside of TypeScript.

    TypeScriptObject-Relational MappersDatabase Query BuildersQuery Builders
    View on GitHub↗34,835
  • ardatan/graphql-toolsardatan avatar

    ardatan/graphql-tools

    5,425View on GitHub↗

    graphql-tools is a GraphQL schema orchestration library and toolkit designed for building, merging, and extending schemas. It provides an SDL-first schema generator that transforms Schema Definition Language strings and resolver maps into executable schema instances. The project features a dedicated schema stitching tool for combining multiple independent GraphQL schemas into a single unified API gateway. It also includes a GraphQL mocking engine that simulates backends by generating synthetic data based on schema definitions. The toolkit covers a broad range of composition capabilities, inc

    This toolkit lets you define, merge, and orchestrate GraphQL schemas using an SDL-first approach, though its scope is focused strictly on the GraphQL ecosystem rather than general-purpose data modeling.

    TypeScriptGraphQL Schema StitchingField DelegationGraphQL API Mocking
    View on GitHub↗5,425
  • apollographql/graphql-toolsapollographql avatar

    apollographql/graphql-tools

    5,426View on GitHub↗

    graphql-tools is a toolkit for constructing, modifying, and combining GraphQL schemas. It provides a suite of utilities for parsing Schema Definition Language, managing resolver bindings, and assembling executable schemas. The project enables the composition of unified GraphQL gateways by merging multiple independent subschemas through schema stitching. This includes capabilities for entity type merging, type extension, and field resolution delegation to route requests across different services. The toolkit also includes a mocking engine that generates simulated GraphQL schemas and data. Thi

    GraphQL-tools is a TypeScript toolkit for constructing, combining, and parsing GraphQL schemas, providing schema definition, validation utilities, and type merging to support API data modeling.

    TypeScriptGraphQL Schema StitchingSchema Stitching GatewaysField Delegation
    View on GitHub↗5,426
  • dry-rb/dry-validationdry-rb avatar

    dry-rb/dry-validation

    1,422View on GitHub↗

    Dry-validation is a Ruby library designed for defining type-safe schemas and complex validation rules to verify and sanitize input data structures. It provides a formal framework for constructing modular validation logic, ensuring that incoming information meets specific business requirements and data formats before it is processed by an application. The library utilizes a domain-specific language to declare validation rules, which are then parsed into executable objects. It distinguishes itself through a macro-driven system that bundles common validation logic into reusable shortcuts, alongs

    Dry-validation is a Ruby library for defining type-safe schemas and complex validation rules with a human-readable DSL, though it focuses narrowly on validation rather than full API specification support or multi-language export.

    RubyData Validation LibrariesData Schema ValidationSchema Definition Frameworks
    View on GitHub↗1,422
  • seaql/sea-ormSeaQL avatar

    SeaQL/sea-orm

    9,410View on GitHub↗

    Sea-ORM is an asynchronous SQL object-relational mapper and database toolkit for mapping relational tables to strongly typed objects. It provides a relational database mapper for performing CRUD operations across MySQL, PostgreSQL, and SQLite, and includes a programmatic dynamic query builder for constructing complex SQL statements. The project distinguishes itself by providing a GraphQL schema generator that transforms database entities into typed schemas with built-in pagination and filters. It also features a dedicated database migration tool for defining and applying versioned schema chan

    Sea-ORM is a Rust database toolkit and object-relational mapper that provides schema definition, database migrations, and GraphQL schema generation, making it a fitting tool for data modeling despite being an ORM rather than a standalone schema language.

    RustDatabase ORMsObject-Relational MappersActive-Record ORMs
    View on GitHub↗9,410
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
marshmallow-code/marshmallow7.2KPythonMITJun 15, 2026
keleshev/schema2.9KPythonMITJun 13, 2026
protobufjs/protobuf.js10.6KJavaScriptNOASSERTIONJun 23, 2026
google/flatbuffers25.6KC++apache-2.0Feb 18, 2026
jquense/yup23.7KTypeScriptMITJun 12, 2026
sqlc-dev/sqlc17.9KGoMITJun 12, 2026
googleapis/googleapis8.4KStarlarkapache-2.0Feb 20, 2026
typestack/class-validator11.8KTypeScriptMITMar 25, 2026
pydantic/pydantic26.9KPythonmitFeb 19, 2026
hapijs/joi21.2KJavaScriptNOASSERTIONJun 12, 2026

Related searches

  • Data schema definition
  • Domain specific languages
  • Schema modeling tool
  • Schema configuration interface
  • Language definition files
  • a schema validation library for data parsing
  • a declarative database schema tool
  • a library for validating data schemas