Installation
cargo install loxcraft --locked
Features
- Bytecode compiler + garbage collected runtime
- Online playground, via WebAssembly (try it out!)
- REPL
- Syntax highlighting, via tree-sitter-lox
- IDE integration, via the Language Server Protocol
Screenshots
Benchmarks
Time taken to execute the benchmark suite (lower is better):
Benchmark | loxcraft | clox | jlox |
---|---|---|---|
binary_tree | 8.29s | 8.13s | 26.41s |
equality_1 | 7.17s | 7.73s | 10.01s |
equality_2 | 8.39s | 9.66s | 14.30s |
fib | 10.90s | 10.09s | 21.89s |
instantiation | 10.83s | 12.84s | 14.24s |
invocation | 9.93s | 8.93s | 15.77s |
method_call | 11.01s | 9.12s | 62.03s |
properties | 10.05s | 5.98s | 69.77s |
string_equality_1 | 7.76s | 7.66s | 34.08s |
string_equality_2 | 10.78s | 10.52s | 36.25s |
trees | 9.97s | 8.72s | 72.87s |
zoo | 10.67s | 6.18s | 100.10s |
Benchmarks were run with the following configuration:
- Device: Apple MacBook Pro (16-inch, 2021)
- Processor: M1 Pro
- RAM: 16 GiB
- OS: macOS Ventura 13.2
- Rust: 1.66.1
- Apple Clang: 14.0.0
- Oracle JDK: 19.0.2