24 Repos
The use of a programming language's type system to verify API compatibility and correctness during compilation.
Distinct from Static Type Checking: The candidates are tied to specific languages like TypeScript or environment variables; this is a general architectural use of C++ static typing for API safety.
Explore 24 awesome GitHub repositories matching software engineering & architecture · Static Type Checking. Refine with filters or upvote what's useful.
This project is a comprehensive set of architectural and coding standards for organizing and maintaining high-quality JavaScript applications. It provides a framework for JavaScript project best practices across the full software development lifecycle, establishing unified guidelines for project organization and development. The guidelines cover specific standards for REST API design, utilizing resource-oriented interfaces and standardized HTTP methods. It also includes a web accessibility standard focused on semantic HTML and automated audits, alongside a defined Git workflow standard for br
Integrates static type checking into the development workflow to catch errors before execution.
This project is a JavaScript style guide and a set of coding standards designed to ensure codebase consistency. It provides a collection of best practices for writing maintainable and idiomatic code, focusing on variable naming, type checking, and execution context. The project serves as a static analysis guide, offering frameworks and guidelines for using linters and automated tools to identify bugs and verify code correctness before deployment. It establishes standards for formatting, syntax, and variable declarations to standardize code style across a project. The scope of the project cov
Implements type checking guidelines to verify variable consistency and prevent logic bugs.
Frontend Workshop from HTML/CSS/JS to TypeScript/React/Redux
Teaches adding static type checking with TypeScript to catch errors during development.
Phan ist ein statischer Analysator und Typ-Prüfer für PHP, der Fehler und Typ-Inkompatibilitäten identifiziert, ohne den Code auszuführen. Er dient als Qualitäts-Gate für Continuous-Integration-Pipelines und als Tool zur Überprüfung der Typsicherheit, wobei er insbesondere Union-Types, Generics und Array-Shapes prüft. Das Projekt zeichnet sich durch die Verwendung eines Hintergrund-Daemons und die Implementierung des Language Server Protocol aus, die Echtzeit-Diagnosen und Navigation innerhalb von Editoren ermöglichen. Es verfügt zudem über ein Baseline-basiertes Unterdrückungssystem, das es Entwicklern erlaubt, bestehende Fehler in einer Snapshot-Datei zu erfassen, um sich ausschließlich auf neue Regressionen zu konzentrieren. Die Analyse-Engine deckt ein breites Spektrum an Funktionen ab, einschließlich der Erkennung von Dead Code, der Validierung der Sprachkompatibilität über verschiedene PHP-Versionen hinweg sowie der Inferenz von Variablen- und Template-Typen. Sie unterstützt erweiterbare Analysen durch ein Plugin-System und bietet automatisierte Code-Korrekturen für eine Teilmenge der erkannten Probleme. Benutzer können den Prozess durch die Generierung einer Konfigurationsdatei mit wählbaren Strengegraden (Strictness Levels) bootstrappen, um ihre Codebasis schrittweise zu validieren.
Check that assigned values and return types match a defined union of multiple possible types.
Groovy ist eine JVM-Programmiersprache und ein Metaprogrammierungs-Framework, das eine Java-kompatible Umgebung für die Anwendungsentwicklung bietet. Es fungiert als dynamische Skriptsprache und als Werkzeug zum Verfassen domänenspezifischer Sprachen, was die Ausführung benutzerdefinierter Skripte und die Erstellung spezialisierter Minisprachen mit prägnanter Syntax ermöglicht. Das Projekt zeichnet sich durch die Fähigkeit aus, Programmverhalten und Klassendefinitionen sowohl durch Compile-Time- als auch durch Runtime-Metaprogrammierung zu modifizieren. Es nutzt ein hybrides Typisierungsmodell, das dynamische Methodenauflösung mit optionaler statischer Typüberprüfung kombiniert, um Flexibilität und Ausführungsperformance in Einklang zu bringen. Die Sprache deckt ein breites Spektrum an Funktionen ab, einschließlich funktionaler Programmiermuster, AST-Transformationen und der direkten Integration von Java-Bibliotheken. Sie enthält zudem Sicherheitswerkzeuge zur Vermeidung von SQL-Injection, zur Absicherung des XML-Parsings und zur Gewährleistung eines sicheren Parsings strukturierter Daten. Das System übersetzt High-Level-Syntax in JVM-Bytecode zur Ausführung auf jeder kompatiblen Java Virtual Machine.
Performs compile-time type validation to bypass dynamic dispatch and increase execution performance.
Dieses Projekt ist eine TypeScript-Bibliothek für Entwurfsmuster und ein Architekturleitfaden. Es bietet eine Sammlung branchenüblicher Softwarearchitektur-Muster, die in TypeScript implementiert sind, um die Objekterstellung und -kommunikation zu demonstrieren. Die Bibliothek dient als praktische Referenz für die Anwendung objektorientierter Designprinzipien und nutzt statische Typisierung, um die strukturellen Anforderungen dieser Muster während der Kompilierungsphase durchzusetzen. Der Inhalt umfasst die Implementierung von Erzeugungsmustern (Creational Patterns) zur Entkopplung der Objektinstanziierung von der Geschäftslogik, Strukturmustern zur Anordnung von Klassen und Objekten in größeren Kompositionen sowie Verhaltensmustern zur Verwaltung der Objektkommunikation und Verantwortungsverteilung.
Uses the TypeScript type system to verify and enforce the structural correctness of design patterns at compile time.
Crab is a memory-safe systems programming language and ahead-of-time compiler designed for high-performance software. It utilizes a type system based on strict ownership and borrowing rules to prevent memory access errors at compile time. The toolchain includes an automated documentation generator that produces technical reference manuals and API guides by parsing structured source code annotations. It also features a dependency management tool to resolve external library graphs and ensure consistent project builds. The project covers software build automation, static type checking, and mult
Verifies data types during the compilation process to catch errors before runtime.
Typeshed ist eine Sammlung statischer Typdefinitionen und Stubs für die Python-Standardbibliothek und Drittanbieter-Pakete. Es dient als standardisierte Ressource für statische Analysetools und integrierte Entwicklungsumgebungen (IDEs), um die Korrektheit von Code zu validieren und typbasierte Code-Vervollständigung bereitzustellen, ohne den ursprünglichen Quellcode der Bibliotheken zu verändern. Das Projekt konzentriert sich auf die Erstellung und Wartung externer Type-Hint-Dateien, die Typannotationen von der Laufzeitimplementierung trennen. Es nutzt ein System zur Versionierung und zum Mapping dieser Stubs auf spezifische Versionen von Laufzeitpaketen, um die Kompatibilität zu wahren. Das Repository enthält eine Validierungssuite, um die Genauigkeit dieser Definitionen sicherzustellen. Dies umfasst die Validierung von Laufzeit zu Stub, um Diskrepanzen zwischen deklarierten und tatsächlichen Typen zu identifizieren, die Überprüfung der Verzeichnisstruktur sowie Regressionstests, um die Wiedereinführung bekannter Typ-Checking-Fehler zu verhindern.
Provides the type definitions necessary for static analysis tools to verify API compatibility and code correctness without execution.
Pytype ist ein Tool zur statischen Code-Analyse und eine Typinferenz-Engine für Python. Es fungiert als statischer Typ-Analysator, der Typ-Diskrepanzen erkennt und Typ-Annotationen verifiziert, ohne dass vollständige manuelle Hinweise erforderlich sind, und dient gleichzeitig als Typ-Stub-Generator zur Erstellung eigenständiger Definitionsdateien. Das Projekt zeichnet sich dadurch aus, dass es Variablen- und Funktionstypen durch eine Analyse von Codemustern und Zuweisungen automatisch bestimmt. Diese Inferenz-Engine ermöglicht eine strukturelle Code-Verifizierung und die Generierung von Typ-Stubs, die die Schnittstellen von Modulen und Funktionen beschreiben. Das System deckt breite statische Analyseoperationen ab, einschließlich struktureller Validierung von Klassenhierarchien und Funktionsaufrufen sowie Symbol-Tracking zur Erkennung von Namespace-Fehlern und Zugriffen auf ungültige Attribute. Es bietet zudem Typ-Prüf-Primitive zur Durchsetzung von Annotationen und ein Typsystem, das in der Lage ist, komplexe Datenstrukturen unter Verwendung von Unions und Optionals zu modellieren.
Checks provided type hints against language standards to identify mismatches and logic errors.
Troposphere ist eine Python-Bibliothek zum programmatischen Erstellen und Validieren von Infrastructure-as-Code-Templates. Sie dient als Generator für AWS CloudFormation- und OpenStack-Templates, wodurch Cloud-Ressourcen als Objekte innerhalb einer universellen Programmiersprache definiert werden können, anstatt über rohes JSON- oder YAML-Markup. Das Projekt konzentriert sich auf die Validierung von Cloud-Ressourcen durch Überprüfung von Eigenschaftsnamen und Datentypen während des Template-Konstruktionsprozesses. Dieses System identifiziert Konfigurationsfehler und fehlende erforderliche Felder, bevor die Infrastruktur für das Deployment exportiert wird. Die Bibliothek deckt ein breites Spektrum an Cloud-Infrastrukturmodellierung ab, einschließlich der Definition von Rechen-, Speicher-, Netzwerk- und Sicherheitsressourcen. Sie bietet Utilities, um diese programmatisch definierten Objekte in strukturierte JSON- oder YAML-Exportformate zu konvertieren.
Uses the programming language type system to validate property names and data types during instantiation.
Closure Library ist eine JavaScript-Standardbibliothek und ein Utility-Toolset für den Aufbau großer Webanwendungen. Sie bietet eine Sammlung von Kern-Utility-Modulen und standardisierten APIs, um komplexe Anwendungslogik und State-Management zu vereinfachen. Das Projekt ist als modulares Framework aufgebaut und verwendet ein Namespace-basiertes Modulsystem, um eine Verschmutzung des globalen Scopes zu verhindern. Es ist speziell für die Verwendung mit dem Closure Compiler konzipiert, um aggressives Dead-Code-Elimination und Minifizierung zu ermöglichen, was die finale Auslieferungsgröße in der Produktion reduziert. Um die Zuverlässigkeit in großen Projekten zu gewährleisten, nutzt die Bibliothek JSDoc-Annotationen für statische Typenprüfung, um API-Verträge vor der Ausführung zu verifizieren. Die Bibliothek deckt Cross-Browser-Kompatibilität durch eine Polyfill-Schicht und Feature-Detection ab. Sie bietet eine strukturierte Architektur für Enterprise-Frontend-Entwicklung und konzentriert sich auf konsistentes Verhalten über verschiedene Browser-Umgebungen und Ausführungskontexte hinweg, einschließlich Node.js.
Employs JSDoc annotations for static type checking to verify API contracts before execution.
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
Enables static type checking of standard JavaScript files using JSDoc annotations.
Scala.js ist ein Compiler- und plattformübergreifendes Sprach-Toolchain-Projekt, das Scala-Quellcode in JavaScript oder WebAssembly transformiert. Es fungiert als statisch typisiertes Tool für das JavaScript-Ökosystem und ermöglicht die Entwicklung von Anwendungen für Webbrowser und Node.js-Umgebungen. Das Projekt dient als JavaScript-Interop-Framework, das die Erstellung typsicherer Facaden und Bindings ermöglicht, um mit externen Bibliotheken und globalen Objekten zu interagieren. Es bietet Mechanismen für sowohl statische als auch dynamische JavaScript-Aufrufe, einschließlich der Generierung von TypeScript-Bindings und der Möglichkeit, interne Logik für die Verwendung in externem JavaScript-Code zu exportieren. Die Toolchain enthält ein Frontend-Build-Tool für Production-Bundling und Output-Optimierung, einschließlich Dead-Code-Elimination und Modul-Splitting. Sie deckt ein breites Funktionsspektrum ab, einschließlich DOM-Element-Typ-Checking für UI-Entwicklung, plattformübergreifendes Code-Sharing für Full-Stack-Entwicklung sowie verschiedene Test-Frameworks zur Verifizierung optimierter Build-Artefakte. Kompilierte Skripte können direkt innerhalb einer Command-Line-Umgebung mittels eines JavaScript-Interpreters ausgeführt werden.
Provides a statically typed development environment that verifies API compatibility and correctness for the JavaScript ecosystem.
Strawberry is a type-safe GraphQL library for Python that enables the design of schemas using Python type annotations and dataclasses. It functions as an asynchronous GraphQL server and execution engine, providing a bridge to expose schemas across ASGI-compliant web frameworks such as FastAPI, Django, Flask, and Litestar. The project implements GraphQL Federation, allowing for the creation of distributed schemas and entities that merge into a unified supergraph across multiple services. It also includes a dedicated toolkit for the Relay specification, supporting global object identification a
Validates schema definitions during development using a static analysis plugin to catch type errors.
Remax ist ein plattformübergreifendes UI-Framework und eine Engine für die Erstellung von Mini-Programmen mit React. Es fungiert als Runtime, die React-Komponenten und Hooks in native Mini-Programm-Elemente übersetzt, wodurch die Notwendigkeit einer statischen Kompilierung entfällt. Das Framework bietet eine typsichere Entwicklungsumgebung, um die Zuverlässigkeit über plattformübergreifende UI-Komponenten hinweg sicherzustellen. Es ermöglicht die Erstellung von Multi-Plattform-Mini-Programmen aus einer einzigen Codebasis, indem React-Komponenten-Trees während der Ausführung auf native Strukturen abgebildet werden. Das System deckt die plattformübergreifende Entwicklung von Mini-Programmen ab, einschließlich UI-Konstruktion mit funktionalen Hooks und statischer Typüberprüfung, um Laufzeitfehler zu reduzieren.
Applies static type checking during development to ensure reliability and reduce runtime errors across components.
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.
Analyzes variable and function types to detect potential mismatches before the code is executed.
Dieses Projekt ist eine technische Referenz und eine Sammlung interner Analyse-Notizen, die sich auf die Go-Sprach-Runtime und den Compiler konzentrieren. Es bietet eine detaillierte Aufschlüsselung der Interna der Sprache, einschließlich Speicherverwaltung, Garbage Collection und des Ausführungsmodells des Schedulers. Das Material zeichnet sich durch Deep-Dives in Low-Level-Systemdetails aus, einschließlich einer Referenz für Go-Assembly-Instruktionen, Register-Nutzung und System-Call-Interfacing. Es analysiert spezifisch die interne Implementierung von Concurrency-Primitiven, wie den Goroutine-Scheduling-Mechanismus, Channel-Operationen und Mutex-Lock-Implementierungen. Die Abdeckung erstreckt sich auf die Compiler-Konstruktionstheorie, einschließlich lexikalischer und syntaktischer Analyse, sowie die Mechanik des Typsystems und des Interface-Managements. Es beschreibt zudem verschiedene Performance-Optimierungstechniken, Runtime-Diagnose-Utilities für Stack-Tracing und Netzwerk-I/O-Primitive.
Analyzes the compiler's ability to verify type consistency and variable scope during compilation.
Vulkan-Hpp is a header-only C++ binding library for the Vulkan graphics and compute API. It provides a type-safe wrapper around the Vulkan C API, allowing developers to interface with GPU hardware through a C++ interface that introduces no runtime CPU overhead. The library utilizes Resource Acquisition Is Initialization patterns to manage the lifecycle of Vulkan handles and objects, automating the release of GPU resources. It replaces C-style enumerations and bit-fields with strong typing and static type checking to catch invalid API parameter assignments during compilation. The project cove
Leverages the C++ type system to validate API compatibility during compilation instead of at runtime.
actionlint is a static analysis tool and linter specifically designed for GitHub Actions workflow files. It functions as a CI workflow validator and YAML configuration linter to ensure the syntax and logic of automation files are correct before deployment. The project distinguishes itself by performing deep security auditing and script analysis. It includes a shell script auditor to detect syntax bugs and script injection vulnerabilities in inline commands, and it scans for hardcoded credentials to prevent security leaks. The tool covers a broad range of validation capabilities, including ex
Ensures that inputs, outputs, and context variables in workflows use compatible data types.
Tinymist is a comprehensive suite of tools for Typst document authoring, serving as a language server, document compiler, and project manager. It provides a standardized language service via the Language Server Protocol to enable editor features such as autocompletion, navigation, and semantic highlighting. The project distinguishes itself by integrating a TCP-based live preview server for real-time visual rendering and an advanced static analysis tool that utilizes abstract syntax trees and bidirectional type checking. It also includes a project management system capable of handling multi-fi
Applies bidirectional type checking to verify literals, closures, and destructuring during analysis.