---
title: "Exciting developments in Ruby parsing"
publication: "Ruby Weekly"
issue: 658
published_at: "2023-06-15"
canonical_url: "https://rubyweekly.com/issues/658"
---

Plus RubyConf 2023 news, self-hosted performance monitoring, reducing memory use with jemalloc, and Nicolas Cage doesn't want to attack your Rails app. |        

#​658 — June 15, 2023 

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

Together with [![Cloud66 logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_250,h_250/e_make_transparent/co_white,e_outline:7/ofjgwnua55tonrserpbl.png)](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-23-q2-3)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uggvb7mp9u9x6x1rpjbv.jpg)](https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/)  

[On Rewriting Ruby's Parser](https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser/) — The folks at Shopify have been working on a new parser for CRuby called YARP (Yet Another Ruby Parser). Gone is Bison and its parser generation approach (which doesn’t _really_ suit a language like Ruby) and in comes a flexible, hand written recursive descent parser. This post goes into a _lot_ of detail; the TLDR is YARP will be shipped as a library in Ruby 3.3 later this year. 

Kevin Newton (Shopify)   

[Automatically Find Memory Leaks in Native Gems](https://railsatscale.com/2023-06-08-automatically-find-memory-leaks-in-native-gems/) — [ruby_memcheck](https://github.com/Shopify/ruby_memcheck) uses Valgrind Memcheck under the hood to locate leaks in native code and has been used to find memory leaks in Nokogiri, gRPC, libxml2, and others. 

Peter Zhu   [![\](https://copm.s3.amazonaws.com/6bd34055.png)](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-23-q2-3) 

[Advanced Application Deployment Tool - Build. Deploy. Grow.](https://www.cloud66.com/frameworks/rails/?utm_source=-&utm_medium=-&utm_campaign=RubyWeekly-23-q2-3) — Deploy Rails applications hassle-free on any cloud and in any region with full database support, custom traffic rules, zero-downtime deployments, blue/green and canary releases, WAF, and more. Try it today for free, and get $100 in credits with the code:`RubyWeekly100` 

Cloud 66 sponsor   

▶[Ractor Reconsidered](https://www.youtube.com/watch?v=Id706gYi3wk) — Ruby core team member Koichi ‘ko1’ Sasada gave a 30-minute talk at RubyKaigi about Ruby 3.0’s [Ractors](https://ruby-doc.org/core-3.0.0/Ractor.html), considered why they’re not used very much, and what’s being done to improve the situation. 

Koichi Sasada   

[TruffleRuby 23.0 Released](https://medium.com/graalvm/whats-new-in-graalvm-languages-161527df3d76#951b) — A fast dynamically compiled JVM-based Ruby implementation that began as a project of the late [Chris Seaton.](https://chrisseaton.com/) It’s great to see a fresh release as part of a big development in Oracle’s GraalVM distribution. TruffleRuby gets faster, adopts Ruby 3.1.3 standards, uses less memory, and has been released under a new 'free' [GFTC license.](https://blogs.oracle.com/cloud-infrastructure/post/graalvm-free-license-oci) More in the [changelog](https://github.com/oracle/truffleruby/releases/tag/graal-23.0.0). 

Alina Yurenko    

- 💪 After a [_lot_ of work](https://github.com/rails/rails/pull/46594#issuecomment-1588662371), Rails head is now [compatible with Rack 3](https://github.com/rails/rails/pull/46594) and is expected to land in an eventual Rails 7.1 release. If you're curious why it was such a big deal: [here's how Rack 3 differs to Rack 2.](https://github.com/rack/rack/blob/main/UPGRADE-GUIDE.md)
- 📅 [RubyConf 2023](https://rubycentral.org/news/rubyconf-2023-san-diego/) is taking place in San Diego this November 13-15. Early bird registration [is open.](https://rubyconf.org/register)
- 💰 [The results](https://survey.stackoverflow.co/2023/) of _Stack Overflow_'s annual developer survey are a mixed bag for Ruby, being used by just 6% of the respondents, sitting in the middle of the ['admired and desired' rankings](https://survey.stackoverflow.co/2023/#section-admired-and-desired-programming-scripting-and-markup-languages), _but_ fourth in the list of [top paying techs.](https://survey.stackoverflow.co/2023/#section-top-paying-technologies-top-paying-technologies)
- 🏖 Kevin Murphy posted a [recap of Blue Ridge Ruby 2023](https://kevinjmurphy.com/posts/blue-ridge-ruby-2023-recap/); looks like a fun event.  

📕 Tutorials, Articles, and Videos  

[Deploying a Rails App with MRSK](https://greg.molnar.io/blog/deploying-a-rails-app-with-mrsk/) — [MRSK](https://mrsk.dev/) is a tool DHH unveiled earlier this year as a fresh way to deploy web apps (with Rails as the focus, naturally) using containers and Traefik to reverse proxy incoming requests. Or “Capistrano for Containers”, as he refers to it. 

Greg Molnar   

[Reducing Solidus Memory Usage with jemalloc](https://supergood.software/reducing-solidus-memory-usage-with-jemalloc/) — [Solidus](https://solidus.io/) is a Rails-based ecommerce platform and an engineer used to working on Solidus deployments decided to see what alternative malloc implementation [jemalloc](https://jemalloc.net/) could do. In short, reasonable improvement for ‘close to free.’ 

Nicholas Van Doorn   

[Application Performance Monitoring Built for Developers, by Developers](https://ter.li/u1hnro) — With proactive alerting, real-time insights, and 24/7 support, Scout catches performance issues before customers do. 

Scout APM sponsor   

[Making Sidekiq Retry Once Before Erroring](https://www.mikecoutermarsh.com/silencing-errors-from-noisy-sidekiq-jobs/) — How you can silence/mute the initial Sidekiq error, but still report any errors _after_ the first try. 

Mike Coutermarsh   

▶[Fortify Rails: Defending Your Rails Apps From Bad Actors](https://www.fastruby.io/blog/fortify-rails-security-webinar.html) — No, not Nicolas Cage (he’s fantastic, really), but botnets, folks who want to bring your app down, steal your data, etc. This is a 50 minute presentation of some high level ways to steer your app out of trouble, including some case studies. 

Ernesto Tagwerker   

[A Fly + PlanetScale + Rails Example Dockerfile](https://www.mikecoutermarsh.com/fly-planetscale-rails-example-dockerfile/) — It literally is just a Dockerfile but if this is a stack you’re using or that you want to try, other people’s results can be a real timesaver.. 

Mike Coutermarsh   

▶[7 Ruby Feature Flag Products Compared](https://www.youtube.com/watch?v=krMGitoo94A) — Also [in text form.](https://prefab.cloud/blog/ruby-feature-flag-tools-compared/) 
Prefab   

[Practical Stimulus: How to Toggle CSS Classes](https://www.akshaykhot.com/practical-stimulus-how-to-toggle-css-classes/) 
Akshay Khot   

[How Module Autoloading Works in Ruby and Rails](https://www.akshaykhot.com/autoloading-modules-in-rails/) 
Akshay Khot  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rabvs95927jycwzowndl.jpg)](https://github.com/drwl/annotaterb)  

[AnnotateRb: Add Annotations to Rails Models and Route Files](https://github.com/drwl/annotaterb) — If this sounds familiar, it’s a fork of [AnnotateModels](https://github.com/ctran/annotate_models) focused on making some big changes (around refactoring and best practices) under the hood, plus bug fixes, that felt too substantial to dump upon the original. 

Andrew W. Lee   

[FactoryTrace 1.1: A Tool to Maintain FactoryBot Factories and Traits](https://github.com/djezzzl/factory_trace) — If you’re a [FactoryBot](https://github.com/thoughtbot/factory_bot) user, FactoryTrace can detect unused factories and traits for you to clean up. 

Evgeniy Demin   

[Fixed Price Monthly Code Maintenance for Rails Apps](https://reinteractive.com/service/code-care) — No time to do those small but critical updates? CodeCare will take care of necessary tweaks, bug fixes, upgrades and ongoing improvements for your app. 

reinteractive / CodeCare sponsor   

[Chaskiq 2.0: A Rails + React Powered Conversational Marketing Platform](https://github.com/chaskiq/chaskiq) — Imagine an open source, self hostable version of Drift or Intercom, say. An interesting example of a large scale, open source Rails 7 + Ruby 3.2 app. If you’re more interested as a potential _user_, a big recent development is the [addition of a ‘marketplace’](https://blog.chaskiq.io/introducing-chaskiq-appstore/) that lets you add plugins to your instance. 

ChaskiqHQ   

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/itjtm5wy3b85fne89hi6.jpg)](https://github.com/igorkasyanchuk/rails_performance)  

[Rails Performance: Self-Hosted Performance Monitoring](https://github.com/igorkasyanchuk/rails_performance) — If you don’t need something as complete as a cloud performance monitoring service, this gives you the core essentials in self-hosted form with real time request monitoring, slow request monitoring, response time metrics, etc. 

Igor Kasyanchuk    

Jobs  

[Full Stack Engineer, Ruby & React (’s-Hertogenbosch, Netherlands)](https://jobs.floryn.com/o/fullstack-software-engineer-shertogenbosch) — We help companies with fast & simple business loans. Own projects, work closely with stakeholders. No suits, just impactful code. 
Floryn   

[Find Ruby Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired      

- [ViewComponent 3.2](https://viewcomponent.org/)
 ↳ Reusable, encapsulated view components for Rails.
- [Panko 0.8](https://github.com/panko-serializer/panko_serializer)
 ↳ High-perf JSON serializer for ActiveRecord and Ruby objects.
- [Lamby 4.3](https://github.com/rails-lambda/lamby)
 ↳ AWS Lambda web adapter for Rack apps.
- [Passenger 6.0.18](https://blog.phusion.nl/2023/06/12/passenger-6-0-18/)
- [RubyGems 3.4.14](https://blog.rubygems.org/2023/06/12/3.4.14-released.html)
- [Twilio-Ruby API Client 6.1](https://github.com/twilio/twilio-ruby)
- [Rack 3.0.8](https://github.com/rack/rack/releases/tag/v3.0.8)
- [Sidekiq 7.1.2](https://github.com/sidekiq/sidekiq/blob/main/Changes.md#712)
- [RubyMine 2023.2 EAP4](https://blog.jetbrains.com/ruby/2023/06/rubymine-2023-2-eap4-new-ui-improvements-extended-rbs-support-and-more/)         

Curated by [Peter Cooper](https://twitter.com/cooperx86) 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/).
