Giter Club home page Giter Club logo

ezno's Introduction

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 currently does not support enough features to check existing projects. Check out the getting started guide for experimenting with what it currently supports.

What Ezno is

  • A type checker for JavaScript usable through a CLI (with a LSP also in the works)
  • A high level library that allows type checking to be added to other tools!
  • Checks programs with guaranteed type safety (no runtime TypeErrors) (as long as definitions are sound)
  • Types aimed at soundness and tracing for better static analysis
  • A imperative type system that tracks and evaluates the side effects of functions and control flow structures. It is similar to an interpreter, but acts with types instead of values and does not run IO side effects etc
  • A collection of experiments of types. Many are being worked out and are in the prototype stage. Some of the new behaviors benefit JavaScript specifically and others could be applied to other languages
  • Written in Rust
  • Fast and Small
  • Open source! You can help build Ezno!
  • A challenge to the status quo of type checking, optimisations and compilation through deeper static analysis beyond syntax analysis

What Ezno is not

  • eNZo, the Z is in front of the N (pronounce as 'Fresno' without the 'fr') ๐Ÿ˜€
  • Be on parity with TSC or 1:1, it has some different behaviors but should work in existing projects using TSC
  • Faster as a means to serve large codebases. Cut out bloat and complex code first!
  • Smarter as a means to allow more dynamic patterns. Keep things simple!
  • A binary executable compiler. It takes in JavaScript (or a TypeScript or Ezno superset) and does similar processes to traditional compilers, but at the end emits JavaScript. However in the future it could generate a lower level format using its event (side-effect) representation

Read more about Ezno


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

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.

ezno's People

Contributors

kaleidawave avatar jasikpark avatar addisoncrump avatar julesguesnon avatar markthree avatar charlestaylor7 avatar joshuakgoldberg avatar lemueldls avatar nathanbabcock avatar h-plus-time avatar wzwywx avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.