Sign inSign up

ivankra/javascript-zoo

By ivankra

•Updated 4 months ago

Pre-built binaries for a variety of JavaScript engines

Image
0

4.7K

ivankra/javascript-zoo repository overview

https://github.com/ivankra/javascript-zoo⁠
https://zoo.js.org/⁠

JavaScript engines binaries and this image are built weekly via GitHub Actions⁠. The same binaries are also available from GitHub Releases⁠. Image is based on Debian stable (Dockerfile⁠).

Repository is checked out at /zoo and contains benchmarking and conformance testing scripts (results are committed to javascript-zoo-data⁠).

Pre-built JavaScript engines binaries are in /dist directory:

  • Most binaries can be run directly as a REPL or with a script to run as a command-line argument.
  • Each binary has an associated .json file with metadata, especially source code revision. Almost are built from latest available repo's revisions, using latest available toolchains (e.g. gcc 16, clang 23)
  • There are amd64 and arm64 versions of this image. If your environment allows, you can run a non-native image like this:
    • sudo apt-get install qemu-user-static (for Debian/Ubuntu)
    • podman run --arch arm64 -it docker.io/ivankra/javascript-zoo
  • LIST file contains a listing of all available engines for ease of scripting. For example:
    • for x in `cat LIST`; do /zoo/conformance/run.py -o $x.txt $x; done

Example commands of what you can do with the image:

  • ./quickjs
    Start QuickJS REPL (most engines start REPL if run without arguments)
  • ./mocha /zoo/bench/richard.js1.js
    Run Mocha engine on JS1 version of Richards benchmark (most engines would run a script if passed a path to it)
  • /zoo/harness/bench.py ./v8
    Benchmark a single engine on Octane test suite
  • /zoo/harness/bench.py -r 10 ./quickjs ./quickjs-ng
    Compare multiple engines by benchmarking them in parallel and repeating each test 10 times. Will print a summary at the end with paired t-test p-values.
  • /zoo/harness/run.py ./quickjs
    /zoo/harness/test262.py ./quickjs_262
    Run conformance test suites (basic usage). Prefer to use *_262 or *_full binary variants for test262 if available - standard variant would then usually be a trimmed build.
  • /zoo/harness/test262.py -c v8_exp -o v8_exp.json ./v8_full
    Run test262 against the full-featured V8 binary, enabling all experimental flags (v8_exp config from /zoo/harness/config.yml), and save the output to v8_exp.json.
  • nvm install --default 25.9.0 && /zoo/harness/test262.py -c node_exp -o node.json node
    Download Node.js 25.9.0 via nvm and run test262 against it, enabling all experimental flags.
  • cd /zoo && git pull
    Update repository to the latest commit.

Tag summary

Content type

Image

Digest

sha256:2ecc5f137…

Size

3.6 GB

Last updated

4 months ago

docker pull ivankra/javascript-zoo