Skip to content

Comparing unsafe Rust vs Zig by writing a bytecode interpreter with GC in both langs

Notifications You must be signed in to change notification settings

zackradisic/rust-vs-zig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust vs. Zig

This is an experiment to evaluate Rust vs. Zig by writing a bytecode interpreter with GC in both languages and comparing them.

The interpreter implementation is from the Crafting Interpreters book.

I wrote a comprehensive summary of this experiment on my personal blog.

Rust implementation

This is in the loxide folder.

To build it:

# in the root project directory
make rust

# inside the rust folder
cargo build --release

To run the tests:

cargo test

# Run with miri to check for undefined behaviour
cargo miri test

Zig implementation

This is in the zlox folder.

To build it:

# in the root project directory
make zig

# inside the zlox folder
# run `zig build help` for options
zig build

To run the tests:

zig build test
zig-out/bin/zlox

Benchmarks

The benchmarks folder contains the code ("*.lox" files) the two interpreters run and the results of the benchmarks. The results are run using hyperfine.

About

Comparing unsafe Rust vs Zig by writing a bytecode interpreter with GC in both langs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published