Skip to content
πŸ’Ž Artichoke is a Ruby made with Rust
Rust Ruby C Other
Branch: master
Clone or download
Latest commit b860581 Sep 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Run rubocop linter from workspace root Sep 5, 2019
.idea Addressing feedback May 18, 2019
artichoke-backend Remove Vec from load_impl Sep 17, 2019
artichoke-core artichoke-core Load takes filename as a Path Sep 8, 2019
artichoke-frontend Update airb to print RUBY_DESCRIPTION and ARTICHOKE_COMPILER_VERSION Sep 7, 2019
artichoke-vfs Update rand Aug 31, 2019
assets Add redirect to artichoke.run Aug 11, 2019
doc Use backticks around crate names consistently Aug 31, 2019
mruby-sys Only include wasm headers and function visibility for wasm32-unknown-… Sep 16, 2019
scripts Sync find command in format-c.sh with format-text.sh Sep 17, 2019
spec-runner Run rubocop linter from workspace root Sep 5, 2019
.editorconfig Add Dockerfile editor config Aug 18, 2019
.eslintignore Only prettier ignore subdirectories of vendor Aug 20, 2019
.gitattributes [skip ci] mark spec-runner/spec as vendored Jun 24, 2019
.gitignore Rename guide/ to doc/ Jul 28, 2019
.prettierignore Only prettier ignore subdirectories of vendor Aug 20, 2019
.rubocop.yml Run rubocop linter from workspace root Sep 5, 2019
.ruby-version Bump ruby version May 28, 2019
CONTRIBUTING.md Remove reference to nightly Rust in toolchain setup Aug 31, 2019
Cargo.lock Update airb to print RUBY_DESCRIPTION and ARTICHOKE_COMPILER_VERSION Sep 7, 2019
Cargo.toml Remove artichoke-wasm Aug 11, 2019
Gemfile Run rubocop linter from workspace root Sep 5, 2019
Gemfile.lock Run rubocop linter from workspace root Sep 5, 2019
LICENSE Initial commit Apr 7, 2019
README.md Update README.md Sep 2, 2019
package.json Unbreak format-text.sh Sep 8, 2019
rust-toolchain Build with stable Rust 1.37.0 Aug 19, 2019
yarn.lock Regenerate yarn lockfile Aug 29, 2019

README.md

Artichoke Ruby

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

Artichoke is a platform for building MRI-compatible Ruby implementations. Artichoke provides a Ruby runtime implemented in Rust that can be loaded into many VM backends. Rubies implemented with Artichoke will be source and C API compatible with MRI Ruby 2.6.3.

Try Artichoke


Artichoke Ruby Wasm Playground

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, you can set up a Rust toolchain and launch an interactive Artichoke shell with:

cargo run -p artichoke-frontend --bin airb

Design and Goals

Artichoke is designed to enable experimentation. The top goals of the project are:

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. Good first issues are labeled E-easy.

Discussion

If you'd like to engage in a discussion outside of GitHub, you can join Artichoke's public Discord server.

You can’t perform that action at this time.