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
dry-rb avatar

dry-rb/dry-types

0
View on GitHub↗
899 stars·137 forks·Ruby·MIT·24 viewsdry-rb.org/gems/dry-types↗

Dry Types

This library provides a type system for Ruby applications, offering a framework for defining, validating, and coercing data structures. It serves as a foundation for maintaining data integrity by ensuring that input values conform to established schemas and constraints before they are processed by application logic.

The system distinguishes itself through a functional approach to data transformation and validation. It utilizes an immutable registry for type definitions and employs algebraic operators to compose complex, nested schemas from smaller, reusable components. By wrapping validation outcomes in monadic containers, the library enables predictable error handling and flow control without relying on exceptions.

Beyond basic validation, the toolkit supports recursive structure traversal and lazy coercion, allowing for the transformation of raw inputs from external sources into structured objects. These capabilities facilitate consistent domain modeling, enabling the enforcement of business rules across different layers of a codebase through custom type definitions and flexible schema composition.

Features

  • Data Validation Libraries - Provides a comprehensive framework for validating data structures and enforcing constraints within Ruby applications.
  • Type System Libraries - Provides a toolkit for defining, validating, and coercing data types to ensure consistent structures.
  • Data Validation Schemas - Provides schema-based validation to ensure input data conforms to expected structures and constraints.
  • Data Type Coercion - Transforms raw input values into structured objects using built-in or custom conversion rules.
  • Coercion Pipelines - Implements pipelines that chain transformation functions to convert raw input data into expected types.
  • Custom Type Definitions - Allows the construction of reusable custom type definitions to enforce consistency across application logic.
  • Recursive Type Definitions - Supports recursive type definitions that allow for the validation of nested, tree-like data structures.
  • Functional Transformations - Provides functional transformation tools to convert raw inputs into structured objects using composable rules.
  • Immutable Registries - Maintains an immutable registry of type definitions to ensure consistent and predictable data modeling across application layers.
  • Nested Object Validation - Supports recursive validation of nested properties to handle deep objects and complex configuration files.
  • Domain Model Implementations - Uses type-safe data structures to model business entities and enforce domain rules.
  • Monadic Error Handling - Uses monadic containers to handle validation errors and control flow in a functional manner.
  • Success and Failure Wrapping - Encapsulates validation outcomes in functional containers to manage success and failure states without relying on exceptions.
  • Function Composition - Enables the composition of small, reusable functions into complex operations for data validation and transformation.
  • Predicate-Based Validations - Provides predicate-based validation utilities that check values against defined rules and return explicit success or failure types.
  • Schema Composition Libraries - Provides utilities for building complex, nested validation structures by composing reusable schema primitives.
  • Error Handling - Integrates validation results into monadic flows to manage application state and handle errors predictably.

Star history

Star history chart for dry-rb/dry-typesStar history chart for dry-rb/dry-types

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

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 Dry Types

Similar open-source projects, ranked by how many features they share with Dry Types.
  • arrow-kt/arrowarrow-kt avatar

    arrow-kt/arrow

    6,558View on GitHub↗

    Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming patterns. It serves as a framework for typed error handling, a concurrency toolkit, and a library for the manipulation of immutable data. The project distinguishes itself through specialized capabilities for managing application failures using explicit types instead of exceptions and implementing resilience patterns such as circuit breakers and retry policies for distributed services. It also provides optics to update and query deeply nested immutable data structures without man

    Kotlinarrowcontinuationscoroutines
    View on GitHub↗6,558
  • dry-python/returnsdry-python avatar

    dry-python/returns

    4,310View on GitHub↗

    Returns is a functional programming library for Python that provides type-safe containers for managing state, error handling, and optionality. It serves as a monadic container library and a type-safe error handling framework, replacing traditional try-catch blocks and null checks with Result and Optional containers to treat exceptions as data. The project is distinguished by its use of a specialized Mypy static analysis plugin to validate functional pipelines and emulate higher kinded types. It provides mechanisms for isolating side effects through IO containers and offers a framework for typ

    Python
    View on GitHub↗4,310
  • 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
  • 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
See all 30 alternatives to Dry Types→

Frequently asked questions

What does dry-rb/dry-types do?

This library provides a type system for Ruby applications, offering a framework for defining, validating, and coercing data structures. It serves as a foundation for maintaining data integrity by ensuring that input values conform to established schemas and constraints before they are processed by application logic.

What are the main features of dry-rb/dry-types?

The main features of dry-rb/dry-types are: Data Validation Libraries, Type System Libraries, Data Validation Schemas, Data Type Coercion, Coercion Pipelines, Custom Type Definitions, Recursive Type Definitions, Functional Transformations.

What are some open-source alternatives to dry-rb/dry-types?

Open-source alternatives to dry-rb/dry-types include: arrow-kt/arrow — Arrow is a functional programming library for Kotlin that provides tools for implementing data-oriented programming… dry-python/returns — Returns is a functional programming library for Python that provides type-safe containers for managing state, error… jquense/yup — Yup is a JavaScript schema validation library used to define data shapes and validate runtime values. It functions as… open-circle/valibot — Valibot is a modular, type-safe schema library for validating and parsing structural data in TypeScript environments. hapijs/joi — Joi is a JavaScript data validation library used to define schemas that validate, cast, and sanitize data objects. It… voxpupuli/json-schema — This library is a Ruby-based validation engine designed to verify JSON data structures against official schema…

Curated searches featuring Dry Types

Hand-picked collections where Dry Types appears.
  • Type annotation systems