kaleidawave / ezno

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/
MIT License
2.3k stars 42 forks source link
compiler javascript typechecker types typescript

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

[!IMPORTANT] Ezno is in active development and does not currently support enough features to check existing projects. Check out the getting started guide for experimenting with what it currently supports.

What Ezno is:

What Ezno is not

Read more about Ezno (in chronological order)


This project is a workspace consisting of a few crates:

Crate Lines Of Code Contains
checker checker lines of code Stores for types and contexts, type checking logic and optional synthesis over the parser AST
parser parser lines of code AST definitions, logic for parsing, AST to string and visiting
<!-- ezno-web-framework Visitors and code generation for JSX and reactive expression transformations. -->
<!-- ezno-lsp Visitors and code generation for JSX and reactive expression transformations. -->

Help contribute

Check out good first issues and comment on discussions! Feel free to ask questions on parts of the code of the checking implementation.

Read CONTRIBUTING.md for information about building and testing.