Benchmark

How Rune compares.

Real, in-process measurements against the popular React QR libraries - no synthetic or placeholder numbers. Reproduce them yourself with pnpm bench (source in /bench).

toSVGString is the apples-to-apples SVG-generation path, and it's the fastest here. The React adapter is on par with qrcode.react while rendering a fully-styled SVG element. Absolute numbers depend on the machine (measured on Node v24.13.0); the ranking is what matters.

Throughput

SVG renders / second - unique input, higher is better

Rune (toSVGString)
1,120
Rune (React)
636
qrcode.react
628
react-qr-code
386

SSR latency

ms per render - lower is better

Librarymedianp95
Rune (toSVGString)1.4273.2247
Rune (React)1.98025.4247
qrcode.react1.5013.2158
react-qr-code2.1384.5756

Bundle size

minified + gzip, React external

Rune (core)9.9 KB gzip23.5 KB min
qrcode.react6.5 KB gzip17.3 KB min
react-qr-code9.2 KB gzip24.4 KB min

Feature comparison

FeatureRuneqrcode.reactqr-code-stylingreact-qr-code
SVG output✓✓✓✓
PNG / JPEG / WebP exportPNG·JPEG·WebPPNGPNG-
PDF export✓---
toSVGString - sync, no DOM✓---
SSR / Edge safe✓✓-✓
Zero dependencies (core)✓✓--
Dot shape styles9-~6-
Finder/corner styles5 × 3-3 × 2-
Gradient fills✓-✓-
Frames + CTA text✓---
Background image✓-✓-
Logo - image✓✓✓-
Logo - framework node✓---
Data builders (WiFi/vCard/…)✓---
Frameworks4ReactanyReact
Error correction level✓✓✓✓
QR version control✓✓✓-
TypeScript built-in✓✓✓✓
ESM + CJS dual export✓✓-✓
Accessibility (aria/role)✓✓-✓

Comparison compiled July 2026 from each library's public API. Corrections welcome via GitHub.