Artichoke is an experimental implementation of the Ruby programming language written primarily in Rust, aiming to provide a modern, embeddable, and portable Ruby runtime. It is designed to be compatible with MRI Ruby while exploring new approaches to performance, safety, and execution models through Rust’s systems programming capabilities. One of its key goals is to enable Ruby to run in environments where traditional implementations struggle, including WebAssembly and sandboxed or untrusted execution contexts. Artichoke features a modular architecture composed of multiple Rust crates, allowing developers to customize and embed the interpreter into their own applications. It includes tools such as a command-line interpreter and an interactive REPL, making it usable both as a runtime and a development environment. The project emphasizes experimentation with advanced features like alternative garbage collection strategies, parallel execution, and ahead-of-time compilation.
Features
- Ruby interpreter implemented in Rust with focus on safety and performance
- Designed for compatibility with MRI Ruby and existing Ruby codebases
- Supports WebAssembly and sandboxed execution environments
- Modular architecture composed of reusable Rust crates
- Includes CLI runtime and interactive REPL for development
- Enables embedding Ruby into applications with customizable runtime behavior