All Projects → ErosZy → Sablejs

ErosZy / Sablejs

Licence: apache-2.0
🏖️ The safer and faster ECMA5.1 interpreter written by JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Sablejs

Eval5
A JavaScript interpreter written in TypeScript - Support ES5
Stars: ✭ 281 (+368.33%)
Mutual labels:  interpreter, sandbox
SandboxJS
Safe eval runtime
Stars: ✭ 18 (-70%)
Mutual labels:  interpreter, sandbox
jsish
Jsi is a small, C-embeddable javascript interpreter with tightly woven Web and DB support.
Stars: ✭ 32 (-46.67%)
Mutual labels:  interpreter, sandbox
Wasm3
🚀 The fastest WebAssembly interpreter, and the most universal runtime
Stars: ✭ 4,375 (+7191.67%)
Mutual labels:  interpreter, sandbox
Mir
A light-weight JIT compiler based on MIR (Medium Internal Representation)
Stars: ✭ 1,075 (+1691.67%)
Mutual labels:  interpreter
Algorithmmap
建立你的算法地图:如何高效学习算法;算法工程师:从小白到专家
Stars: ✭ 47 (-21.67%)
Mutual labels:  interpreter
U6a
Implementation of Unlambda, an esoteric programming language.
Stars: ✭ 46 (-23.33%)
Mutual labels:  interpreter
Winter
Haskell port of the WebAssembly OCaml reference interpreter
Stars: ✭ 42 (-30%)
Mutual labels:  interpreter
Zepto
A schemy Lisp backed by Haskell
Stars: ✭ 60 (+0%)
Mutual labels:  interpreter
Littlelang
A little language interpreter written in Go
Stars: ✭ 56 (-6.67%)
Mutual labels:  interpreter
Wasmjit
Small Embeddable WebAssembly Runtime
Stars: ✭ 1,063 (+1671.67%)
Mutual labels:  interpreter
Postman Sandbox
Sandbox for Postman Scripts to run in Node.js or browser
Stars: ✭ 47 (-21.67%)
Mutual labels:  sandbox
Tablam
The practical relational programing language for data-oriented applications
Stars: ✭ 55 (-8.33%)
Mutual labels:  interpreter
O
Language for code-golf with a focus on unreadability
Stars: ✭ 46 (-23.33%)
Mutual labels:  interpreter
Reoscript
JavaScript-like script language engine for .NET Application. Easy to plug in .NET Application and making API extension for script. Enhanced syntax and features are also available such as lambda expression, call setTimeout with arguments, etc...
Stars: ✭ 57 (-5%)
Mutual labels:  interpreter
Componentfixture
🛠️Interactive sandox playground for vue components
Stars: ✭ 44 (-26.67%)
Mutual labels:  sandbox
Pythonvm Rust
An incomplete stackless interpreter of Python bytecode, written in Rust.
Stars: ✭ 50 (-16.67%)
Mutual labels:  interpreter
Yasl
Bytecode Interpreter for Yet Another Scripting Language (YASL).
Stars: ✭ 55 (-8.33%)
Mutual labels:  interpreter
Mikrokosmos
(λ) Educational lambda calculus interpreter
Stars: ✭ 50 (-16.67%)
Mutual labels:  interpreter
Cymbal
Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go"
Stars: ✭ 49 (-18.33%)
Mutual labels:  interpreter

sablejs

🏖️ The safer and faster ECMA5.1 interpreter written by JavaScript, it can be used:

  1. Sandbox(like Figma Plugin Sandbox, but better and easy to use);
  2. Mini Program/Game JavaScript dynamic execution;
  3. Protect JavaScript source code via AOT compiling to opcode;

sablejs may be the fastest interpreter written by JavaScript (using v8 benchmark suites):

Benchmark Enviorment:

  • Node.js v12.19.0
  • Golang 1.15.6
  • GCC 5.4.0 -O3
  • 2.4 GHz Intel Core i9
  • MacOS Mojave 10.14.6 (18G6032)
sable.js sval eval5 quickjs-wasm mujs otto goja
Language JavaScript JavaScript JavaScript C + WebAssembly C Golang Golang
Richards 112 29.4 25.1 347 187 23.4 210
Crypto 120 28.8 21.4 412 113 19.2 107
RayTrace 297 102 102 512 392 64.5 301
NavierStokes 179 38.0 53.1 701 109 31.4 191
Total score 164 42.5 41.3 476 173 30.9 190
Baseline 1 ▼ 2.86 ▼ 2.97 ▲ 1.90 ▲ 0.05 ▼ 4.30 ▲ 0.16
File Size(KB) VM: 134 152 134 434 - - -
Gzip Size(KB) VM: 20 40 34 245 - - -

Current progress:

  1. Except for JSON, other logic has been completed
  2. Test262 has been integrated, now covered ~70% cases

It will be coming soon...

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].