Open-source type-system software
231 open-source libraries, tools and applications tagged type-system, ranked by how closely type-system is their primary purpose, then by adoption and maintenance health. Each entry links to a page with sources, use cases and when to choose or avoid it.
231 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| fannheyward/coc-pyright A coc.nvim extension that wraps Microsoft's Pyright static type checker and language server for Python, adding editor features like semanti… | 76 | 1364 | active |
| plantain-00/type-coverage A CLI tool that measures type coverage in TypeScript codebases by calculating the percentage of identifiers whose type is not `any`. It can… | 71 | 1352 | active |
| ucsd-progsys/liquidhaskell LiquidHaskell is a formal verification tool that brings refinement types to Haskell via a GHC plugin. It uses the Z3 SMT solver to statical… | 90 | 1334 | active |
| pschanely/CrossHair CrossHair is a Python analysis tool that verifies functions against type annotations and contracts using symbolic execution backed by an SM… | 95 | 1333 | active |
| roblox-ts/roblox-ts roblox-ts is a TypeScript-to-Luau compiler that lets developers write Roblox game code in TypeScript and transpiles it into functionally eq… | 66 | 1307 | active |
| facebook/prop-types A JavaScript library for runtime type checking of React component props and similar objects. It lets developers document expected property … | 10 | 4447 | maintenance |
| michaelbull/kotlin-result A Kotlin multiplatform library providing a Result monad for modelling success or failure operations without exceptions. It supports Ok/Err … | 80 | 1258 | active |
| iliekturtles/uom uom is a Rust crate providing type-safe, zero-cost dimensional analysis with a pre-built International System of Units (SI) and support for… | 54 | 1258 | stable |
| gustavoguichard/string-ts A TypeScript library providing common string manipulation functions (like replace, camelCase, deepCamelKeys) that preserve literal string t… | 61 | 1253 | active |
| vuedx/languagetools VueDX is a collection of tools for improving the Vue.js developer experience, including a VS Code extension providing language features, sy… | 23 | 1253 | active |
| schema-dts schema-dts provides TypeScript type definitions for the Schema.org vocabulary in JSON-LD format, exposed as discriminated type unions for a… | 87 | 1248 | active |
| idanarye/rust-typed-builder A Rust proc-macro crate that derives a compile-time type-checked builder pattern for structs. It enforces at compile time that all mandator… | 77 | 1203 | active |
| open-circle/formisch Formisch is a lightweight, schema-first, fully type-safe headless form library for JavaScript frameworks including React, Solid, Vue, Svelt… | 79 | 1194 | active |
| kristiandupont/kanel Kanel is a code generation tool that connects to a live PostgreSQL database and generates TypeScript types (plus optional Zod schemas) from… | 68 | 1182 | active |
| benjamn/ast-types A TypeScript library providing an Esprima-compatible implementation of the Mozilla JS Parser API abstract syntax tree type hierarchy. It of… | 95 | 1174 | stable |
| cornucopia-rs/cornucopia Cornucopia is a Rust code generator that produces type-checked Rust interfaces from PostgreSQL queries. It validates queries against a live… | 92 | 1164 | active |
| hazelgrove/hazel Hazel is a web-based live functional programming environment for an Elm/ML-like language built around typed holes, allowing typechecking, e… | 68 | 1162 | active |
| jspecify/jspecify JSpecify is a standard, tool-neutral set of Java annotations with precisely specified semantics for powering static analysis, currently foc… | 85 | 1153 | stable |
| typetools/checker-framework The Checker Framework is a framework for pluggable type-checking in Java, enhancing Java's type system to detect and prevent bugs like null… | 98 | 1151 | stable |
| Quramy/typed-css-modules A CLI tool that generates TypeScript .d.ts declaration files from CSS Modules .css files, enabling type-safe imports of class names and val… | 66 | 1137 | active |
| flow-typed/flow-typed A central repository of high-quality third-party Flow library type definitions (libdefs), plus a CLI tool to install and manage them in Flo… | 76 | 3758 | maintenance |
| Frege Frege is a purely functional programming language for the JVM that is essentially Haskell, featuring a strong static type system with globa… | 61 | 3712 | maintenance |
| pointfreeco/swift-case-paths CasePaths is a Swift library that extends the key path hierarchy to enum cases, enabling generic inspection and modification of enum case d… | 92 | 1053 | stable |
| idris-lang/Idris-dev Idris 1 is a general-purpose functional programming language with full dependent types, implemented in Haskell, supporting type-driven deve… | 10 | 3477 | maintenance |
| graphql-nexus/nexus GraphQL Nexus is a declarative, code-first library for building strongly typed GraphQL schemas in TypeScript and JavaScript. It layers an e… | 23 | 3431 | maintenance |
| syntax-tree/unist unist is a specification for universal syntax trees that can represent abstract and concrete syntax trees for code, markup, and natural lan… | 57 | 1011 | stable |
| vekatze/neut Neut is a functional programming language with static, type-directed memory management that compiles to LLVM IR and native binaries. It off… | 90 | 1010 | active |
| typelift/Swiftz Swiftz is a Swift library for functional programming that provides functional data structures, typeclasses, and idioms like Lists, Arrows, … | 23 | 3316 | maintenance |
| reasonml/reason-react ReasonReact provides typed Reason language bindings for ReactJS, letting you write React components with Reason's type system while remaini… | 66 | 3262 | maintenance |
| mtshiba/pylyzer Pylyzer is a fast static code analyzer and language server for Python, written in Rust, offering type checking and rich LSP features like c… | 39 | 2854 | maintenance |
| dethcrypto/TypeChain TypeChain generates TypeScript bindings from Ethereum smart contract ABIs, giving statically typed access to contract methods and events. I… | 23 | 2789 | maintenance |
| myclabs/php-enum A small PHP library providing an Enum base class, inspired by SplEnum, for PHP versions lacking native enums. It lets developers define enu… | 23 | 2724 | maintenance |
| schematics/schematics Schematics is a Python library for defining typed data structures, validating them, and converting data between formats like JSON or MsgPac… | 32 | 2587 | maintenance |
| antitypical/Result A Swift microframework providing a Result<Value, Error> type that models operations as either success or failure, similar to Optional but w… | 23 | 2483 | maintenance |
| DefinitelyTyped-tools dts-gen is a CLI tool that generates starter TypeScript definition (.d.ts) files for any JavaScript module or library by inspecting its run… | 10 | 2415 | maintenance |
| piotrwitek/typesafe-actions A TypeScript utility library providing typesafe helpers for creating action creators, async actions, and reducers in Redux/Flux architectur… | 56 | 2404 | maintenance |
| rust-lang/chalk Chalk is a Rust library that implements the Rust trait system using a Prolog-like logic solver, converting trait and impl information into … | 49 | 2017 | maintenance |
| gcanti/tcomb tcomb is a lightweight JavaScript library for runtime type checking of values with a concise combinator-based syntax, supporting structs, l… | 10 | 1879 | maintenance |
| cincheo/jsweet JSweet is a Java-to-JavaScript transpiler that compiles Java source code to TypeScript and JavaScript, leveraging javac and tsc for type-ch… | 23 | 1490 | maintenance |
| patrick-kidger/torchtyping A Python library providing type annotations for PyTorch tensors' shape, dtype, layout, and dimension names, with optional runtime checking … | 37 | 1485 | maintenance |
| alpaca-lang/alpaca Alpaca is a statically typed, eagerly evaluated functional programming language for the Erlang VM (BEAM), inspired by ML and featuring Hind… | 23 | 1466 | maintenance |
| egonSchiele/contracts.ruby contracts.ruby is a Ruby library for design-by-contract programming, letting you declare one-line contracts above methods that validate arg… | 76 | 1457 | maintenance |
| dropbox/pyannotate PyAnnotate auto-generates PEP-484 type annotations for Python code by collecting argument and return types observed at runtime, then insert… | 70 | 1443 | maintenance |
| improbable-eng/ts-protoc-gen A protoc plugin that generates TypeScript declaration files (.d.ts) matching the JavaScript output of protoc's CommonJS mode. It can also e… | 48 | 1395 | maintenance |
| clojure/core.typed core.typed is an optional (gradual) type system for Clojure, provided as a library with a static type checker and runtime dependencies. It … | 56 | 1314 | maintenance |
| gajus/eslint-plugin-flowtype An ESLint plugin providing linting rules for Flow static type annotations in JavaScript. It enforces style and correctness conventions for … | 23 | 1065 | maintenance |
| dreymonde/Time A Swift micro-library providing strongly-typed time intervals (e.g. Interval<Minute>) so durations like 10.minutes are type-safe and unit-a… | 23 | 1062 | maintenance |
| SweetIQ/schemats Schemats is a CLI tool that automatically generates TypeScript interface definitions from Postgres or MySQL database schemas. It introspect… | 23 | 1060 | maintenance |
| facebook/fatal Fatal (Facebook Template Library) is a header-only C++14 library for fast software prototyping, built heavily on template meta-programming … | 10 | 1018 | maintenance |
| codemix/ts-sql A SQL database implemented entirely in TypeScript type annotations, operating purely at the type level with no runtime code. It supports a … | 32 | 3305 | experimental |
| kaleidawave/ezno Ezno is an experimental TypeScript/JavaScript type checker and compiler written in Rust, usable as a CLI or library. It features a sound im… | 67 | 2736 | experimental |
| marcj/TypeRunner TypeRunner is a high-performance TypeScript type checker written in C++ that compiles TypeScript to bytecode and executes it in a custom vi… | 33 | 2658 | experimental |
| jfecher/ante Ante is a low-level functional systems programming language exploring safe shared mutability, algebraic effect handlers, ownership/borrowin… | 68 | 2359 | experimental |
| mypyc/mypyc Mypyc is a compiler that translates type-annotated Python modules into fast C extensions, using mypy for type checking and inference. It po… | 32 | 2023 | experimental |
| alshdavid-public/BorrowScript BorrowScript is an experimental programming language that combines TypeScript-like syntax with a Rust-style borrow checker, compiled to sma… | 32 | 1456 | experimental |
| zubanls/zuban Zuban is a high-performance Python type checker and Language Server written in Rust by the author of Jedi. It offers a Pyright-like checkin… | 90 | 1219 | experimental |
| lexi-lambda/hackett Hackett is an experimental, statically typed, pure, lazy functional programming language implemented as a Racket #lang, combining Haskell-s… | 32 | 1206 | experimental |
| ericelliott/rtype Rtype is a structural type notation for JavaScript with a TypeScript-inspired syntax, designed primarily for API documentation and embeddab… | 32 | 1120 | experimental |
| rikukissa/typehole Typehole is a Visual Studio Code extension that automatically generates TypeScript interfaces from runtime values. It bridges serializable … | 23 | 1048 | experimental |
| facebook/pyre-check Pyre is a performant, PEP 484-compliant static type checker for Python that provides incremental checking of large codebases, and it ships … | 10 | 7173 | abandoned |
| vuejs/vue-class-component An ES/TypeScript decorator library enabling class-style Vue components. It is officially deprecated and no longer maintained, with Vue 3 re… | 39 | 5753 | abandoned |
| stc stc is a TypeScript type checker written in Rust, aiming to be a much faster alternative to tsc while matching its behavior. The project is… | 10 | 5702 | abandoned |
| kaorun343/vue-property-decorator A TypeScript library providing property decorators (@Prop, @Watch, @Emit, etc.) for writing Vue.js components as ES classes, built on top o… | 10 | 5458 | abandoned |
| Typings Typings is a CLI package manager for installing and managing TypeScript type definition files. It is deprecated in favor of npm's @types pa… | 10 | 3354 | abandoned |
| MichiganTypeScript/typescript-types-only-wasm-runtime A WebAssembly runtime implemented entirely in TypeScript's type system, with no JavaScript runtime code, capable of compiling and executing… | 29 | 2404 | abandoned |
| JSMonk/hegel Hegel is an advanced static type checker for JavaScript with optional type annotations, strong soundness checks, powerful type inference, a… | 10 | 2081 | abandoned |
| bodil/typed-html A Rust crate providing an html! macro for building fully type-checked HTML documents using JSX-compatible syntax. It validates HTML5 tags, … | 10 | 1850 | abandoned |
| rustedpy/result A Python library providing a Rust-like Result type (Ok/Err) for explicit error handling, fully type annotated for mypy and type checkers. T… | 10 | 1679 | abandoned |
| gen gen is a command-line code generation tool for Go that provides generics-like functionality by generating typed methods (LINQ/underscore-in… | 23 | 1423 | abandoned |
| mbebenita/LLJS LLJS is a typed dialect of JavaScript with a C-like type system and manual memory management, compiled to plain JavaScript via the ljc comp… | 32 | 1177 | abandoned |
| wende/elchemy Elchemy is a transpiler that lets you write Elixir code using Elm's statically-typed syntax, compiling to idiomatic, readable Elixir that r… | 10 | 1150 | abandoned |
| TypeStrong/atom-typescript A TypeScript language plugin for the Atom editor providing autocomplete, live error analysis, type info on hover, and compile-on-save via t… | 23 | 1124 | abandoned |
| mockdeep/typewiz TypeWiz is a TypeScript tool that monitors variable types at runtime and automatically inserts missing type annotations into your source co… | 10 | 1105 | abandoned |
| t3-oss/create-t3-app create-t3-app is an interactive CLI scaffolding tool that generates a full-stack, typesafe Next.js application using the T3 Stack. It lets … | 59 | 29148 | active |
| facebook/hhvm HHVM is an open-source virtual machine with a just-in-time (JIT) compiler for executing programs written in the Hack programming language. … | 68 | 18666 | active |
| PHPStan PHPStan is an open-source static analysis tool for PHP that discovers bugs in code without running it. It understands PHPDocs, supports gen… | 95 | 14125 | stable |
| Dart The Dart SDK is the open-source toolkit for the Dart programming language, including the Dart VM with JIT and AOT compilation, JavaScript a… | 77 | 11312 | stable |
| Lean 4 theorem prover Lean 4 is an open-source dependently typed functional programming language and interactive theorem prover used for formalizing mathematics … | 100 | 9610 | active |
| BAML BAML is a domain-specific programming language for building LLM agents, with a Rust-like type system, typed errors, built-in tests/evals, a… | 92 | 9423 | active |
| HaxeFoundation/haxe Haxe is an open-source, high-level, strictly typed programming language and cross-compiler toolkit that compiles to many targets including … | 67 | 6946 | stable |
| joe-bell/cva Class Variance Authority (cva) is a tiny TypeScript library for building type-safe, variant-driven class names for UI components, with firs… | 68 | 6903 | stable |
| Ecto Ecto is a toolkit for data mapping and language-integrated queries in Elixir, providing schemas, changesets, and a composable query DSL. It… | 66 | 6497 | stable |
| ponylang/ponyc ponyc is the compiler for Pony, an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language th… | 100 | 6202 | active |
| luau-lang/luau Luau is a fast, small, gradually typed scripting language derived from Lua 5.1, designed to be embedded in applications with a sandboxed ru… | 95 | 6009 | active |
| AidLux (AidLearning) AidLux (originally AidLearning) is an AIoT development platform that runs a native Ubuntu Linux environment with GUI, deep learning tooling… | 63 | 5812 | active |
| Strawberry GraphQL Strawberry is a developer-friendly GraphQL library for Python built on dataclasses and type hints. It lets you define GraphQL schemas with … | 92 | 4721 | active |
| Lua Language Server A Language Server Protocol implementation for Lua, written in Lua, providing features like autocompletion, type checking, diagnostics, form… | 100 | 4391 | stable |
| dotnet/fsharp The official open-source F# compiler, F# core library (FSharp.Core), and F# language service, including tooling integration for Visual Stud… | 74 | 4344 | stable |
| mint-lang/mint Mint is a programming language that compiles to JavaScript, designed specifically for building front-end web applications. It provides buil… | 91 | 4267 | active |
| upstash/jstack JStack is a lightweight, end-to-end typesafe framework for building fast Next.js 15 applications, built on Hono, Tailwind, and Drizzle ORM.… | 28 | 3743 | active |
| dafny-lang/dafny Dafny is a verification-aware programming language with native support for writing specifications and a built-in static verifier powered by… | 73 | 3578 | active |
| carthage-software/mago Mago is an extremely fast PHP toolchain written in Rust that provides linting, formatting, static analysis, and automated fixes through a u… | 86 | 3524 | active |
| grain-lang/grain Grain is a strongly-typed functional programming language that compiles to WebAssembly, together with its compiler toolchain and CLI. It ai… | 85 | 3468 | active |
| gluon Gluon is a small, statically-typed functional programming language with type inference, implemented in Rust and designed for embedding in a… | 91 | 3451 | active |
| bcherny/json-schema-to-typescript A TypeScript library and CLI (json2ts) that compiles JSON Schema definitions into TypeScript type declarations. It can be used programmatic… | 74 | 3346 | active |
| next-safe-action next-safe-action is a TypeScript library for defining type-safe, validated Next.js Server Actions with middleware support. It works with an… | 89 | 3071 | active |
| nickel-lang/nickel Nickel is a configuration language that generates static configuration files like JSON, YAML, and XML, essentially 'JSON with functions'. I… | 93 | 3002 | active |
| explosion/thinc Thinc is a lightweight deep learning library from the makers of spaCy offering a type-checked, functional-programming API for composing neu… | 74 | 2891 | active |
| flix/flix Flix is a statically typed, effect-oriented programming language that combines functional, imperative, and logic programming paradigms, dev… | 99 | 2758 | active |
| Reason Reason is an alternative syntax and toolchain for the OCaml programming language, offering simple, fast, type-safe code with a JavaScript-f… | 88 | 10324 | maintenance |