awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
solnic avatar

solnic/virtus

0
View on GitHub↗
3,746 Stars·228 Forks·Ruby·MIT·3 Aufrufe

Virtus

Virtus is a Ruby attribute management and data coercion library used to define object schemas with typed attributes. It functions as a tool for transforming nested JSON structures and complex input formats into structured internal Ruby data types.

The project provides a framework for creating value objects that are compared by their attribute values rather than memory identity. It allows for the mapping of complex external data into domain objects and supports the implementation of custom coercion logic to ensure data consistency.

The library covers data modeling through schema-driven attribute definitions and type casting. It includes capabilities for strict type validation to enforce data integrity and writer-access control to restrict the modification of an object's internal state.

Features

  • Attribute Management Libraries - Provides a comprehensive system for defining object schemas with typed attributes and controlled writer access.
  • Object Schema Definitions - Implements a system for defining object properties with explicit types to ensure structured interface definitions.
  • Typed Object Attributes - Assigns specific types to attributes to create a structured schema and ensure data consistency.
  • Data Type Coercion - Allows the implementation of custom coercion logic to transform specific input formats into target data types.
  • API-to-Domain Mapping - Transforms complex external data and nested JSON structures into structured internal domain objects.
  • Attribute Value Converters - Converts input values into target types automatically during the assignment of values to class attributes.
  • User-Defined Types - Enables the definition of custom data types for attributes to maintain consistent data structures.
  • Type Validity Enforcers - Triggers exceptions when an input value cannot be converted into the defined attribute type to ensure integrity.
  • Strict Type Enforcement - Enforces data integrity by raising exceptions when input values cannot be successfully converted to the target type.
  • Automatic Type Converters - Automatically transforms input data into target types to maintain type safety and data integrity.
  • Data Type Conversions - Automates the conversion of values into target types or triggers errors when conversion fails in strict mode.
  • Runtime - Transforms nested JSON and complex input formats into structured internal Ruby data types.
  • User-Defined Types - Specifies expected data types for attributes to ensure consistent structures across all instantiated objects.
  • Object-to-Data Mapping Frameworks - Maps raw JSON and nested structures into typed domain objects to decouple external data from internal logic.
  • Data Modeling Libraries - Allows defining object schemas with typed attributes to ensure consistent data structures across the application.
  • Value Objects - Implements immutable value objects that are compared by their internal attribute values rather than memory identity.
  • Nested Data Transformers - Provides utilities for recursively transforming nested JSON and hash structures into hierarchical domain objects.
  • Type Coercion Utilities - Automatically converts input data into specified target types during attribute assignment using internal transformation logic.
  • Complex Type Coercion - Converts input data into structured formats like typed arrays, hashes, or nested objects.
  • Writer Access Restrictions - Restricts the visibility of attribute setter methods to prevent external modification of an object's internal state.
  • Writer Visibility Controls - Limits the visibility of attribute writers to prevent external modification of the internal object state.
  • Strict Type Validation - Enforces data integrity by triggering exceptions when input values cannot be converted to the defined attribute type.
  • Core Extensions - Adds attribute modeling to plain Ruby objects.

Star-Verlauf

Star-Verlauf für solnic/virtusStar-Verlauf für solnic/virtus

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Open-Source-Alternativen zu Virtus

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Virtus.
  • hapijs/joiAvatar von hapijs

    hapijs/joi

    21,192Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗21,192
  • symfony/serializerAvatar von symfony

    symfony/serializer

    2,547Auf GitHub ansehen↗

    This library is a PHP-based serialization framework designed to convert complex object graphs into structured formats such as JSON, XML, YAML, and CSV, and to reconstruct those objects from serialized data. It functions as a data transformation tool that maps object properties to array structures, facilitating both application state persistence and the exchange of data between systems. The framework distinguishes itself through a two-stage pipeline that normalizes objects into intermediate structures before encoding them into specific formats. It supports advanced mapping requirements, includ

    PHPcomponentphpsymfony
    Auf GitHub ansehen↗2,547
  • rust-lang/rust-by-exampleAvatar von rust-lang

    rust-lang/rust-by-example

    8,026Auf GitHub ansehen↗

    This project is an interactive programming education resource and tutorial designed for learning the Rust programming language and systems programming concepts. It provides a collection of runnable and editable code examples that serve as a practical reference for language syntax and implementation. The resource features an interactive code sandbox that allows users to execute and test code snippets in real time. It emphasizes the verification of technical accuracy by executing embedded code blocks during the build process to ensure all examples remain functional. The content covers a compre

    Handlebars
    Auf GitHub ansehen↗8,026
  • ballercat/waltAvatar von ballercat

    ballercat/walt

    4,639Auf GitHub ansehen↗

    Walt is a transpiler and typed language that converts a JavaScript-like syntax into WebAssembly binary format. It functions as a toolchain for developing high-performance logic for browsers and runtimes by translating typed source code into WebAssembly text format. The project includes a bundler-integrated loader that automates the recompilation of source files during the build process. It provides a linear memory manager used to define custom data layouts, structs, and memory allocators within a contiguous heap. The language supports defined function signatures, numeric types, and the abili

    JavaScriptcompilerjavascriptwebassembly
    Auf GitHub ansehen↗4,639
Alle 30 Alternativen zu Virtus anzeigen→

Häufig gestellte Fragen

Was macht solnic/virtus?

Virtus is a Ruby attribute management and data coercion library used to define object schemas with typed attributes. It functions as a tool for transforming nested JSON structures and complex input formats into structured internal Ruby data types.

Was sind die Hauptfunktionen von solnic/virtus?

Die Hauptfunktionen von solnic/virtus sind: Attribute Management Libraries, Object Schema Definitions, Typed Object Attributes, Data Type Coercion, API-to-Domain Mapping, Attribute Value Converters, User-Defined Types, Type Validity Enforcers.

Welche Open-Source-Alternativen gibt es zu solnic/virtus?

Open-Source-Alternativen zu solnic/virtus sind unter anderem: hapijs/joi — Joi is a JavaScript data validation library used to define schemas that validate, cast, and sanitize data objects. It… symfony/serializer — This library is a PHP-based serialization framework designed to convert complex object graphs into structured formats… rust-lang/rust-by-example — This project is an interactive programming education resource and tutorial designed for learning the Rust programming… mantle/mantle — Mantle is a framework for mapping raw data structures and JSON into typed model objects for Cocoa and Cocoa Touch… ballercat/walt — Walt is a transpiler and typed language that converts a JavaScript-like syntax into WebAssembly binary format. It… jsonmodel/jsonmodel — JSONModel is a data modeling framework and serialization library for Apple platforms, including iOS, macOS, watchOS,…