34 repositorios
Tools for static type analysis and annotation generation.
Explore 34 awesome GitHub repositories matching part of an awesome list · Type Checking. Refine with filters or upvote what's useful.
mypy is a static type checker for Python that analyzes source code to detect type errors and inconsistencies without executing the program. It functions as a static analysis tool and type inference engine, providing a gradual typing system that allows type hints to be added to a codebase incrementally while maintaining compatibility with dynamic typing. The project distinguishes itself through a combination of performance and precision features. It utilizes a daemon-based incremental checking system and multi-process parallel analysis to manage large codebases, supported by binary cache persi
Distributes code analysis across multiple worker processes to reduce the total time required for type validation.
This project is a high-performance static type checker and comprehensive development toolkit for Python. It functions as a core analysis engine that identifies type inconsistencies and enforces code correctness, while simultaneously providing a language server implementation to deliver real-time diagnostics and intelligence directly within development environments. The tool distinguishes itself through a parallelized execution engine that maximizes performance across large-scale codebases and monorepo structures. It supports gradual type adoption, allowing developers to integrate type checkin
High-performance type checker and language server.
ts-node is a TypeScript execution engine and just-in-time transpiler for Node.js. It enables the direct execution of TypeScript files by converting them to JavaScript on the fly, removing the requirement for a manual pre-compilation build step. It also provides a TypeScript read-eval-print loop for evaluating expressions and testing code snippets in real time. The project integrates with the Node.js module system as a loader hook to resolve and load files using native import syntax. It features a pluggable compiler interface that allows the use of external transpilers to accelerate execution
Allows skipping the type-checking phase during execution to reduce startup time.
is.js is a JavaScript validation library and data type checker. It provides a suite of utilities to verify whether variables are primitives, arrays, functions, or specific object types. The project allows for the implementation of custom validation logic and the use of naming namespaces to override default rules and regular expressions. It covers a broad range of validation capabilities, including numeric arithmetic properties, date and time analysis for relative and absolute ranges, and string format verification for patterns such as emails, URLs, and IP addresses. The library also includes
Micro-library for type checking.
This project serves as a comprehensive educational repository and technical reference collection, documenting a wide range of software engineering practices and modern development technologies. It provides a structured learning path for developers, curating tutorials and practical examples that cover the full lifecycle of application development, from initial project scaffolding to deployment and maintenance. The repository distinguishes itself by offering deep technical insights into complex architectural patterns, including actor-based concurrency models for managing parallel tasks and cont
Enforces type safety at compile time through static analysis to ensure structural consistency across application components.
Pyre is a high-performance static type checker and analysis tool for Python. It identifies type errors and ensures type safety without executing the program, utilizing a static type inference engine to maintain consistency across functions. The project is distinguished by an incremental type analysis engine that operates as a background daemon. This system monitors filesystem changes to re-validate only modified parts of a project, reducing the time required for repeated analysis. It also includes a static analysis security tool that uses taint analysis to track untrusted data flows and ident
Analyzes Python source code to identify type errors and ensure type safety without executing the program.
Anomalib is a PyTorch-based library for visual anomaly detection, offering a modular framework, a comprehensive model zoo, and a benchmarking suite designed for industrial defect detection. It provides a wide range of algorithms—including generative, discriminative, teacher-student, and vision-language approaches—that support unsupervised, few-shot, and zero-shot settings. The library enables deployment through model export to ONNX and OpenVINO for edge devices, and includes a no-code web application for training and inference. It also features a command-line interface for orchestrating multi
Defines typed dataclasses for anomaly detection samples with automatic field validation.
attrs is a Python library that automatically generates initialization, representation, equality, hashing, and ordering methods from declarative class attribute definitions. At its core, it provides a class decorator metaprogramming framework that intercepts class creation to rewrite the class body, producing dunder methods without manual boilerplate. The library includes a comprehensive attribute validation toolkit with built-in validators for type checks, range constraints, regex matching, length limits, and logical composition of validation rules. The library distinguishes itself through it
Provides PEP 681 dataclass transform markers for static type checker compatibility.
stc is a TypeScript type checker implemented entirely in Rust, designed to validate type correctness in TypeScript source code with native performance and memory safety. It operates as a no-emitting type validator, meaning it checks types only and does not produce JavaScript output, reducing overhead compared to a full compiler. The checker is built around a zero-false-positive design, reporting only errors that are provably certain from the type system, prioritizing correctness over speculative warnings. The tool distinguishes itself through parallel file processing, analyzing source files c
Reports only provably certain type errors, prioritizing correctness over speculative warnings.
Tortoise ORM is an asynchronous object-relational mapper for Python that mirrors Django's model and queryset API while running on asyncio. It defines database tables as Python classes with typed fields and supports foreign key, many-to-many, and one-to-one relations, providing a chainable query API for filtering, annotating, grouping, and prefetching related objects without blocking the event loop. The ORM includes a built-in migration engine that detects model changes, generates migration files, and applies or reverts schema changes through a command-line tool. It connects to PostgreSQL, MyS
Extends PyLint to understand dynamically built ORM models and fields, eliminating false positives during static analysis.
Luau is a high-performance programming language evolved from Lua 5.1. It consists of a bytecode virtual machine, an embeddable scripting engine, and a static code analyzer designed to provide a secure, sandboxed execution environment for host applications. The project is distinguished by its gradual typing system, which combines automatic type inference with optional manual annotations to detect bugs without requiring full static typing. It also features native vector mathematics for high-performance operations and a specialized debugging system that uses bytecode patching to minimize executi
Provides configurable type checking modes ranging from no checks to strict enforcement for individual files.
Monty is a sandboxed execution environment designed primarily for running Python code generated by AI models. It provides a secure, isolated runtime that blocks host access, enforces resource limits, and supports pre-execution type checking against built-in type hints to catch signature mismatches before code runs. The sandbox can persist its interpreter state at external function calls, allowing execution sessions to be serialized, stored, and later resumed from a file or database. What distinguishes Monty is its combination of stateful, resumable execution with multi-language native embeddi
Runs full Python type-checking against built-in type hints before code execution to catch signature mismatches early.
Pyrefly is a static type checker for Python that operates as a language server, delivering real-time diagnostics, completions, and navigation in any editor supporting the Language Server Protocol. It also performs static tensor shape analysis, using symbolic dimension variables and arithmetic to verify shape consistency in deep learning models without runtime execution. Beyond core type checking, Pyrefly supports gradual adoption workflows: it can generate a baseline of known errors so only new issues are reported, migrate configuration from other type checkers, and automatically suppress exi
Infers types for Django ORM model fields and relationships without plugins.
This project is a Language Server Protocol implementation for PostgreSQL that provides autocompletion, syntax diagnostics, and type checking for SQL and PL/pgSQL. It functions as a database schema validator and a static analysis engine designed to detect security vulnerabilities, performance bottlenecks, and dangerous migration patterns in database scripts. The server differentiates itself by using live database connections to provide schema-aware intelligence, allowing it to verify that tables, columns, and data types actually exist. It performs static analysis on procedural functions to det
Validates column and table types by analyzing execution plans to find runtime errors before execution.
Typeshed es una colección de definiciones de tipos estáticos y stubs para la biblioteca estándar de Python y paquetes de terceros. Sirve como un recurso estandarizado para analizadores estáticos y entornos de desarrollo integrados (IDE) para validar la corrección del código y proporcionar autocompletado basado en tipos sin modificar el código fuente original de las bibliotecas. El proyecto se centra en la creación y mantenimiento de archivos de pistas de tipo externos que separan las anotaciones de tipo de la implementación en tiempo de ejecución. Utiliza un sistema para versionar y mapear estos stubs a versiones específicas de paquetes en tiempo de ejecución para mantener la compatibilidad. El repositorio incluye una suite de validación para garantizar la precisión de estas definiciones. Esto cubre la validación de tiempo de ejecución a stub para identificar discrepancias entre tipos declarados y reales, verificación de la estructura de directorios y pruebas de regresión para evitar la reintroducción de errores de verificación de tipos conocidos.
Collection of library stubs for static type analysis.
Pytype es una herramienta de análisis de código estático y motor de inferencia de tipos para Python. Funciona como un analizador de tipos estático que detecta desajustes de tipos y verifica anotaciones de tipos sin requerir pistas manuales completas, sirviendo también como un generador de stubs de tipos para producir archivos de definición independientes. El proyecto se distingue por determinar automáticamente los tipos de variables y funciones mediante un análisis de patrones de código y asignaciones. Este motor de inferencia permite la verificación estructural del código y la generación de stubs de tipos que describen las interfaces de módulos y funciones. El sistema cubre operaciones amplias de análisis estático, incluyendo validación estructural de jerarquías de clases y llamadas a funciones, y seguimiento de símbolos para detectar errores de espacio de nombres y violaciones de acceso a atributos. También proporciona primitivas de verificación de tipos para aplicar anotaciones y un sistema de tipos capaz de modelar estructuras de datos complejas utilizando uniones y opcionales.
Infers and checks types without requiring manual annotations.
MonkeyType es una herramienta de inferencia de tipos en tiempo de ejecución y análisis para Python. Recopila tipos reales de argumentos y retornos de llamadas a funciones durante la ejecución del programa para automatizar la producción de anotaciones de tipo estáticas y archivos stub compatibles. El sistema convierte trazas de ejecución capturadas en sugerencias de tipo estáticas, que pueden insertarse directamente en las definiciones de funciones del código fuente o utilizarse para generar stubs de tipo externos. Este proceso permite añadir seguridad de tipos a bases de código existentes analizando tipos de datos del mundo real en lugar de mediante auditoría manual. Las capacidades de la herramienta cubren la recopilación de tipos en tiempo de ejecución, inferencia de tipos dinámica y la generación de definiciones de tipo estáticas. Utiliza la modificación del código fuente y la persistencia de trazas de llamadas para mapear patrones observados en tiempo de ejecución a firmas estáticas.
Generates static type annotations from runtime types.
REFramework is a runtime modding framework for games built on the RE Engine, providing a C# plugin system with typed proxy code generation, a Lua scripting interface, an ImGui-based UI system, a runtime debugging toolkit, and a VR integration layer. At its core, it intercepts and modifies internal game engine functions and state at runtime through hooking and scripting APIs, enabling deep inspection and manipulation of live game objects. The framework distinguishes itself through typed proxy code generation that auto-creates C# interfaces from the game's type database, giving compile-time saf
REFramework determines whether a type is a value type, even if it does not inherit from System.ValueType.
Sorbet is a static analysis tool and type checker designed for Ruby codebases. It identifies type inconsistencies, potential bugs, and logic errors by examining source code without execution, helping to improve software reliability and maintainability in large-scale projects. The system employs a constraint-based type inference engine that evaluates expressions against defined annotations to validate data structures. To support rapid development, it utilizes incremental analysis and caching to provide feedback by processing only modified files and their dependencies. Beyond static analysis,
Provides rapid development feedback by re-checking only modified files and their dependencies.
jscamp is a full-stack web development and education project focused on mastering JavaScript, TypeScript, and AI integration. It provides a structured curriculum and interactive exercises covering language fundamentals, frontend engineering, and backend API development. The project distinguishes itself through the implementation of autonomous AI agents capable of complex task automation, such as modifying files, managing servers, and executing API calls. It includes advanced AI development tools for conversational querying, real-time code suggestions, and automated repository analysis to gene
Validates code types during the compilation phase to identify bugs before the code is executed.