28 dépôts
Custom types created by the programmer to extend the set of available primitive types.
Distinct from Primitive Type Utilities: Candidates focus on formatters or restrictions rather than the general concept of defining custom types.
Explore 28 awesome GitHub repositories matching programming languages & runtimes · User-Defined Types. Refine with filters or upvote what's useful.
Reason is a strongly typed functional language and multi-target compiler designed to produce either JavaScript for web environments or native machine code for operating systems. It serves as an OCaml-compatible language that shares an abstract syntax tree with OCaml, providing a practical syntax for the OCaml ecosystem. The project functions as a type-safe frontend language, incorporating JSX support to build user interfaces through structural elements that translate into type-safe function calls. It enables deep integration with the JavaScript ecosystem, allowing the use of existing librarie
Allows the grouping of named values and methods into structured object types.
The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source.
Teaches how to define the shape and constraints of data using static types to catch errors before runtime.
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
Teaches the use of both primitive and custom-defined types to represent data.
Penrose is a compiler that transforms structured mathematical notation into optimized SVG diagrams. It uses a three-stage pipeline of separate domain, substance, and style files to define mathematical objects, relationships, and visual presentation, then solves continuous optimization problems with user-defined spatial constraints and objectives to automatically arrange diagram elements. The system separates diagram content from visual style using distinct declarative languages, and provides a typed domain language with subtype hierarchies for mathematical objects. It supports embedding compi
Defines the kinds of objects that can appear in a diagram, establishing the vocabulary for the visual domain.
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
Allows the creation of composite types by extending or intersecting multiple object definitions.
C4-PlantUML is a code-driven library that generates C4 model software architecture diagrams from PlantUML source text. It provides a set of reusable macros for creating system context, container, component, and deployment diagrams, enabling architects and developers to describe and communicate software architecture using the C4 model notation directly from diagram-as-code source files. The library distinguishes itself through hierarchical element nesting, which builds diagrams by nesting elements inside boundaries using PlantUML's rectangle and package constructs, and layout-direction control
Supports creating dynamic C4 diagrams that model interaction sequences between system elements.
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
Declares typed properties with defaults for state models, a fundamental part of model definition.
Gopher-lua is a complete implementation of the Lua language and its standard libraries written natively in Go. It serves as an embedded scripting engine and virtual machine that allows Go applications to execute Lua scripts and exchange data between the host and the script environment. The project provides a bytecode compiler to transform source code into a binary format for faster execution. It enables deep integration between the two languages by allowing the registration of native Go functions to be called from scripts, and the invocation of script functions directly from Go. The engine c
Enables the definition of custom data types and behaviors using user-defined data and metatables.
cva is a TypeScript utility for defining and resolving visual variants for UI components with full type safety. It generates CSS class strings from typed variant definitions, enabling compile-time validation of component usage by deriving the union of all variant prop types from a configuration object. The library distinguishes itself through compound variant matching, which activates styles only when multiple independent variant conditions are simultaneously satisfied, merging their class names. It also provides default value propagation to ensure consistent rendering when no explicit varian
Defines component variants as typed objects so the compiler catches invalid combinations before runtime.
Provides a flexible type system for defining custom chromosomes and individuals in evolutionary algorithms.
TypeSpec is a language for defining cloud API shapes and generating OpenAPI, JSON Schema, and client/server code from a single source of truth. It functions as a protocol-agnostic API designer that models REST, gRPC, and other API protocols using a unified, extensible syntax, with a decorator-based metadata system for attaching metadata, validation rules, and lifecycle visibility to API models and operations. The compiler produces OpenAPI 3.0 specifications and other artifacts, and the tool supports declaring API versions and tracking changes to models, properties, and operations across releas
Creates a shorthand name for a complex type expression, simplifying syntax without affecting the type graph.
Ce projet est une boîte à outils pilotée par TypeScript qui fournit des décorateurs et des structures basées sur des classes pour construire des composants Vue.js. Il agit comme un wrapper qui remplace la configuration d'objet de l'API d'options standard par une bibliothèque basée sur des classes, permettant aux développeurs de définir la logique, l'état et les métadonnées des composants en utilisant des propriétés typées. La boîte à outils se concentre sur l'utilisation de décorateurs TypeScript pour mapper les propriétés de classe aux options de composant telles que les props, les modèles et les watchers. Elle permet une validation de prop pilotée par le type et fournit une syntaxe structurée pour gérer la synchronisation de l'état réactif et la communication entre composants. La bibliothèque couvre de vastes domaines de capacités, incluant le partage de données hiérarchique via l'injection de dépendances, la liaison de modèle bidirectionnelle et l'observation des changements de propriété. Elle inclut également des systèmes pour créer des références typées vers des éléments HTML ou des instances de composants enfants pour une manipulation directe.
Defines input properties for components with expected types and default values.
gofakeit is a Go library for creating realistic synthetic datasets and populating Go structs with mock information. It functions as a deterministic data generator, allowing for seedable random number generation to ensure reproducible datasets for software testing. The project distinguishes itself by providing a mock data API server that exposes generation functions as HTTP endpoints and a synthetic dataset exporter for producing files in CSV, JSON, and XML formats. It also includes a command-line interface for generating mock data directly from the terminal. The library covers a wide array o
Allows developers to define custom fake data logic by implementing specific Go interfaces.
Ce projet est une collection complète de matériel pédagogique de programmation Python, y compris des tutoriels, des exercices et des exemples de code organisés. Il sert de programme d'apprentissage et de boîte à outils d'ingénierie logicielle, utilisant des Jupyter Notebooks pour combiner du code exécutable avec un texte éducatif descriptif. Le dépôt fournit des guides d'implémentation pratiques pour construire des applications de grand modèle de langage, telles que des systèmes de génération augmentée par récupération, des agents IA avec état et des flux de travail d'apprentissage automatique. Il se distingue en offrant une approche structurée des flux de travail de codage agentique, couvrant la distillation de la fenêtre de contexte, le routage de modèle agnostique au fournisseur et les sorties structurées imposées par schéma. Le matériel couvre un large éventail de capacités d'ingénierie logicielle, notamment la programmation asynchrone avec des files d'attente de tâches distribuées, le développement d'applications web avec des API REST et les flux de travail d'analyse de données. Il inclut également des ressources pour maîtriser la conception orientée objet, implémenter des pipelines CI/CD et appliquer des normes professionnelles de linting et de formatage.
Determine an object's class or check if an object is an instance of a type.
Slang is a shader compiler framework that combines a modular shading language with automatic differentiation, multi-target code generation, and an intrinsic mapping and extension system. At its core, Slang provides a differentiable shader compiler that automatically generates forward and backward derivative propagation for functions with control flow, enabling gradient-based optimization in graphics. The framework also includes a fully featured shader language with modules, generics, interfaces, and separate compilation, all designed for building reusable shader libraries. From a single source
Replaces declared structs or types with target-specific types in generated output for direct use of native library types.
easyjson est un sérialiseur JSON haute performance et un analyseur optimisé pour la mémoire pour Go. Il fournit un générateur de code sans réflexion qui crée des méthodes Go statiques pour le marshaling et l'unmarshaling des données, éliminant le besoin de réflexion à l'exécution pour améliorer la vitesse d'exécution. La bibliothèque réduit la surcharge CPU et mémoire grâce à plusieurs stratégies d'optimisation. Elle emploie un système de pools de tampons mémoire réutilisables pour minimiser les allocations sur le tas et la pression du garbage collector. De plus, elle utilise l'interning de chaînes pour dédupliquer les valeurs répétées et le référencement de chaînes zéro-copie pour pointer vers des segments de tampon existants plutôt que d'allouer de nouvelles chaînes. Le projet couvre le traitement JSON haute performance, la génération de code statique et la gestion avancée de la mémoire pour optimiser la conversion de données entre les structs Go et JSON.
Maps JSON fields to struct members using generated logic tailored to the specific data schema.
Ce projet est un guide complet et une ressource éducative pour le langage TypeScript. Il couvre les principes fondamentaux du langage, incluant son système de typage structurel, l'analyse de type statique et le processus de transpilation des fichiers sources typés en JavaScript. Le matériel détaille comment modéliser des données complexes et une logique de type réutilisable en utilisant des génériques, des types conditionnels et des types mappés. Il explique également l'utilisation des fichiers de déclaration pour fournir une sécurité de type pour les bibliothèques JavaScript externes et l'intégration de la vérification de type dans des projets JavaScript existants via des annotations JSDoc. La portée du contenu s'étend aux modèles de programmation orientée objet, à la manipulation du DOM et à la configuration des comportements du compilateur. Il inclut des conseils sur la gestion de l'interopérabilité des modules, la mise en place de pipelines de build et l'utilisation de l'intelligence de l'éditeur pour une meilleure productivité des développeurs.
Provides instructions on using interfaces and intersections to compose and extend object types.
Walt est un transpiler et un langage typé qui convertit une syntaxe de type JavaScript au format binaire WebAssembly. Il fonctionne comme une chaîne d'outils pour développer une logique haute performance pour les navigateurs et les runtimes en traduisant le code source typé au format texte WebAssembly. Le projet inclut un chargeur intégré au bundler qui automatise la recompilation des fichiers source pendant le processus de build. Il fournit un gestionnaire de mémoire linéaire utilisé pour définir des mises en page de données personnalisées, des structs et des allocateurs de mémoire au sein d'un tas contigu. Le langage prend en charge les signatures de fonctions définies, les types numériques et la capacité d'exporter des fonctions et des globales ou d'importer des fonctions externes depuis l'environnement hôte. Il permet l'utilisation de fermetures fonctionnelles, de pointeurs de fonction et d'organisation de données structurées via des offsets de mémoire binaire.
Provides the ability to create user-defined function and object types to guide the compiler.
Buck2 est un outil de construction de monorepo programmable et un système de construction hermétique conçu pour gérer des projets à grande échelle avec des graphes de cibles complexes et des dépendances multi-langages. Il fonctionne comme un framework d'exécution à distance et un analyseur de graphe de dépendances, fournissant un moteur de mise en cache d'artefacts pour assurer des résultats de construction reproductibles et cohérents à travers différents environnements. Le système se distingue par un moteur de calcul incrémental qui recalcule uniquement les nœuds spécifiques dans un graphe de dépendances invalidés par des changements. Il utilise un stockage adressable par contenu pour la mise en cache des artefacts de construction et prend en charge la course à l'exécution à distance, où les actions de construction sont exécutées localement et à distance simultanément pour retourner le résultat le plus rapide. Sa surface de capacité couvre l'automatisation de la construction multi-langages, l'abstraction de la chaîne d'outils et la configuration basée sur des contraintes pour gérer les variantes de construction à travers les plateformes. Le projet inclut également des outils d'observabilité de la construction pour l'introspection de graphe et la détection de changement, ainsi que des mécanismes de contrôle d'accès pour restreindre la visibilité des cibles.
Combines attribute specifications with implementation functions to create new types of buildable targets.
lua-language-server est un outil d'analyse statique et un vérificateur de types pour le langage Lua qui implémente le Language Server Protocol. Il fournit un système pour détecter les incompatibilités de types, le code inutilisé et les erreurs logiques dans les fichiers source. Le projet dispose d'un système de types basé sur l'inférence qui déduit les types de variables et prend en charge des annotations optionnelles et des méta-fichiers pour appliquer la sécurité des types. Il permet la définition de types personnalisés et de signatures de fonctions, incluant la prise en charge des surcharges et des contrôles de visibilité des membres. Le serveur fournit un large ensemble de capacités IDE, incluant l'autocomplétion de code en temps réel, le refactoring de symboles et la navigation vers les définitions et implémentations. Il inclut un formateur de code et un générateur de documentation qui extrait les symboles et annotations pour produire des fichiers Markdown et JSON. Le serveur peut être construit à partir de la source et configuré pour correspondre à des versions de langage et environnements d'exécution spécifiques.
Allows the definition of custom type aliases, enums, and class structures to enforce type safety.