README.md
June 26, 2026 ยท View on GitHub
GiavaScript
GiavaScript is an open-source, cross-platform JavaScript runtime implemented in Crystal.
It intentionally does not aim for full ECMAScript compliance. Check the reference docs before relying on specific language features.
Quick start
Prerequisites
- Crystal 1.19.1 or later
- Python 3 (only needed to regenerate
reference/REFERENCE.md)
Install the CLI
git clone https://github.com/memburg/GiavaScript.git
cd GiavaScript
./install.sh
This installs the giavascript binary to /usr/local/bin by default.
Install to a user-local path instead of /usr/local/bin:
INSTALL_DIR="$HOME/.local/bin" ./install.sh
Make sure your install directory is on PATH.
CLI usage
Start the REPL
giavascript
REPL commands:
:quitexits the REPL.
Run a file
giavascript path/to/program.js
Behavior to expect:
- Empty files return an error.
- If a runtime error occurs, messages are written to standard error.
- Process exit code is
1when anyError:message is produced; otherwise0.
Run without installing
crystal run src/giavascript_cli.cr -- examples/templateLiterals.js
Development workflow
Install dependencies and run tests:
shards install
crystal spec
Regenerate consolidated reference docs after editing files under reference/:
python3 scripts/generate_reference.py
CI verifies that reference/REFERENCE.md matches generated output.
JavaScript feature reference
Examples
Sample programs are in examples/:
examples/templateLiterals.js- string interpolation and expression formattingexamples/arrayFlatFlatMapSplice.js- array manipulation methodsexamples/dateBasics.js- Date object usageexamples/functionExpressionsAndOperators.js- function expressions and operatorsexamples/multilineMethodChaining.js- method chaining patternsexamples/objectKeysValuesEntries.js- Object.keys, values, entriesexamples/random.js- random number generationexamples/tryCatchFinally.js- error handling with try/catch/finally
Run any example with:
giavascript examples/templateLiterals.js
Contributing
See CONTRIBUTING.md for setup, test, and documentation update guidelines.