

(Remember: Ruby is a scripting language, and only the interpreter is compiled to Wasm. This exposes all of Ruby’s supporting files. Note that we need to mount several sets of files: lib. The spin.toml file for Ruby is more complex than most: spin_version = "1" Ruby is a scripting language, which means it will need to load a number of scripts (ours plus all of the built-in libraries) off of its filesystem. You can verify this works by using ruby lib/hello.rb. Inside of lib, we can create hello.rb: puts "content-type: text/plain" $ mkdir libĪt this point, our directory should look like this: $ tree -L 2 -a -d gem/, though we won’t use it in this example. Now create a local lib dir where we will put our own source. Now fetch a copy of the Ruby source from the official releases.įor this example, we are downloading the version,īut one of the smaller versions works just as well. Start out with a new directory: $ mkdir hello-ruby

At this stage, users of the Wasm version will need to understand how Ruby loads its dependenciesĪll of our examples follow a documented pattern using common tools.Spin (and Wagi) need extra configuration to simulate a command line for Ruby.The size of the interpreter is large, and can take a moment to start.(We suspect there might be a way to use C extensions, but we haven’t figured it out) It is possible to use gems that do not have C code.The toolchain has been very thoughtfully developed.The example section below illustrates usage. For example, to run the Ruby interpreter, you can use wasmtime.

Inside of the package, you will find a full distribution of Ruby: $ tree -L 3 To use the official Ruby Wasm, download a prebuilt binary and decompress the downloaded archive. In this guide, we focus on the official release of Ruby ( ruby.wasm). Rlang (a subset of Ruby) can run Wasm32 code in a wasm32-wasi runtime like wasmtime. In addition to the official Ruby distribution, Artichoke is a Rust implementation of Ruby that can compile to WebAssembly ( wasm32-unknown). It supports WASI and a wide array of features. Ruby now has multiple WebAssembly-based projects, including an official release of CRuby. Ruby is one of the most popular scripting languages.įamous for the Rails framework, it has been a stalwart for web developers. ← Back to Language Index Ruby in WebAssembly
