---
title: "A Ruby 3.2 Extravaganza"
publication: "Ruby Weekly"
issue: 635
published_at: "2023-01-05"
canonical_url: "https://rubyweekly.com/issues/635"
---

Plus how to write a Ruby extension in Zig, tenderlove's take on 2022, and how to program the VCR. |        

#​635 — January 5, 2023 

[Read on the Web](https://rubyweekly.com/issues/635)  

Together with [![Hint\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700,h_100/e_make_transparent/co_white,e_outline:7/u8bplpcutrnufzghf00x.png)](https://www.upgraderails.com)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ldwd2mwilqdslkm9fmrm.jpg)](https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/)  

[Ruby 3.2.0 Released](https://www.ruby-lang.org/en/news/2022/12/25/ruby-3-2-0-released/) — It’s here! As is the tradition, the latest release of Ruby arrived on Christmas Day (but we took a couple of weeks off). 3.2 is [from another dimension](https://tomaszs2.medium.com/ruby-3-2-0-is-from-another-dimension-5249e3186ec9), allegedly, and packed with lots of cool stuff: 

- The `Data` class is a new core class for representing simple immutable value objects. It was [originally proposed](https://bugs.ruby-lang.org/issues/16122) by Victor Shepelev who [has written about its design here.](https://zverok.space/blog/2023-01-03-data-initialize.html)
- YJIT is no longer experimental and, as we'll see later, yields a nice performance boost in numerous scenarios.
- An initial level of WASI-based WebAssembly support. Ruby running on WASM-based serverless platforms? Yes. Running in the browser? Yes. Expect to see more of this in 2023.
- As part of the WASM support, [there's a VFS built on top of WASI](https://github.com/kateinoigakukun/wasi-vfs/wiki/Getting-Started-with-CRuby) so apps can be packed into a single `.wasm` file.
- Extra protections against inefficient regexes, including `Regexp.timeout`
- Improved error highlighting and suggestions.
- Anonymous rest and keyword rest arguments can be passed as arguments.
- The [find pattern](https://bugs.ruby-lang.org/issues/18585) is no longer experimental. 

Yui Naruse   [![\](https://copm.s3.amazonaws.com/f3c967c1.png)](https://www.upgraderails.com) 

[Rails Upgrades You Can Depend On](https://www.upgraderails.com) — Upgrade Ruby & Rails confidently, without disrupting ongoing feature development or production operations. Have you ever wondered how Big Rails™ companies like Shopify or GitHub upgrade major versions with zero downtime? [Click here to find out how](https://www.upgraderails.com). 

upgraderails․com sponsor   

[Tenderlove's 2022 Ruby and Rails Reflections and Predictions](https://shopify.engineering/ruby-rails-year-in-review-2022) — A late Christmas treat! Ruby and Rails core team member (and generally lovely chap) Aaron Patterson recaps his favorite Ruby and Rails updates from 2022 and issues some hopeful predictions for this year. 

Aaron 'tenderlove' Patterson   

🚂 Over on the official Rails blog, Greg Molnar has also presented [This Year in Rails, a summary of 2022](https://rubyonrails.org/2022/12/30/this-week-in-rails-this-year-in-rails-a-summary-of-2022-42e99b0f) if you want to catch up with the last year in Railsland.  

**QUICK BITS** 

- 📅 Want to get some Ruby events on your calendar for 2023? [RubyKaigi](https://rubykaigi.org/2023/) is in Japan on May 11-13, [RailsConf](https://railsconf.org/) is in Atlanta, GA on April 24-26, and [RubyConf AU](https://www.rubyconf.org.au/2023) is in Melbourne, Australia on Feb 15-17.
- 🎤 Drew Bragg [▶️ has a fun hour-long interview](https://podcast.drbragg.dev/episodes/episode-14-kevin-newton/) with Ruby internals expert Kevin Newton discussing the new YARP Ruby parser amongst other things.
- Talking of Kevin Newton, he finished his [Advent of YARV series](https://kddnewton.com/2022/11/30/advent-of-yarv-part-0) – it's basically a 24 episode tour of the CRuby virtual machine.
- _RailsApps․org_ was a popular site with Rails starter scripts, install instructions, and more, but it's now 'resting in peace' - [here's its obituary](https://blog.railsapps.org/post/705333874478235648/railsapps-obituary).
- The latest RubyGems ([v3.4.0](https://blog.rubygems.org/2022/12/24/3.4.0-released.html)) requires Ruby 2.6+ but now cleans up intermediate files after installing extensions, plus it'll tell you when it's out of date.  

📕 Tutorials, Articles & Features 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/c1v5tgaeintqyu7l2eaz.jpg)](https://gettalong.org/blog/2022/benchmarking-rubies.html)   

[Benchmarking Ruby 2.6 to 3.2](https://gettalong.org/blog/2022/benchmarking-rubies.html) — Thomas runs his annual Ruby benchmarks using HexaPDF, Kramdown, and geom2d. The results are encouraging, especially when YJIT is enabled in Ruby’s latest version. 

Thomas Leitner   

[Benchmarking Ruby 3.2 with YJIT](https://www.solnic.dev/p/benchmarking-ruby-32-with-yjit) — More 3.2 benchmarking, this time using Hanami and some of the dry-rb gems with a somewhat unexpected result that should make you happy about how Ruby’s performance is trending. 

Peter Solnica   

[Ready for Ruby 3.2? No Time to Upgrade? Let the Experts Do It for You](https://www.fastruby.io/roadmap?utm_source=cooperpress&utm_medium=ruby-weekly&utm_campaign=jan-5-23&utm_term=ship-it&utm_content=ruby-3-2) 

FastRuby.io | Ruby and Rails Upgrade Services sponsor   

['I Wrote a Ruby Extension in Zig'](https://katafrakt.me/2022/12/25/ruby-extension-zig/) — If Rust just doesn’t vibe with you as a systems language, [Zig](https://ziglang.org/) is an interesting, more C/C++-oriented alternative. 

Paweł Świątkowski   

[Reliving Your Happiest HTTP Interactions with VCR](https://shopify.engineering/how-to-program-your-vcr) — VCR is a Ruby library that records HTTP interactions and plays them back to your test suite in a more deterministic way. 

Stephen Prater   

[Be Careful with Time Durations in Rails](https://www.honeybadger.io/blog/activesupport-duration-helpers/) — ActiveSupport offers some great time and date helpers, like `3.months.from_now`, but they can surprise you (in a bad way) if you’re not aware of how they work, so start the new year by handling months correctly. 

Jonathan Miles (Honeybadger)   

[Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut](https://shortcut.com/?utm_source=cooperRubyWeekly&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=fourletter) 

Shortcut (formerly Clubhouse.io) sponsor   

▶[Discussing How We Hire Junior Developers with Andy Croll](https://www.therubyonrailspodcast.com/451) 

The Ruby on Rails Podcast podcast   

[How to Alias Your Mastodon Username to Your Own Domain with Jekyll](https://t.co/9JJnhX8Tmz) 
Phil Nash  

🛠 Code & Tools  

[Announcing the Ronin 2.0.0 Open Beta](https://ronin-rb.dev/blog/2023/01/01/announcing-the-ronin-2-0-0-open-beta.html) — Ronin, a “toolkit for security research and development” has undergone a “Big Refactor” and is now asking for Rubyists to kick the tires through the month of January. 

Hal Brodigan   

- [Opal 1.7](https://github.com/opal/opal)
 ↳ Ruby to JavaScript transpiler.
- [Faker 3.1](https://github.com/faker-ruby/faker)
 ↳ Library to generate fake data on demand.
- [Xsv 1.2](https://github.com/martijn/xsv)
 ↳ Pure Ruby XLSX (Excel) parser.   

[💓 Can Your Error Tracker Monitor Heartbeats? 💓](https://www.honeybadger.io/tour/cron-job-heartbeat-monitoring/?utm_source=rubyweekly&utm_medium=email&utm_campaign=ruby) — Honeybadger also monitors your cron jobs, services or *anything* else you can think of so they don't silently disappear. 

Honeybadger sponsor   

- [Spidr 0.7](https://github.com/postmodern/spidr)
 ↳ Versatile Ruby web spidering library.
- [Ruby Argon2 2.2](https://github.com/technion/ruby-argon2)
 ↳ FFI bindings for Argon2 password hashing.
- [CSV Lint 1.1](https://github.com/Data-Liberation-Front/csvlint.rb)
 ↳ CSV validation library.
- [Rambulance 2.3](https://github.com/yuki24/rambulance)
 ↳ Dynamically render Rails error pages. 

[Jekyll Sass Converter 3.0](https://jekyllrb.com/news/2022/12/21/jekyll-sass-converter-3.0-released/)
 [Hanami 2.0.2](https://hanamirb.org/blog/2022/12/25/hanami-202/)
 [Puma 6.0.2](https://github.com/puma/puma)
 [RubyMine 2022.3.1](https://blog.jetbrains.com/ruby/2022/12/rubymine-2022-3-1-is-released/)
 [RubyGems 3.4.0](https://blog.rubygems.org/2022/12/24/3.4.0-released.html) through [3.4.2](https://blog.rubygems.org/2023/01/01/3.4.2-released.html)     

Jobs  

[Curious How Great Products Get Made?](https://www.linkedin.com/jobs/view/3411948952/) — Come help us craft the operating system for modern manufacturing. 
Wherefour   

[Land Your Next Rails Job Without the Hassle ✨](https://railsdevs.com/?ref=ruby-weekly) — Create your profile and have companies reach out to YOU. ❤️ Get hired on RailsDevs, the open source REVERSE job board for Rails developers. 
RailsDevs           

Curated by [Peter Cooper](https://x86.social/@cooper) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom   

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
