mruby 3.4.0
(mruby.org)
We are announcing the first stable release of mruby 3.4 series - mruby 3.4.0.
We are announcing the first stable release of mruby 3.4 series - mruby 3.4.0.
RubyKaigi: Empowering Developers with HTML-Aware ERB Tooling
(speakerdeck.com)
ERB tooling has lagged behind modern web development needs, especially with the rise of Hotwire and HTML-over-the-wire. Discover a new HTML-aware ERB parser that unlocks advanced developer tools like formatters, linters, and LSP integrations, enhancing how we build and ship HTML in our Ruby applications.
ERB tooling has lagged behind modern web development needs, especially with the rise of Hotwire and HTML-over-the-wire. Discover a new HTML-aware ERB parser that unlocks advanced developer tools like formatters, linters, and LSP integrations, enhancing how we build and ship HTML in our Ruby applications.
Show HN: I built a Ruby gem that handles memoization with a ttl
(github.com/mishalzaman)
MemoTTL is a thread-safe memoization utility for Ruby that supports TTL (Time-To-Live) and LRU (Least Recently Used) eviction.
MemoTTL is a thread-safe memoization utility for Ruby that supports TTL (Time-To-Live) and LRU (Least Recently Used) eviction.
Blogging with Ruby, Middleman and Tailwind CSS
(harrisonbroadbent.com)
You probably haven’t heard of Middleman, a Ruby static site generator.
You probably haven’t heard of Middleman, a Ruby static site generator.
Ruby: Proposal to Upstream ZJIT
(ruby-lang.org)
For the past 3 months, the YJIT team at Shopify has been working on a next-generation Ruby JIT, which we refer to as ZJIT. This new compiler is currently being developed in a private fork, with the hope that we can eventually upstream it into ruby/ruby. Maxime Chevalier-Boisvert will give a talk at RubyKaigi 2025 to officially announce the project to the Ruby community and the broader public.
For the past 3 months, the YJIT team at Shopify has been working on a next-generation Ruby JIT, which we refer to as ZJIT. This new compiler is currently being developed in a private fork, with the hope that we can eventually upstream it into ruby/ruby. Maxime Chevalier-Boisvert will give a talk at RubyKaigi 2025 to officially announce the project to the Ruby community and the broader public.
JRuby 10 released with support for Ruby 3.4
(jruby.org)
The JRuby community is pleased to announce the release of JRuby 10.0.0.0.
The JRuby community is pleased to announce the release of JRuby 10.0.0.0.
MonkeysPaw – A prompt-driven web framework in Ruby
(worksonmymachine.substack.com)
Meet MonkeysPaw: a web framework where all the pages are prompts and what you see is whatever the LLM thinks you meant. Welcome to the first installment of “Works on Your Machine” where I’m sharing things that have graduated beyond just working on my machine.
Meet MonkeysPaw: a web framework where all the pages are prompts and what you see is whatever the LLM thinks you meant. Welcome to the first installment of “Works on Your Machine” where I’m sharing things that have graduated beyond just working on my machine.
RubyUI (Former PhlexUI): Ruby Gem for RubyUI Components
(github.com/ruby-ui)
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.
Ruby makes advanced CLI options easy
(searls.co)
If you're not a "UNIX person", the thought of writing a command line application can be scary and off-putting.
If you're not a "UNIX person", the thought of writing a command line application can be scary and off-putting.
The Gang of Four is wrong and you don't understand delegation (2012)
(saturnflyer.com)
The Gang of Four got it wrong. Ruby's standard library has it wrong. Rails has it wrong.
The Gang of Four got it wrong. Ruby's standard library has it wrong. Rails has it wrong.
Exploring Ruby Ractors – I paid for for 10 cores I'm gonna use 10 cores
(jpterry.com)
“I paid for 10 cores, I’m gonna use 10 cores!”
“I paid for 10 cores, I’m gonna use 10 cores!”
Ruby, Ractors, and lock-free data structures
(iliabylich.github.io)
This story is about concurrent data structures in the context of Ruby. The goal here is to demonstrate how true parallelism can be achieved with global mutable state (which at the time of writing, is not supported by built-in Ruby primitives).
This story is about concurrent data structures in the context of Ruby. The goal here is to demonstrate how true parallelism can be achieved with global mutable state (which at the time of writing, is not supported by built-in Ruby primitives).
How to create value objects in Ruby – the idiomatic way
(ghinda.com)
When writing Ruby OOP, a typical pattern might be to create an object to group multiple values together meaningfully and sometimes also add some extra methods (computed properties, predicates, representations, …) to allow the object to respond to various situations.
When writing Ruby OOP, a typical pattern might be to create an object to group multiple values together meaningfully and sometimes also add some extra methods (computed properties, predicates, representations, …) to allow the object to respond to various situations.
TruffleRuby 24.2.0
(github.com/oracle)
TruffleRuby is a high-performance implementation of the Ruby programming language.
TruffleRuby is a high-performance implementation of the Ruby programming language.
How to create value objects in Ruby – the idiomatic way
(ghinda.com)
When writing Ruby OOP, a typical pattern might be to create an object to group multiple values together meaningfully and sometimes also add some extra methods (computed properties, predicates, representations, …) to allow the object to respond to various situations.
When writing Ruby OOP, a typical pattern might be to create an object to group multiple values together meaningfully and sometimes also add some extra methods (computed properties, predicates, representations, …) to allow the object to respond to various situations.
Sign in as anyone: Bypassing SAML SSO authentication with parser differentials
(github.blog)
Critical authentication bypass vulnerabilities (CVE-2025-25291 + CVE-2025-25292) were discovered in ruby-saml up to version 1.17.0. Attackers who are in possession of a single valid signature that was created with the key used to validate SAML responses or assertions of the targeted organization can use it to construct SAML assertions themselves and are in turn able to log in as any user.
Critical authentication bypass vulnerabilities (CVE-2025-25291 + CVE-2025-25292) were discovered in ruby-saml up to version 1.17.0. Attackers who are in possession of a single valid signature that was created with the key used to validate SAML responses or assertions of the targeted organization can use it to construct SAML assertions themselves and are in turn able to log in as any user.
OmniAI: A unified Ruby API for integrating with AI providers
(github.com/ksylvest)
OmniAI provides a unified Ruby API for integrating with multiple AI providers, including Anthropic, DeepSeek, Google, Mistral, and OpenAI. It streamlines AI development by offering a consistent interface for features such as chat, text-to-speech, speech-to-text, and embeddings—ensuring seamless interoperability across platforms. Switching between providers is effortless, making any integration more flexible and reliable.
OmniAI provides a unified Ruby API for integrating with multiple AI providers, including Anthropic, DeepSeek, Google, Mistral, and OpenAI. It streamlines AI development by offering a consistent interface for features such as chat, text-to-speech, speech-to-text, and embeddings—ensuring seamless interoperability across platforms. Switching between providers is effortless, making any integration more flexible and reliable.
Matching Regexps 200 Times Faster
(eregon.me)
You might have seen @byroot’s excellent blog post series on optimizing the json gem. From the first blog post it’s clear most of the time for generating JSON is spent in generate_json_string() and specifically in convert_UTF8_to_JSON(), i.e., in converting Ruby Strings to JSON Strings.
You might have seen @byroot’s excellent blog post series on optimizing the json gem. From the first blog post it’s clear most of the time for generating JSON is spent in generate_json_string() and specifically in convert_UTF8_to_JSON(), i.e., in converting Ruby Strings to JSON Strings.
Sign in as anyone: Bypassing SAML SSO authentication with parser differentials
(github.blog)
Critical authentication bypass vulnerabilities (CVE-2025-25291 + CVE-2025-25292) were discovered in ruby-saml up to version 1.17.0. Attackers who are in possession of a single valid signature that was created with the key used to validate SAML responses or assertions of the targeted organization can use it to construct SAML assertions themselves and are in turn able to log in as any user.
Critical authentication bypass vulnerabilities (CVE-2025-25291 + CVE-2025-25292) were discovered in ruby-saml up to version 1.17.0. Attackers who are in possession of a single valid signature that was created with the key used to validate SAML responses or assertions of the targeted organization can use it to construct SAML assertions themselves and are in turn able to log in as any user.
RubyLLM: A delightful Ruby way to work with AI
(github.com/crmne)
A delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby code.
A delightful Ruby way to work with AI. No configuration madness, no complex callbacks, no handler hell – just beautiful, expressive Ruby code.
Show HN: RubyLLM 1.0 – A Beautiful Ruby Way to Work with AI
(rubyllm.com)
A delightful Ruby way to work with AI through a unified interface to OpenAI, Anthropic, Google, and DeepSeek.
A delightful Ruby way to work with AI through a unified interface to OpenAI, Anthropic, Google, and DeepSeek.
ZJIT: Building a Next Generation Ruby JIT
(rubykaigi.org)
YJIT can make Ruby code run faster, but this is a balancing act, because the JIT compiler itself must consume both memory and CPU cycles to compile and optimize your code while it is running.
YJIT can make Ruby code run faster, but this is a balancing act, because the JIT compiler itself must consume both memory and CPU cycles to compile and optimize your code while it is running.
OmniAI 2.0: An LLM-Agnostic Ruby Library
(ksylvest.com)
Today marks the release of OmniAI 2.0. 2.0 represents a significant upgrade to our Ruby library that standardizes interactions with various LLM providers. Whether you're working with Anthropic, DeepSeek, Google, Mistral, or OpenAI, OmniAI offers a consistent interface that simplifies AI integration into your Ruby applications.
Today marks the release of OmniAI 2.0. 2.0 represents a significant upgrade to our Ruby library that standardizes interactions with various LLM providers. Whether you're working with Anthropic, DeepSeek, Google, Mistral, or OpenAI, OmniAI offers a consistent interface that simplifies AI integration into your Ruby applications.
Phlex for Rails Emails: Action Mailer Without ERB
(camillovisini.com)
Writing Ruby all day is fun, but writing Ruby in HTML is not. In the past months, I found switching from Ruby to ERB views and partials to be interrupting my flow and therefore increasingly annoying. Enter Phlex, which is a Ruby library that allows you to write HTML (components, views, layouts) in pure Ruby. After already completely ditching ERB for Phlex in Rails views for multiple applications, I wanted to see if I could do the same for Action Mailer.
Writing Ruby all day is fun, but writing Ruby in HTML is not. In the past months, I found switching from Ruby to ERB views and partials to be interrupting my flow and therefore increasingly annoying. Enter Phlex, which is a Ruby library that allows you to write HTML (components, views, layouts) in pure Ruby. After already completely ditching ERB for Phlex in Rails views for multiple applications, I wanted to see if I could do the same for Action Mailer.
Ruby not dead it seems
(gitlab.io)
Ruby is an easy to learn programming language, it was invented by a guy named Matz [1] in Japan. Ruby is a free [2] software and can be used by anyone for zero cost. Ruby’s popularity was initially confined to Japan, later it slowly trickled out to rest of the world. Things changed with the emergence of Ruby on Rails [3] which is a popular web-development framework written with Ruby.
Ruby is an easy to learn programming language, it was invented by a guy named Matz [1] in Japan. Ruby is a free [2] software and can be used by anyone for zero cost. Ruby’s popularity was initially confined to Japan, later it slowly trickled out to rest of the world. Things changed with the emergence of Ruby on Rails [3] which is a popular web-development framework written with Ruby.
What's the Deal with (Ruby) Ractors?
(byroot.github.io)
When Ractors were announced 4 or 5 years ago, many people expected we’d quickly see a Ractor-based web server, some sort of Puma but with Ractors instead of threads. Yet this still hasn’t happened, except for a few toy projects and experiments.
When Ractors were announced 4 or 5 years ago, many people expected we’d quickly see a Ractor-based web server, some sort of Puma but with Ractors instead of threads. Yet this still hasn’t happened, except for a few toy projects and experiments.