Byroot, k0kubun, and ko1 headline a Ruby and Rails performance roundup with real benchmark numbers: ZJIT, GC, strings, JSON, and more. The post Ruby and Rails Performance Roundup: The Backlog Edition appeared first on Closer to Code .
I'm happy to announce that Karafka 2.6 and Karafka Web UI 1.0 have just been released. For those new here: Karafka is a Ruby and Rails multi-threaded, efficient Kafka processing framework, and its Web UI is a monitoring and management dashboard that ships alongside it. As with every release in the 2.x line, this is [ ] The post Karafka 2.6 and Web UI 1.0: Laying the Groundwork for Kafka Queues…
Normally I just fire off a tweet when I spot a nice performance PR landing in Ruby. Lately I've been catching up on a backlog of Ruby performance work I'd bookmarked and never gotten around to - so some of what's below isn't brand new, with a few PRs dating back to 2025. There were [ ] The post Small PRs, big speedups: The Ruby performance work you almost missed appeared first on Closer to Code .
Introduction I just returned from RubyKaigi 2026, held from April 22nd to 24th in Hakodate, Hokkaido. For those unfamiliar with it, RubyKaigi is the biggest Ruby conference in the world, drawing speakers, committers, and Rubyists from across the globe. As always, it managed to combine deep technical talks with a uniquely Japanese atmosphere that no [ ] The post From Karafka Ractors to Yoichi…
This is Part 2 of the 'Karafka to Async Journey' series. Part 1 covered WaterDrop's integration with Ruby's async ecosystem and how fibers can yield during Kafka dispatches. This article covers another improvement in this area: migration of the producer polling engine to file descriptor-based polling. When I released WaterDrop's async/fiber support in September 2025, [ ] The post One Thread to…
Here's claude-on-incus (or coi for short) - a tool for running Claude Code freely in isolated Incus containers. If it's useful to you, a star helps. Note: I'm also working on 'code-on-incus' - a generalized version for running any AI coding assistant in isolated containers. Why? Three reasons: security, a clean host, and full contextual [ ] The post Claude on Incus All the autonomy, securely…
After a decade under Pablo Cantero's stewardship, Shoryuken has a new maintainer - me. I'm grateful for his graceful handoff of this Ruby SQS library, and I'm picking up where he left off: v7.0.0.rc1 is out now, with the stable release close behind. What's in v7.0.0 This release modernizes the codebase substantially. It brings several [ ] The post Shoryuken Has a New Maintainer, and v7.0.0 Is…
Update: This article originally concluded that Eisel-Lemire wasn't worth it for Ruby. I was wrong. After revisiting the problem, I found a way to make it work - and submitted a PR to Ruby. Read the full update at the end. Recently, I submitted a PR to Ruby that optimizes Float#to_s using the Ryu algorithm, [ ] The post Ruby Floats: When 2.6x Faster Is Actually Slower (and Then Faster Again)…
TL;DR: YARD-Lint catches documentation issues, just like RuboCop for code. Star it and use it now. I am happy to announce the release of YARD-Lint, a comprehensive linter designed for YARD documentation in Ruby and Rails projects. This gem is now available as open-source. # In your Gemfile gem yard-lint For those who are not [ ] The post Announcing YARD-Lint: Keep Your Ruby Documentation Solid…
Every developer who maintains Ruby gems knows that sinking feeling when a user reports an error that shouldn't be possible. Not 'difficult to reproduce', but truly impossible according to everything you know about how your code works. That's exactly what hit me when Karafka user's error tracker logged 2,700 identical errors in a single incident: [ ] The post When Your Hash Becomes a String:…
I am excited to announce the release of llm-docs-builder, a library that transforms Markdown documentation into an AI-optimized format for Large Language Models. TL;DR: Open source tool that strips 85-95% of noise from documentation for AI systems. Transforms Markdown, generates llms.txt indexes, and serves optimized docs to AI crawlers automatically. Reduces RAG costs significantly. ⭐ [ ] The…
The Ruby community experienced significant turbulence in September 2025 when Ruby Central forcibly took control of the RubyGems GitHub organization, removing long-standing maintainers without warning. As someone who has worked extensively on RubyGems security - first independently and later with Mend.io - protecting our ecosystem from supply chain attacks and handling vulnerability reports, I…
Ruby developers have faced an uncomfortable truth for years: when you need to talk to external systems like Kafka, you're going to block. Sure, you could reach for heavyweight solutions like EventMachine, Celluloid, or spawn additional threads, but each comes with its own complexity tax. EventMachine forces you into callback hell. Threading introduces race conditions [ ] The post WaterDrop Meets…
A few weeks have passed since RailsConf 2025, which was running from July 8th to 10th in Philadelphia, PA, and I've had time to process what was my first (and last) RailsConf experience. It wasn't just any RailsConf – it was the final edition after nearly 20 years of bringing together the Rails community. There's [ ] The post Past, Present, Future, and Brotherly Love: My Final RailsConf Journey…
0ms processing time. Infinite scalability. 100% success rate. Zero failures. ← Give it a star if you enjoyed this zen approach! The Moment of Zen Clarity It was Day Two of RailsConf 2025 in sweltering Philadelphia when the idea crystallized. My friend Justin and I were discussing the endless cycle of Rails optimization - everyone [ ] The post Announcing Passive Queue: The Rails Background Job…
Notice: While native extensions for rdkafka have been extensively tested and are no longer experimental, they may not work in all environments or configurations. If you find any issues with the precompiled extensions, please report them immediately and they will be resolved. Every Ruby developer knows this excruciating feeling: you're setting up a project, running [ ] The post The 60-Second Wait:…