28 Repos
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.
Dieses Projekt ist ein TypeScript-basiertes Toolkit, das Decorators und klassenbasierte Strukturen für den Aufbau von Vue.js-Komponenten bereitstellt. Es fungiert als Wrapper, der die Standard-Options-API-Objektkonfiguration durch eine klassenbasierte Bibliothek ersetzt, was es Entwicklern ermöglicht, Komponentenlogik, Status und Metadaten mittels typisierter Eigenschaften zu definieren. Das Toolkit konzentriert sich auf die Verwendung von TypeScript-Decorators, um Klasseneigenschaften auf Komponentenoptionen wie Props, Models und Watcher abzubilden. Es ermöglicht typgesteuerte Prop-Validierung und bietet eine strukturierte Syntax für die Verwaltung reaktiver Status-Synchronisation und Komponentenkommunikation. Die Bibliothek deckt breite Funktionsbereiche ab, einschließlich hierarchischem Datenaustausch durch Dependency Injection, Two-Way-Model-Binding und Eigenschaftsänderungs-Beobachtung. Sie enthält zudem Systeme zur Erstellung typisierter Referenzen auf HTML-Elemente oder Kind-Komponenteninstanzen für die direkte Manipulation.
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.
This project is a comprehensive collection of Python programming education materials, including tutorials, exercises, and curated code samples. It serves as a learning curriculum and software engineering toolkit, utilizing Jupyter Notebooks to combine executable code with descriptive educational text. The repository provides practical implementation guides for building large language model applications, such as retrieval-augmented generation systems, stateful AI agents, and machine learning workflows. It distinguishes itself by offering a structured approach to agentic coding workflows, cover
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 ist ein hochperformanter JSON-Serialisierer und speicheroptimierter Parser für Go. Er bietet einen reflexionsfreien Codegenerator, der statische Go-Methoden für das Marshalling und Unmarshalling von Daten erstellt, wodurch die Notwendigkeit von Laufzeit-Reflektion entfällt und die Ausführungsgeschwindigkeit verbessert wird. Die Bibliothek reduziert CPU- und Speicher-Overhead durch mehrere Optimierungsstrategien. Sie verwendet ein System wiederverwendbarer Memory-Buffer-Pools, um Heap-Allokationen und Garbage-Collection-Druck zu minimieren. Zusätzlich nutzt sie String-Interning zur Deduplizierung wiederholter Werte und Zero-Copy-String-Referenzierung, um auf bestehende Buffer-Segmente zu verweisen, anstatt neue Strings zu allokieren. Das Projekt deckt hochperformante JSON-Verarbeitung, statische Codegenerierung und fortgeschrittenes Speichermanagement ab, um die Konvertierung von Daten zwischen Go-Structs und JSON zu optimieren.
Maps JSON fields to struct members using generated logic tailored to the specific data schema.
This project is a comprehensive guide and educational resource for the TypeScript language. It covers the fundamental principles of the language, including its structural type system, static type analysis, and the process of transpiling typed source files into JavaScript. The material details how to model complex data and reusable type logic using generics, conditional types, and mapped types. It also explains the use of declaration files to provide type safety for external JavaScript libraries and the integration of type checking into existing JavaScript projects via JSDoc annotations. The
Provides instructions on using interfaces and intersections to compose and extend object types.
Walt ist ein Transpiler und eine typisierte Sprache, die eine JavaScript-ähnliche Syntax in das WebAssembly-Binärformat konvertiert. Er fungiert als Toolchain für die Entwicklung hochperformanter Logik für Browser und Laufzeitumgebungen, indem typisierter Quellcode in das WebAssembly-Textformat übersetzt wird. Das Projekt enthält einen in den Bundler integrierten Loader, der die Neukompilierung von Quelldateien während des Build-Prozesses automatisiert. Es bietet einen linearen Speichermanager, der zur Definition benutzerdefinierter Datenlayouts, Structs und Speicherallokatoren innerhalb eines zusammenhängenden Heaps verwendet wird. Die Sprache unterstützt definierte Funktionssignaturen, numerische Typen sowie die Möglichkeit, Funktionen und Globals zu exportieren oder externe Funktionen aus der Host-Umgebung zu importieren. Sie ermöglicht die Verwendung funktionaler Closures, Funktionszeiger und strukturierter Datenorganisation über binäre Speicher-Offsets.
Provides the ability to create user-defined function and object types to guide the compiler.
Buck2 ist ein programmierbares Monorepo-Build-Tool und ein hermetisches Build-System, das entwickelt wurde, um groß angelegte Projekte mit komplexen Zielgraphen und sprachübergreifenden Abhängigkeiten zu verwalten. Es fungiert als Framework für Remote-Ausführung und Analysator für Abhängigkeitsgraphen und bietet eine Engine für das Caching von Artefakten, um reproduzierbare und konsistente Build-Ergebnisse über verschiedene Umgebungen hinweg sicherzustellen. Das System zeichnet sich durch eine Engine für inkrementelle Berechnungen aus, die nur die spezifischen Knoten in einem Abhängigkeitsgraphen neu berechnet, die durch Änderungen ungültig wurden. Es nutzt inhaltsadressierbaren Speicher für das Caching von Build-Artefakten und unterstützt Remote-Execution-Racing, bei dem Build-Aktionen lokal und remote gleichzeitig ausgeführt werden, um das schnellste Ergebnis zurückzugeben. Seine Funktionsfläche deckt sprachübergreifende Build-Automatisierung, Toolchain-Abstraktion und einschränkungsbasierte Konfiguration zur Verwaltung von Build-Varianten über Plattformen hinweg ab. Das Projekt enthält zudem Build-Beobachtbarkeitstools für die Graph-Introspektion und Änderungserkennung sowie Zugriffskontrollmechanismen zur Einschränkung der Zielsichtbarkeit.
Combines attribute specifications with implementation functions to create new types of buildable targets.
lua-language-server ist ein statisches Analysetool und Typ-Checker für die Sprache Lua, der das Language Server Protocol implementiert. Er bietet ein System zur Erkennung von Typ-Diskrepanzen, ungenutztem Code und Logikfehlern in Quelldateien. Das Projekt bietet ein inferenzbasiertes Typsystem, das Variablentypen ableitet und optionale Annotationen sowie Meta-Dateien zur Durchsetzung von Typsicherheit unterstützt. Es ermöglicht die Definition benutzerdefinierter Typen und Funktionssignaturen, einschließlich Unterstützung für Overloads und Sichtbarkeitskontrollen für Member. Der Server bietet eine breite Palette an IDE-Funktionen, einschließlich Echtzeit-Code-Autocompletion, Symbol-Refactoring sowie Navigation zu Definitionen und Implementierungen. Er enthält einen Code-Formatter und einen Dokumentationsgenerator, der Symbole und Annotationen extrahiert, um Markdown- und JSON-Dateien zu produzieren. Der Server kann aus dem Quellcode gebaut und an spezifische Sprachversionen und Laufzeitumgebungen angepasst werden.
Allows the definition of custom type aliases, enums, and class structures to enforce type safety.