Skip to content
/ ezno Public
forked from kaleidawave/ezno

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

License

Notifications You must be signed in to change notification settings

markthree/ezno

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 99.2%
  • JavaScript 0.8%