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,266
qrcode.react
864
Rune (React)
676
react-qr-code
457

SSR latency

ms per render - lower is better

Librarymedianp95
Rune (toSVGString)1.36273.2285
qrcode.react1.36492.7036
Rune (React)1.6473.4701
react-qr-code1.89914.0807

Bundle size

minified + gzip, React external

Rune (core)8.1 KB gzip19.3 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 styles8-~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.