Skip to content

kaleidawave/ezno

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
February 25, 2023 18:18
src
March 21, 2023 17:47
March 21, 2023 17:47
March 21, 2023 17:47
February 25, 2023 17:19
February 25, 2023 17:19
February 25, 2023 17:19

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

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published