ajnirp / artichoke

πŸ’Ž Artichoke is a Ruby made with Rust

Home Page:https://artichoke.github.io/artichoke/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Artichoke Ruby

CircleCI Core documentation Virtual filesystem documentation mruby backend documentation mruby-sys documentation

Artichoke is a Ruby implementation written in Rust. Artichoke aspires to be compatible with Ruby 2.6.3.

Why Artichoke?

Artichoke is a work-in-progress. When functional, Artichoke will improve upon MRI in the following ways:

Artichoke will deviate from MRI in the following ways:

  • The only supported encodings are UTF-8, maybe UTF-8, and binary.
  • Ruby source files are always interpreted as UTF-8.

ruby/spec

Artichoke intends to pass 100% of ruby/spec with the exception of specs for non-UTF-8 encodings. To view current progress on ruby/spec compliance, see scripts/spec-compliance.sh or the tracking milestones for ❌ language, ❌ Core, and ❌ Standard Library.

Try Artichoke

You can try Artichoke in your browser. The Artichoke Playground runs a WebAssembly build of Artichoke.

If you would prefer to run a local build, set up a Rust toolchain and launch an interactive Artichoke shell with:

cargo run -p artichoke-frontend --bin airb

Contributing

Artichoke aspires to be a Ruby 2.6.3-compatible implementation of the Ruby programming language. There is lots to do.

If Artichoke does not run Ruby source code in the same way that MRI does, it is a bug and we would appreciate if you filed an issue so we can fix it.

If you would like to contribute code πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’», find an issue that looks interesting and leave a comment that you're beginning to investigate. If there is no issue, please file one before beginning to work on a PR.

About

πŸ’Ž Artichoke is a Ruby made with Rust

https://artichoke.github.io/artichoke/

License:MIT License


Languages

Language:Rust 63.9%Language:Ruby 32.9%Language:C 1.0%Language:HTML 0.8%Language:Shell 0.7%Language:JavaScript 0.5%Language:C++ 0.1%