Skip to content
gritzkoPublic

About

A minimal js runtime with libdog bindings. Mostly intended to produce binaries with bundled JavaScript

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickJAB: JS runtime with libdog

An anti-bloat QuickJS based JavaScript runtime with libdog bindings. Mostly revision-control oriented: git compatibility, CRDTs, tokenizers for 70 programming languages, diff/patch/merge and other things.

Building

QuickJAB can be built as a generic runtime or (better) with some bundled JavaScript.

  1. build-bundled/ — the JS tree baked into the binary (JAB-035 jsrc pack); the binary requires from the bundle ONLY, so it runs anywhere:

    cmake -S . -B build-bundle -DCMAKE_BUILD_TYPE=Release \
        -GNinja -DJAB_JSRC=<path to js tree> -DJAB_BIN=<binary name> \
        -DQUICKJAB_JSRC_PACK=ON 
    ninja -C build-bundled quickjab
    
  2. build-no-bundle/ — a plain runtime, no pack:

    cmake -S . -B build-no-bundle -GNinja
    ninja -C build-no-bundle quickjab
    

Running

Running with no bundle (QJAB-002 require modes, first hit wins): an explicit script path (quickjab /abs/dir/main.js) pins require barewords to THAT script's dir; otherwise the first jsrc/ at or above the cwd is the base (plant a jsrc symlink to your JS tree). Tests: ctest --test-dir <builddir> -j16; the lite suites take the runtime via LITEJAB=<builddir>/bin/quickjab.

With bundle present, control goes to main.js.

About

A minimal js runtime with libdog bindings. Mostly intended to produce binaries with bundled JavaScript

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages