All Projects → horhof → Quickjs

horhof / Quickjs

Licence: mit
The official repo is at bellard/quickjs.

Programming Languages

javascript
184084 projects - #8 most used programming language
c
50402 projects - #5 most used programming language
js
455 projects
ecmascript
72 projects

Projects that are alternatives of or similar to Quickjs

Openj9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Stars: ✭ 2,802 (+96.08%)
Mutual labels:  compiler, interpreter, runtime, virtual-machine
V8
The official mirror of the V8 Git repository
Stars: ✭ 18,808 (+1216.17%)
Mutual labels:  compiler, interpreter, javascript-engine, virtual-machine
Quickjs
QuickJS是一个小型并且可嵌入的Javascript引擎,它支持ES2020规范,包括模块,异步生成器和代理器。
Stars: ✭ 2,199 (+53.88%)
Mutual labels:  compiler, javascript-engine, virtual-machine, vm
quickjs-build
Build for QuickJS JavaScript Engine
Stars: ✭ 25 (-98.25%)
Mutual labels:  vm, interpreter, runtime, javascript-engine
Ph7
An Embedded Implementation of PHP (C Library)
Stars: ✭ 422 (-70.47%)
Mutual labels:  compiler, interpreter, runtime, virtual-machine
Cymbal
Yet another Rust implementation of the Monkey language from "Writing an Interpreter in Go" and "Writing a Compiler in Go"
Stars: ✭ 49 (-96.57%)
Mutual labels:  compiler, interpreter, virtual-machine
openj9
Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
Stars: ✭ 2,973 (+108.05%)
Mutual labels:  interpreter, runtime, virtual-machine
Animach
Scheme语言实现和运行时环境 / A Scheme runtime & implementation
Stars: ✭ 45 (-96.85%)
Mutual labels:  vm, interpreter, virtual-machine
Chakracore
ChakraCore is an open source Javascript engine with a C API.
Stars: ✭ 8,600 (+501.82%)
Mutual labels:  runtime, javascript-engine, vm
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-98.74%)
Mutual labels:  interpreter, runtime, virtual-machine
Smlvm
Smallrepo Virtual Machine
Stars: ✭ 265 (-81.46%)
Mutual labels:  compiler, virtual-machine, vm
Ark
ArkScript is a small, fast, functional and scripting language for C++ projects
Stars: ✭ 312 (-78.17%)
Mutual labels:  compiler, virtual-machine, vm
Passerine
A small extensible programming language designed for concise expression with little code.
Stars: ✭ 341 (-76.14%)
Mutual labels:  compiler, interpreter, vm
Tagha
Minimal, low-level, fast, and self-contained register-based bytecode virtual machine/runtime environment.
Stars: ✭ 101 (-92.93%)
Mutual labels:  vm, interpreter, virtual-machine
RSqueak
A Squeak/Smalltalk VM written in RPython.
Stars: ✭ 78 (-94.54%)
Mutual labels:  vm, interpreter, virtual-machine
clox
A virtual machine and a tree-walk interpreter for the Lox programming language in C89 🌀
Stars: ✭ 38 (-97.34%)
Mutual labels:  vm, interpreter, virtual-machine
RISVM
A low overhead, embeddable bytecode virtual machine in C++
Stars: ✭ 21 (-98.53%)
Mutual labels:  vm, interpreter, virtual-machine
Customasm
💻 An assembler for custom, user-defined instruction sets! https://hlorenzi.github.io/customasm/web/
Stars: ✭ 211 (-85.23%)
Mutual labels:  compiler, virtual-machine, vm
Swift Lispkit
Interpreter framework for Lisp-based extension and scripting languages on macOS and iOS. LispKit is based on the R7RS standard for Scheme. Its compiler generates bytecode for a virtual machine. LispKit is fully implemented in Swift 5.
Stars: ✭ 228 (-84.04%)
Mutual labels:  compiler, interpreter, virtual-machine
Umka Lang
Umka: a statically typed embeddable scripting language
Stars: ✭ 308 (-78.45%)
Mutual labels:  compiler, interpreter, virtual-machine

QuickJS Javascript Engine

News

Introduction

QuickJS is a small and embeddable Javascript engine. It supports the ES2020 specification including modules, asynchronous generators, proxies and BigInt.

It optionally supports mathematical extensions such as big decimal floating point numbers (BigDecimal), big binary floating point numbers (BigFloat) and operator overloading.

Main Features:

  • Small and easily embeddable: just a few C files, no external dependency, 210 KiB of x86 code for a simple hello world program.
  • Fast interpreter with very low startup time: runs the 69000 tests of the ECMAScript Test Suite in about 95 seconds on a single core of a desktop PC. The complete life cycle of a runtime instance completes in less than 300 microseconds.
  • Almost complete ES2020 support including modules, asynchronous generators and full Annex B support (legacy web compatibility).
  • Passes nearly 100% of the ECMAScript Test Suite tests when selecting the ES2020 features. A summary is available at Test262 Report.
  • Can compile Javascript sources to executables with no external dependency.
  • Garbage collection using reference counting (to reduce memory usage and have deterministic behavior) with cycle removal.
  • Mathematical extensions: BigDecimal, BigFloat, operator overloading, bigint mode, math mode.
  • Command line interpreter with contextual colorization implemented in Javascript.
  • Small built-in standard library with C library wrappers.

Benchmark

Online Demo

An online demonstration of the QuickJS engine with its mathematical extensions is available at numcalc.com. It was compiled from C to WASM/asm.js with Emscripten.

qjs and qjscalc can be run in JSLinux.

Documentation

QuickJS documentation: HTML version, PDF version.

Specification of the JS Bignum Extensions: HTML version, PDF version.

Download

Sub-projects

QuickJS embeds the following C libraries which can be used in other projects:

  • libregexp: small and fast regexp library fully compliant with the Javascript ES 2019 specification.
  • libunicode: small unicode library supporting case conversion, unicode normalization, unicode script queries, unicode general category queries and all unicode binary properties.
  • libbf: small library implementing arbitrary precision IEEE 754 floating point operations and transcendental functions with exact rounding. It is maintained as a separate project.

Links

Licensing

QuickJS is released under the MIT license.

Unless otherwise specified, the QuickJS sources are copyright Fabrice Bellard and Charlie Gordon.


Fabrice Bellard - https://bellard.org/
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].