23 dépôts
Parses retrieved hash fields into application-defined data structures using field tags to automate data mapping and object hydration.
Distinct from Data Mapping: Distinct from Data Mapping: focuses on the specific process of object hydration from hash fields using struct tags.
Explore 23 awesome GitHub repositories matching data & databases · Struct Hydrators. Refine with filters or upvote what's useful.
This project is a feature-rich Go client library designed for interacting with Redis. It serves as a comprehensive interface for managing remote data stores, enabling developers to execute standard database commands, handle complex data structures, and perform asynchronous operations within Go applications. The library distinguishes itself through its support for advanced Redis capabilities, including connection pooling, pipelining, and transactional integrity. It provides specialized primitives for managing distributed clusters, including automated topology updates and request routing to sha
Parses retrieved hash fields into application-defined data structures using field tags to automate data mapping and object hydration.
Dapper is a high-performance micro-ORM and SQL object mapper for .NET. It functions as an ADO.NET extension library that adds data mapping capabilities directly to database connections, allowing SQL query results to be transformed into typed objects. The project prioritizes execution speed and low memory overhead by using intermediate language generation to map database columns to object properties. It further optimizes performance through the use of concurrent caching for mapping functions and literal value injection to improve database execution plans. The library covers a broad range of d
Deserializes a single database row into several distinct objects to handle joined data and associations.
The Rust Programming Language Book is the official technical guide and educational resource for the Rust language. It provides a comprehensive walkthrough of the language's design, focusing on its core identity as a systems programming language that enforces memory safety and high-performance execution without the need for a garbage collector. The project is distinguished by its focus on ownership, borrowing, and lifetime tracking, which allow the compiler to verify memory safety and thread safety at compile time. It covers the language's unique approach to zero-cost abstractions, including t
Enforces data integrity by selectively exposing struct fields.
sqlx is a set of extensions for the Go database/sql package that reduces boilerplate code by automating the mapping of database query results directly into structs and slices. It provides a wrapper around standard database types to eliminate manual row scanning and repetitive error handling. The project distinguishes itself through named parameter binding and query placeholder rebinding, which translate generic markers into driver-specific symbols. It also enables dynamic SQL execution by allowing the application to read and execute SQL statements directly from the filesystem. The library co
Uses Go reflection to automatically match database column names to struct fields via custom tags or naming conventions.
This project is a type-safe database toolkit and object-relational mapper designed to enforce structural consistency between database schemas and application code. By leveraging compile-time validation, it ensures that SQL queries and data structures remain synchronized, preventing common errors before the application executes. It provides a comprehensive framework for relational data modeling, allowing developers to define table associations and map database results directly into strongly-typed language objects. The library distinguishes itself through its focus on compile-time safety and au
Automatically maps database result rows to strongly-typed application objects.
This project is a GraphQL implementation for Go, providing a complete suite for building GraphQL servers. It includes a schema engine for defining types, a query parser to convert strings into abstract syntax trees, and an execution engine that resolves fields against a defined schema to return structured data. The library distinguishes itself through reflection-based type mapping, allowing object definitions and arguments to be derived directly from native Go structs. It also supports the execution of real-time data streaming via GraphQL subscriptions and provides an extensible execution pip
Derives GraphQL argument definitions directly from native Go struct properties to simplify input handling.
This project is an educational blog and learning resource dedicated to the Rust programming language. It provides a collection of curated guides, technical articles, and structured learning paths designed to teach language fundamentals, concurrency, and systems programming. The repository distinguishes itself by offering practical implementation tutorials for complex systems. This includes detailed guides on compiler development—specifically translating source code into targets such as ARM64, x86_64, LLVM IR, and WebAssembly—as well as networking examples for building multithreaded chat serve
Demonstrates transforming database query results into strongly-typed language structures using derive macros.
mapstructure is a reflection-based library for the bidirectional encoding and decoding of generic map data into native typed Go structures. It functions as a tool for transforming loosely typed map values into specific structs and encoding those structs back into maps. The library utilizes Go reflection to map generic data keys to struct fields during runtime. It supports the transformation of untyped data from dynamic sources or configuration files into type-safe native structures. The mapping process includes recursive traversal of nested maps and slices, as well as the use of struct tags
Directly populates the memory addresses of target structures from generic maps using Go reflection.
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
Demonstrates restricting access to data fields within a structure to encapsulate internal implementation details.
go-tools is a collection of utilities for Go static analysis and memory layout optimization. It provides a toolset designed to analyze source code to detect bugs and dead code, alongside specialized tools for optimizing how structs are arranged in memory. The project includes a memory alignment visualizer to display physical memory layouts and padding, as well as a struct layout optimizer that reorders fields to minimize memory padding. Additionally, it provides a boilerplate generator to automate the creation of registration and test files required for developing custom Go analyzers. The to
Reorders fields within a struct to minimize padding and reduce the overall memory footprint.
CXX is a code generator that produces a safe, zero-overhead FFI bridge between Rust and C++. It lets functions and data types from either language be used directly in the other, with static type safety enforced at compile time and no copying, serialization, or runtime checks across the boundary. The bridge supports the full range of cross-language interactions: Rust can call C++ functions and use C++ types, and C++ can call Rust functions and use Rust types. Standard library types like strings, vectors, and smart pointers are mapped automatically between the two languages, while opaque types
Declares struct fields visible to both languages from a single source of truth, eliminating manual synchronization.
Ecto is an Elixir database toolkit that maps database rows to Elixir structs and validates data changes through changesets before persistence. It provides a language-integrated query syntax for composing database queries, building them incrementally and securely with compile-time expansion into safe SQL. The toolkit connects to multiple database backends including PostgreSQL, MySQL, MSSQL, SQLite3, ClickHouse, and ETS through a pluggable adapter interface. It supports eager and lazy preloading of associated records to eliminate N+1 query problems, and can store nested data structures as embed
Maps Elixir structs to database tables using declarative field definitions with type casting.
The Rust RFCs repository is the formal home for the Rust language evolution process, housing the structured design documents and community review mechanisms that govern changes to the Rust programming language, its compiler, and its standard library. It defines the complete lifecycle for proposing, discussing, and implementing substantial changes through RFC documents, from initial submission and community feedback through final comment periods and sub-team sign-offs. The repository codifies the governance and collaboration processes that shape Rust's development, including mechanisms for com
Defines the language's struct field visibility model with per-field pub annotations.
Rust-bindgen est un générateur de liaisons d'interface de fonction étrangère au moment de la construction et un analyseur d'en-têtes C conçu pour automatiser l'interopérabilité entre les langages. Il fonctionne comme un outil pour relier Rust aux bibliothèques C, C++ et Objective-C en produisant des déclarations spécifiques à la plateforme pendant le processus de compilation. Le projet se distingue par sa capacité à gérer des constructions de langage de la famille C complexes, y compris l'héritage et les méthodes C++, ainsi que les classes et protocoles Objective-C. Il garantit la compatibilité binaire entre différentes architectures en calculant les dispositions de mémoire sensibles à la cible et en validant que les tailles et alignements de structure générés correspondent aux définitions source originales. L'outil fournit un mappage de type étendu pour les unions C, les champs de bits et les membres de tableau flexibles, tout en mappant les types de bibliothèque standard intraduisibles ou complexes vers des blobs d'octets opaques. Il inclut un système de configuration pour filtrer les liaisons, substituer des types complexes et contrôler la dérivation de traits ou la visibilité des champs. Les liaisons générées peuvent inclure une documentation extraite des en-têtes système et sont traitées via un formateur standard pour garantir un style de code cohérent.
Restricts access to structure fields by setting them as private to enforce data invariants.
c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte
Employs the splat operator to provide default values to struct initializers.
Anchor is a framework for building, testing, and deploying Solana smart contracts. It provides a Rust domain-specific language (DSL) that uses macro‑based instruction dispatch and derive‑macro account validation to automate ownership checks, discriminator enforcement, and serialization before instruction execution. The framework also includes a CLI toolchain for scaffolding, compiling, and managing contracts across workspaces, a test harness that simulates program execution with account manipulation and compute unit benchmarking, and an IDL generator that emits a standardized JSON interface fr
Reads instruction arguments from within Solana account structs by listing them in handler order.
Bun est un ORM (Object Relational Mapper) typé pour Go qui privilégie la construction de requêtes SQL-first et le mappage des résultats. Il fonctionne comme un constructeur de requêtes SQL programmable, un gestionnaire de connexion de base de données et un outil pour mapper les tables de base de données aux structs Go. Le projet se distingue par un système de prise en charge SQL multi-dialecte, permettant à une seule base de code d'interagir avec différents moteurs de base de données via une interface cohérente. Il inclut un outil d'observabilité de base de données intégré pour l'interception de requêtes, le traçage distribué et la journalisation, ainsi qu'un outil de migration de schéma pour le versioning des changements structurels. La bibliothèque couvre un large éventail d'opérations de données, incluant le traitement par lots, les upserts, les suppressions logiques (soft deletes) et la gestion des données relationnelles telles que les associations polymorphes. Elle fournit des capacités pour l'analyse SQL avancée en utilisant des expressions de table communes (CTE) et des fonctions de fenêtre, parallèlement à la gestion des transactions atomiques et au pooling de connexions. La gestion des schémas est prise en charge via une interface en ligne de commande pour appliquer des scripts de migration versionnés.
Automatically transforms database result sets into strongly-typed Go structures by matching columns to fields.
Prost est une implémentation de Protocol Buffers pour Rust qui fonctionne comme un framework de sérialisation binaire et un générateur de code. Il traduit les définitions de schéma en structs et enums Rust idiomatiques, fournissant la logique nécessaire pour encoder et décoder des données structurées dans le format binaire Protocol Buffers. Le projet se distingue par une implémentation no-std, lui permettant d'opérer dans des environnements embarqués ou noyau qui manquent de bibliothèque standard. Il sert également d'inspecteur de schéma en émettant des jeux de descripteurs de fichiers, ce qui permet l'analyse programmatique des définitions de schéma originales au moment de l'exécution. La bibliothèque couvre un large éventail de capacités, incluant la génération de traits de service pour la modélisation d'interface, la prise en charge de types bien connus, et des annotations de macros procédurales pour mapper des définitions de type manuelles. Elle fournit également des outils pour la gestion des dépendances et le fuzz testing pour assurer la stabilité de la sérialisation.
Translates Protocol Buffer schema files into idiomatic Rust structs and enums for type safety.
Kimai is an open-source time tracking system that records employee working hours, manages absences, and generates professional invoices from recorded timesheets and expenses. It organizes all time records through a mandatory three-level hierarchy of customer, project, and activity, and supports project budget monitoring with configurable time and money limits. The application is extensible through a plugin system that allows adding custom features, invoice templates, reporting views, and dashboard widgets without modifying core files. It provides a RESTful JSON API for programmatic read and w
Controls whether custom fields appear in exports, API responses, or data tables.
Strawberry est une bibliothèque GraphQL typée pour Python qui permet la conception de schémas en utilisant des annotations de type Python et des dataclasses. Elle fonctionne comme un serveur GraphQL asynchrone et un moteur d'exécution, fournissant un pont pour exposer des schémas à travers des frameworks web compatibles ASGI tels que FastAPI, Django, Flask et Litestar. Le projet implémente la fédération GraphQL, permettant la création de schémas distribués et d'entités qui fusionnent en un supergraphe unifié à travers plusieurs services. Il inclut également une boîte à outils dédiée pour la spécification Relay, prenant en charge l'identification globale d'objets et la pagination basée sur les connexions. Le framework couvre un large ensemble de capacités, incluant le streaming de données en temps réel via WebSockets et Server-Sent Events, le mapping de modèles Pydantic et la génération automatique de code. Il fournit des outils intégrés pour la sécurité et l'observabilité, tels que la limitation de complexité des requêtes, le contrôle d'accès basé sur les rôles et le traçage des métriques d'exécution. Les développeurs peuvent prototyper en utilisant un serveur de développement intégré avec une interface d'inspection de schéma interactive.
Controls field visibility in the schema by overriding retrieval logic to support different access levels.