Ruby 3.2 Adds WebAssembly Support
Written by Kay Ewbank   
Thursday, 12 January 2023

Ruby 3.2 has been released with an initial port of WASI-based WebAssembly support and production-ready YJIT.

Ruby is a high-level language drawing on elements of Perl, Smalltalk, Eiffel, Ada, and Lisp and supporting multiple programming concepts to balance functional, dynamic and object oriented programming. Fans say it is fun to use as well as useful.


The WebAssembly System Interface (WASI) means you'll be able to run Ruby within web browsers and as modules inside larger applications, written in languages such as Java, Python or JavaScript. WASI is designed to be an effective compilation target for source languages such as C, C++, and Rust. The inclusion in Ruby means Ruby code should be able to be run on the web at near-native speed.

The Ruby team say that WASI and WebAssembly are missing some features to implement Fiber, exception, and GC because it’s still evolving, and also for security reasons. CRuby fills the gap by using Asyncify, which is a binary transformation technique to control execution in real life use. The developers have also built a VFS on top of WASI so Ruby apps can be packed into a single .wasm file to make distribution of Ruby apps a bit easier.

ruby yjit performance

The second main improvement to Ruby 3.2 is production-ready YJIT. CRuby already came with a JIT compiler known as MJIT, but YJIT is  a new JIT compiler built inside CRuby based on a Lazy Basic Block Versioning (LBBV) architecture. While this still isn't as fast as some independently re-implemented versions of Ruby such as TruffleRuby, it is near-100% compatibile with existing Ruby code. YJIT has been tested on production workloads for over a year and proven to be quite stable.

The YJIT 3.2 release is faster than 3.1, and has about two thirds less memory overhead. The developers say that overall YJIT is 41 percent faster on the geometric mean benchmark than the Ruby interpreter on yjit-bench.

Ruby 3.2 is available now.


More Information

Ruby Official Site

Related Articles

Ruby 3.1 Adds In-Process JIT Compiler

Ruby 3 Released Offering Three Times Better Performance

Ruby On Rails 7 Moves To No-Node Default

Fukuoka Ruby Award 2021 Prestigious Ruby Prize

Ruby 2.6 Adds JIT Compiler

Sorbet - Making Ruby Statically Typed

Ruby 2.5 Adds Support For Branch Coverage

Commercial Ruby Distro Enters Beta

Ruby On Rails Reaches 5.0

Ruby 2.3 Released

ActiveState Extends to Ruby, Node.js, Go and Lua


To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.


Amazon Ending Alexa Skills Payments

Amazon has told developers who are signed up to the Alexa Developer Rewards Program that their monthly payments will end at the end of June. The announcement follows a decision to end the program unde [ ... ]

The Experience AI Challenge

The Raspberry Pi Foundation in collaboration with Google DeepMind has announced the Experience AI Challenge. Its intention is to guide young people under the age of 18, and their mentors, through [ ... ]

More News

raspberry pi books



or email your comment to: