untra / ezno

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

Home Page:https://kaleidawave.github.io/posts/introducing-ezno/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
Description
parser Contains AST definitions, logic for parsing and serializing, and visiting

Read some more detailed posts

Experimental

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.

Features

  • 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.

About

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

https://kaleidawave.github.io/posts/introducing-ezno/

License:MIT License


Languages

Language:Rust 99.2%Language:JavaScript 0.8%