A work-in-progress Ruby compiler written in Ruby and C++, featuring an ahead-of-time compiler and incremental REPL.
Natalie is a work-in-progress Ruby compiler that translates Ruby code into native executables using C++ and gcc/clang as the backend. It solves the performance limitations of interpreted Ruby by offering ahead-of-time compilation while maintaining language compatibility through rigorous spec testing.
Ruby language enthusiasts, compiler developers, and contributors interested in low-level language implementation and exploring alternative Ruby runtimes.
Developers choose Natalie for its unique approach of being written mostly in Ruby itself, its incremental REPL for interactive development, and its goal of providing a compiled, performant alternative to MRI without sacrificing spec compliance.
a work-in-progress Ruby compiler, written in Ruby and C++
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Compiles Ruby to standalone executables using C++ and gcc/clang, enabling potential performance gains over interpreted Ruby, as shown in the compilation examples.
Offers a REPL that performs incremental compilation, allowing interactive development without full recompiles, demonstrated in the demo screencast.
Uses community ruby/spec tests to ensure compatibility with MRI, providing a rigorous framework for language correctness as features are added.
Encourages contributions with beginner-friendly issues, hacking session videos, and clear documentation, lowering the barrier to entry for new developers.
The project admits it's a work-in-progress with many features unimplemented, making it unsuitable for real-world applications beyond experimentation.
Requires multiple prerequisites like autoconf, automake, and a system Ruby with dev headers, leading to a cumbersome and error-prone installation process.
Only supports macOS and Ubuntu Linux, excluding Windows and other platforms, which restricts its usability in cross-platform development scenarios.
Relies on a system Ruby (MRI) to host the compiler, adding an extra layer of complexity and potential version conflicts during setup.