30 open-source projects similar to facebook/prop-types, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Prop Types alternative.
Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments.
is.js is a JavaScript validation library and data type checker. It provides a suite of utilities to verify whether variables are primitives, arrays, functions, or specific object types. The project allows for the implementation of custom validation logic and the use of naming namespaces to override default rules and regular expressions. It covers a broad range of validation capabilities, including numeric arithmetic properties, date and time analysis for relative and absolute ranges, and string format verification for patterns such as emails, URLs, and IP addresses. The library also includes
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
This project is a protocol buffer validation plugin and code generator that creates consistent validation logic across multiple programming languages. It functions as a compiler extension for the Protocol Buffer toolchain, allowing developers to define semantic constraints directly within schema files to ensure data consistency. The tool uses custom options to embed validation rules into message definitions, mapping these schema constraints to language-specific implementation patterns. It employs predicate-based constraint checking and recursive traversal to enforce rules across nested messag
React Render Tracker is a diagnostic utility designed to monitor and analyze the rendering behavior of React applications. It functions as a developer tool that tracks component lifecycles, visualizes component hierarchies, and identifies the specific state, prop, or context changes that trigger re-renders. The tool distinguishes itself by providing deep visibility into internal framework operations, including the ability to inspect hook states and map the live component tree. It offers flexible inspection configurations, allowing developers to monitor performance through in-page overlays, br
React is a JavaScript library for building user interfaces based on a component-driven architecture and unidirectional data flow.
Arktype is a TypeScript runtime validation library and schema orchestrator. It synchronizes TypeScript types with runtime data validation, allowing users to define type-safe schemas that ensure unknown data adheres to specific structures during application execution. The project distinguishes itself by using set-theory type analysis to determine intersections and subtype compatibility, alongside JIT-compiled validation functions for optimized performance. It supports advanced type modeling through branded type constraints, recursive alias resolution, and the ability to generate runtime valida
Hug is a type-driven Python web framework designed for building APIs. It uses Python type annotations to automatically validate and convert incoming request data and to format outgoing responses. The framework functions as an automated documentation tool by extracting function signatures and markers from source code to generate accessible API specifications. It also supports non-blocking coroutines for asynchronous API processing to handle background tasks without interrupting the main request cycle. The project provides capabilities for REST API development, including route mapping, endpoin
This PHP assertion library is a runtime data validator used to verify method inputs and outputs. It provides a toolkit for validating data types, numeric ranges, and string patterns during program execution to prevent invalid states. The project serves as a static analysis helper by providing type hints and annotations that improve the accuracy of formal verification tools. It includes a collection validation utility for applying rules across arrays or iterable collections, and a filesystem validation tool to verify path existence and read or write permissions. The library covers a broad ran
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
ts-essentials is a comprehensive toolkit of utility types and libraries for TypeScript, providing advanced primitives for recursive structural transformations, runtime assertions, and type guards. It serves as a utility library for performing complex type-level programming to ensure stronger type safety and reduce boilerplate. The project distinguishes itself through a specialized set of tools for deep object manipulation, such as recursively applying read-only or optional modifiers across nested hierarchies. It also provides a dedicated set of strict type constraints to ensure data structure
MobX State Tree is a structured, tree-based state management library for JavaScript applications that combines typed model definitions with reactive snapshots and patch-based change tracking. It provides a reactive state container with runtime and compile-time type safety, where application state is defined as a tree of typed models with collocated actions, computed views, and lifecycle hooks for predictable state mutations. The library is built around an action-centric mutation model that encapsulates all state changes within named functions that directly modify the tree, supported by genera
Expr is a high-performance expression evaluation engine and language for Go applications. It functions as a dynamic rule engine that parses and executes custom logic and data validations at runtime without requiring the application to be recompiled. The system utilizes a sandboxed logic executor to run expressions without side effects. It ensures program termination by employing instruction-level loop detection to prevent infinite loops and isolates the evaluation process from the host system. The engine employs a bytecode-based virtual machine and abstract syntax tree analysis to achieve ex
io-ts is a TypeScript runtime validation library that provides a composable codec system for decoding and encoding data at the boundaries of an application. It defines data schemas using structural types, where the shape of data determines its validity rather than nominal names, and produces runtime type guards from those definitions for efficient validation checks. The library is built around bidirectional codec mappings that combine decoding, encoding, and type checking into single reusable units. It supports a composable decoder pipeline where small validation steps can be chained together
Typia is a compile-time code generator that transforms TypeScript type annotations into runtime validation, serialization, and schema functions without requiring decorators or separate schema files. It generates optimized validation and serialization code during TypeScript compilation, producing dedicated functions for each type that eliminate runtime schema objects for faster execution. The project extends this core capability into several integrated areas. It generates fully typed client SDKs from NestJS controller source code, keeping server and client types synchronized automatically. It
Structs is a reflection utility and type inspection framework for Go. It provides tools for inspecting, converting, and validating data structures by extracting field names, tags, and values from Go objects. The library specializes in transforming Go structs into generic maps or slices for serialization and data manipulation. It utilizes tag-driven mapping to determine custom keys and exclusion rules during these transformations. The project covers broader capabilities including metadata extraction, type validation to verify if variables are structs or pointers, and initialization verificati
This project is a comprehensive educational resource and programming guide for the TypeScript language. It serves as a manual for the type system and a reference for the language's core syntax, focusing on writing type-safe code and building scalable applications. The content provides detailed instruction on the TypeScript type system, covering interfaces, generics, and structural typing. It further acts as a compiler reference, analyzing how source code is transformed into an abstract syntax tree through scanning and parsing. The guide also covers software architecture design, detailing pro
This project is a Python implementation of the JSON Schema specification, providing a library for verifying that data instances conform to defined schemas. It serves as a data validation framework capable of validating both the data itself and the schemas against official meta-schemas to ensure structural correctness. The library features a schema reference resolver that maps URIs to definitions, enabling the resolution of internal and remote references for modular schema management. It is designed for extensibility, allowing for the definition of custom keywords, custom type-checking logic,
Lodash is a JavaScript utility library and data manipulation toolkit. It provides a collection of modular functions for transforming, filtering, and validating arrays, objects, strings, and numbers. The project functions as a functional programming toolkit, offering capabilities for function composition, currying, and lazy evaluation. It includes mechanisms for execution control, such as debouncing and throttling, to manage the timing and frequency of function invocations. The library covers a broad surface of data operations, including deep cloning and merging of complex nested structures,
FluentValidation is a strongly-typed data validation library for .NET. It functions as a rule engine and input validation framework used to define and execute complex business rules and constraints for data objects. The library utilizes a fluent interface API, allowing the construction of readable and declarative validation constraints through method chaining. It leverages generics and lambda expressions to enforce data integrity and business logic at compile time. The project covers the enforcement of business rules, strongly-typed data validation, and input sanitization workflows to verify
Underscore is a JavaScript utility library providing a suite of functional programming and data manipulation helpers. It serves as a framework for transforming data collections, composing functions, managing objects, and performing precise data type validation without modifying core language prototypes. The project includes a functional programming toolkit designed to control function execution timing and behavior through techniques such as debouncing, throttling, and partial application. It also provides a dedicated object manipulation utility for cloning, merging, picking, and omitting prop
This library provides a comprehensive system for defining data schemas and enforcing structural integrity within JavaScript applications. It enables developers to construct declarative rules for complex, nested objects, ensuring that data conforms to expected types and constraints before it is processed or stored. By integrating directly with the Meteor framework, it serves as a central tool for maintaining consistent data structures across collections and remote procedure calls. The project distinguishes itself through its deep integration with reactive data systems, allowing validation stat
This project is a general-purpose PHP utility library offering a collection of helper classes and functions for string manipulation, array and collection processing, data validation, filesystem operations, and image processing. It provides foundational toolkits designed to handle common development tasks through standardized APIs. The library is distinguished by specialized subsystems for programmatic HTML generation and secure element construction, runtime code reflection, and object-oriented utilities such as virtual property management and event callback triggers. It also includes cryptogr
This project is a Git commit standardization tool and semantic commit generator. It serves as an assistant to align code changes with semantic versioning by enforcing a consistent commit structure and formatting rules. The utility uses interactive prompts to gather user input, which it then validates against semantic categories and interpolates into predefined templates. This process automates the generation of standardized messages, ensuring that each commit follows a specific format to improve project history and traceability. The system also handles commit metadata structuring, including
System Designer is a visual modeling environment for constructing software architectures, data schemas, and component behaviors. It functions as a low-code platform that allows users to define complex systems through a drag-and-drop interface, representing components and their relationships as interconnected nodes and edges. The platform distinguishes itself by providing a live runtime environment where defined models can be executed and inspected in real-time. It performs dynamic type validation on system operations to ensure consistency and allows for the modular composition of applications
Hibernate Validator is a reference implementation of the Jakarta Validation specification, serving as a framework for enforcing data integrity across Java applications. It functions as a declarative validation engine that processes object constraints to ensure that application state remains consistent. By utilizing metadata-driven rules, the library validates object properties, method parameters, and nested collections to maintain data standards throughout an application's layers. The library distinguishes itself through its ability to perform static analysis on validation configurations, ide
AWS Powertools for Python is a utility framework designed for building production-ready Python functions on AWS Lambda. It provides a comprehensive suite of tools for observability, event parsing, routing, and idempotency management to streamline the development of serverless applications. The project distinguishes itself through specialized capabilities for event-driven architectures and AI agent orchestration. It enables the implementation of AI agents by exposing functions as tools via OpenAPI schemas and managing conversation states. Additionally, it features an idempotency library that p
Validate.js is a JavaScript library designed for declarative data validation and form processing. It provides a framework for verifying complex objects and individual data points against structured constraint schemas, ensuring that application state and user input meet defined requirements. The library distinguishes itself through its support for asynchronous validation, allowing for verification tasks that require external data sources or server-side checks. It includes a built-in utility for extracting and normalizing data from web forms, which cleans input by removing whitespace and empty
APIStar is an OpenAPI framework providing a toolkit for building and verifying web APIs. It functions as an API schema validator, a traffic auditor, and a documentation generator to ensure compliance with API specifications and data types. The project converts OpenAPI and Swagger schemas into visual developer guides using customizable themes. It also implements a dynamic API client that adapts to defined schemas to send requests to remote servers. The framework includes capabilities for validating API schemas to identify structural mistakes and auditing incoming and outgoing web traffic agai
Pkl is a configuration-as-code language used to define, validate, and generate structured configuration files. It functions as a type-safe configuration generator that enforces data integrity through a strongly-typed schema, ensuring configuration values meet defined constraints and types during evaluation. The project distinguishes itself by acting as both a configuration file generator and a binding generator. It transforms high-level programmable definitions into static formats such as JSON, YAML, or XML, and produces language-specific source code to synchronize settings and provide type s