RubyFlow The Ruby and Rails community linklog

Submit a post

You can use basic HTML markup (e.g. <a>) or Markdown.
Note that your post may be edited to suit the format of the site.

As you are not logged in, you will be
directed via GitHub to signup or sign in

Post Preview

Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.

Today

translation_diff: re-translate only the sentences that changed

Edit one word in a 3,000-character product description and most translation APIs bill you for all 3,000 characters again. translation_diff splits the text into sentences, caches each one by content hash, and sends the provider only the sentences it hasn’t seen. Repeated blocks like a return policy get translated once across your whole catalog. Read more

speedrunner: rubocop and other Ruby CLIs, forked from a warm daemon

rubocop sample.rb spends most of a call loading code: 686 ms natively, 164 ms once that loading is done in advance (x4.2, one small file, warm daemon). I wrote speedrunner to do that: it keeps the tool loaded in a daemon and forks it per call, with no per-tool setup and the same output as a native run. The cops’ own work is not sped up, and the first call in a fresh environment gains nothing. Linux and macOS. Code and runs:

llm.rb v18.0.0 released!

llm.rb is a runtime that supports agentic development. This release requires Ruby v4 (with v4.1.0+ recommended, even as a preview1). The standout feature (from this release) is being able to run tool calls on Ractor. Works especially well with MCP tool calls. It worked before but was very rough around the edges. This release makes them first-class. The CHANGELOG includes everything. :)

oops 0.3.0: copy the last shell command and its output as a Markdown block

oops is a small Ruby CLI with no runtime gem dependencies. It records your shell in the background, and oops copies the last command and its output to the clipboard as a paste-ready Markdown code block, with API keys and other secrets masked. It is handy for bug reports, pull request comments and asking for help. Version 0.3.0 adds fish support, oops clear, and deletes old logs of closed tabs after 7 days. Install with gem install oops-cli or Homebrew. (I am the author.)

Puma, Falcon or Pitchfork? Choosing a Rails App Server in 2026

A practical comparison of Puma 8.0, Pitchfork 0.18 and Falcon 0.57 for Rails on Ruby 4.0: concurrency models (threads vs forked processes vs fibers), what changed in each server this year, production configs for all three, a comparison table, how to measure GVL wait before switching, and a decision guide by workload. Also available in pt-BR. Read more

rbcop: RuboCop rewritten in Rust, about 14x faster in CI

rbcop is a drop-in replacement for RuboCop 1.92.2, written in Rust on Prism. It reads the same .rubocop.yml, takes the same command line and produces the same output, checked against RuboCop itself on nine large codebases: about two million offenses, zero differences, autocorrect included. In CI with a cold cache it runs about 14x faster than rubocop --parallel. Read more

A new database for Rails

Over the past eight months, I’ve been building BicDB, a Rust-based database with PostgreSQL-compatible interfaces, full-text search, vectors, queues, and more. I relied heavily on AI coding agents (Claude and OpenAI), alongside roughly 1,200 hours of my own time. Read more

It seems good judging by the documentation, but as a system engineer, i would l…
Hi Gabor Garami! Thanks for taking the time to look into BicDB and for the exc…

ruby2html 2.1.0 — write views in pure Ruby, render HTML faster than ERB and Phlex

ruby2html lets you write views as a plain Ruby block DSL — div(class: ‘card’) { h1 @title } — and renders clean, escaped HTML with a C extension doing the hot work (SIMD escaping, tag rendering, attribute serialization). No runtime dependencies. Works standalone, as Rails .html.rb templates, inside ERB, in ViewComponent, or as lightweight Ruby2html::Component classes. Read more

Loading older posts