I'm Hiroshi Shibata (hsbt), a Ruby committer and the lead maintainer of RubyGems and Bundler.
TL;DR
This is the last part of a three-part series on what's new in RubyGems and Bundler 4.1. Part 1 covered override and prune , and Part 2 covered defenses against supply chain attacks. This part is about bringing RubyGems and Bundler together. Most of that work is invisible to users, so I'll start from the visible side, which is what gem install stopped doing in 4.1. It no longer fetches a gemspec per installed gem, it caches the compact index and asks with ETags, and its resolver is now PubGrub, the same as Bundler's. Behind that, the two codebases now share one layout, one HTTP stack, and one copy of most vendored libraries. Commands that read the whole index, such as gem search -r , got slower, and that's still open.
The numbers below were measured on October 9, 2026, on macOS (arm64) with Ruby 4.0.7 and YJIT off.…