logo for Natalie Natalie, a Ruby Implementation

Natalie is a work-in-progress Ruby implementation, compiled to C++, by Tim Morgan and contributors.

What can Natalie do?

small demo

Natalie can already run quite a few small scripts, which you can find in the examples directory: a small program that brute forces arithmetic for a math game, the ubiquitous recursive Fibonacci script, a GTK hello world example, and so on.

Natalie hosts this very website, with this little program, compiled to a binary and running in a Docker container. That's neat!

The biggest chunk of idiomatic Ruby code that Natalie has compiled is the Natalie compiler itself (which is written in Ruby), so that's pretty cool! If you've ever wanted to play with a self-hosted compiler, Natalie might be a fun project to get your feet wet!

Helping Out

You can help with the development of Natalie! There are many issues documented on the GitHub project if you want some direction. Or better yet, you may want to try Natalie on a script of your own and see what is broken. Then fix it! :-)

Is Natalie Ruby yet?

Based on the specs from github.com/ruby/spec and as of today we have:

0 tests passing
0 tests failing
0 tests erroring
0 test files not compiling*
0 test files crashing*
0 test files timing out*

*Test files represent many tests, so the number of individual tests we're missing for these groups is much larger. :-(

A more detailed overview about each individual spec and it's errors can be found here.