0.0.1 Oct 6, 2022

#44 in #awesome

MIT license

26KB
708 lines

typescript

This is a Rust native implementation of a Typescript Parser and a JIT execution engine.

This project comes in two crates:

  • [typescript-ast]: Parses Typescript into an AST.
  • [typescript-jit]: Takes an AST representation and creates an executable script.

State:

  • Parser: Async/Await are missing.
  • JIT: Creates functional binary code for functions.

Why?

  • Because V8 is to compllicated to "just integrate it".
  • rquickjs makes problems in an multi threaded environment.
  • And lua is fast, but ugly for larger scripts.

Features

  • Parses Typescript via Pest.
  • A LLVM based JIT execution engine.

typescript-jit usage

Info:

A native Typescript parser and JIT runner.

Usage: typescript-jit [OPTIONS] <FILENAME>

Arguments:
  <FILENAME>  

Options:
  -l, --log <LOG>  show a execution log. This for debugging
  -i, --ir <IR>    shows the LLVM IR code. This for debugging
  -h, --help       Print help information
  -V, --version    Print version information
cargo run -- -l typescript.log --ir main.ir 'samples/sample.ts'

Dependencies

~2–2.8MB
~57K SLoC