#javascript #bytecode #run-time #dsl

bin+lib ezjs

ezjs is a simple and micro Javascript (ES5) engine is Rust

2 releases

0.1.1 May 11, 2021
0.1.0 Apr 4, 2021

#1039 in Programming languages

MIT license

195KB
6K SLoC

ezjs

A easy Javascript (ES5) runtime by Rust. https://crates.io/crates/ezjs

A pure Rust implementation for Javascript (ES5 strict mode), including a simple bytecode virtual machine. Whole design is inspired from https://mujs.com/ .


lib.rs:

ezjs

A light Javascript (ES5 version) runtime library , you can use Javascript as DSL in your project. Whole design is inspired from https://mujs.com/, including including a simple bytecode virtual machine. You can added a extenstion hook type via Rust's generic features, and this hook type play key role in your DSL enviroment.

All implementation including tokenlizer, AST builder, compiler, optimizer(TODO), and VM executer is simple and easy to debug, so I called this library ezjs.

An completed example is a repl ( src/bin/repl.rs), which including a hookable extention struct.

No runtime deps