#javascript #typescript #type-checker

bin+lib ezno

A JavaScript checker and compiler. For use as a library or cli

9 releases

new 0.0.8 Mar 21, 2023
0.0.7 Mar 21, 2023
0.0.1 Feb 26, 2023
0.0.0 Jan 24, 2022

#71 in Programming languages

Download history 1/week @ 2022-12-01 1/week @ 2022-12-08 1/week @ 2022-12-22 1/week @ 2023-01-05 1/week @ 2023-01-19 5/week @ 2023-01-26 2/week @ 2023-02-02 4/week @ 2023-02-09 3/week @ 2023-02-16 23/week @ 2023-02-23 25/week @ 2023-03-02 2/week @ 2023-03-09 108/week @ 2023-03-16

161 downloads per month

MIT license

14K SLoC

A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance.

This project is a workspace consisting of a few crates:

Crate Lines Of Code
parser Contains AST definitions, logic for parsing and serializing, and visiting

Read some more detailed posts


This is an experimental compiler. If you are looking for a stable compiler, Ezno is not the right choice at the moment.

Type checking

Ezno is a type checker based on TypeScript type annotations.


  • Declare interfaces and other type definitions
  • Usage checking: property access, function parameters etc
  • Effects that track mutations across functions
  • Parameter constraint inference
  • Powerful dependent type system

Differences to checking TSC

  • The any type has no properties on it
  • Type annotations on variables are the reassignment constraint, not it's current value. Current value is inferred and is mutable
  • ...

ultimately the differences shouldn't break existing code and in any case pick up more errors than TSC

Help contribute

Check out issues. Comment on discussions.


~111K SLoC