awesome-repositories.com
Blog
awesome-repositories.com

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

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
sideway avatar

sideway/joi

0
View on GitHub↗
21,192 stars·1,506 forks·JavaScript·3 views

Joi

Joi is a JavaScript data validation library used to define schemas that ensure the structure and data types of objects remain consistent. It functions as a schema-based validator and object schema definition tool, preventing invalid information from entering an application by checking data against predefined constraints and rules.

The library employs a chainable fluent interface and a constraint-based validation engine to build complex validation pipelines. It utilizes recursive tree traversal to validate nested data structures and a type-coercion pipeline to transform input values into the target schema type before validation.

The system handles various validation domains, including API request validation for HTTP bodies and parameters, configuration schema enforcement for environment variables, and user input sanitization. It generates detailed reports via rule-to-error mapping and uses stateless schema definitions to allow a single schema instance to process multiple data inputs.

Features

  • Data Schema Validation - Implements a schema-based validation engine to enforce type safety and data consistency for JavaScript objects.
  • Data Validation Schemas - Provides a system for validating data by comparing input values against predefined rule-based schemas and type requirements.
  • Data Validation Libraries - Provides a comprehensive library for defining schemas to validate the structure and data types of JavaScript objects.
  • Data Schema Definitions - Decouples rule configuration from execution through stateless schema definitions, allowing a single schema to process multiple inputs.
  • Data Type Validation - Provides a validation engine that checks input data against a predefined tree of type requirements and logic rules.
  • Object Schema Definitions - Provides a comprehensive system for defining required fields and data types to ensure object structure consistency.
  • JavaScript Validators - Ensures JavaScript objects follow specific types and constraints before being processed by the application.
  • Coercion Pipelines - Transforms input values into target schema types via a coercion pipeline before applying validation rules.
  • Structural Data Validators - Validates complex, recursive data objects by ensuring every level of a nested schema meets its constraints.
  • Error Mapping Strategies - Maps failed validation constraints to human-readable error messages to provide detailed reports for invalid data.
  • Error Reporting - Generates human-readable reports by associating failed validation rules with specific error templates.
  • Fluent Interfaces - Implements a fluent interface that allows validation rules to be chained together for more readable schema definitions.
  • Data Structure Traversers - Traverses nested data structures recursively to ensure every leaf node meets its specific schema constraints.
  • Request Validation - Validates incoming HTTP request bodies and parameters to prevent malformed data from reaching server logic.
  • Data Validation - Object schema description and validation language.

Star history

Star history chart for sideway/joiStar history chart for sideway/joi

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Joi

Similar open-source projects, ranked by how many features they share with Joi.
  • 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

    JavaScripthapijavascriptschema
    View on GitHub↗21,192
  • ianstormtaylor/superstructianstormtaylor avatar

    ianstormtaylor/superstruct

    7,141View on GitHub↗

    Superstruct is a JavaScript and TypeScript data validation library used to verify that data structures match defined shapes and types. It functions as a composable schema builder and a TypeScript schema validator, ensuring that runtime data checks remain synchronized with static type definitions. The library features a data coercion engine that transforms input values or injects default values before the validation process is executed. It enables the creation of complex validation rules by nesting, merging, or omitting properties from existing structures. Its capabilities cover the validatio

    TypeScriptinterfacejavascriptschema
    View on GitHub↗7,141
  • ajv-validator/ajvajv-validator avatar

    ajv-validator/ajv

    14,733View on GitHub↗

    Ajv is a high-performance data validation framework that compiles JSON schemas into optimized, standalone JavaScript functions. By transforming declarative schema definitions into executable code, it eliminates runtime interpretation overhead and provides a secure, efficient way to enforce data integrity across both browser and server environments. The library distinguishes itself through its focus on performance and type safety. It employs advanced compilation techniques, including abstract syntax tree optimization and function caching, to ensure rapid validation. Beyond standard checks, it

    TypeScriptajvjson-schemavalidator
    View on GitHub↗14,733
  • 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

    TypeScript
    View on GitHub↗23,673
See all 30 alternatives to Joi→

Frequently asked questions

What does sideway/joi do?

Joi is a JavaScript data validation library used to define schemas that ensure the structure and data types of objects remain consistent. It functions as a schema-based validator and object schema definition tool, preventing invalid information from entering an application by checking data against predefined constraints and rules.

What are the main features of sideway/joi?

The main features of sideway/joi are: Data Schema Validation, Data Validation Schemas, Data Validation Libraries, Data Schema Definitions, Data Type Validation, Object Schema Definitions, JavaScript Validators, Coercion Pipelines.

What are some open-source alternatives to sideway/joi?

Open-source alternatives to sideway/joi include: hapijs/joi — Joi is a JavaScript data validation library used to define schemas that validate, cast, and sanitize data objects. It… ianstormtaylor/superstruct — Superstruct is a JavaScript and TypeScript data validation library used to verify that data structures match defined… ajv-validator/ajv — Ajv is a high-performance data validation framework that compiles JSON schemas into optimized, standalone JavaScript… jquense/yup — Yup is a JavaScript schema validation library used to define data shapes and validate runtime values. It functions as… elysiajs/elysia — Elysia is a high-performance TypeScript web framework designed for building type-safe backend services. It provides a… unionai-oss/pandera — Pandera is a data pipeline validation framework and statistical type validation tool. It functions as a library for…