介绍
QRCode 是一个高性能、跨平台的 QRCode 生成库,支持多种运行时环境:浏览器(TypeScript/WASM)、Node.js、Bun 和原生 Rust。
为什么选 QRCode?
1. 极致性能
核心算法经过优化,各运行时性能表现优异。
Rust 三方端到端 SVG 生成(µs/条,越低越好;来源 benchmark_speedup_verified.json):
以上数字来自权威文件
benchmark_speedup_verified.json, 仅覆盖 Rust 三方实现。
2. 统一 API
无论你使用哪个包,API 设计保持一致,轻松切换运行环境:
3. 丰富的输出格式
- SVG - 矢量图形,可缩放不失真
- PNG - Node.js/Bun 环境支持原生 PNG Buffer 输出
- DataURL - 前端可直接使用的 base64 格式
- 样式化 SVG - 支持渐变、圆角、自定义颜色等
4. SVG 验证
使用 bench/rust-tools 验证工具确保生成的二维码可被正确扫描:
架构设计
安装指南
根据你的运行环境选择对应的包:
浏览器(推荐纯 JS)
浏览器(WASM 版本)
Node.js
Bun
Rust
包对比
⚠️ 「性能」一列的数据来自不同基准测试,口径不统一,不可横向比较; 未标注来源的历史数字(如 54,283 ops/s)源自一次会生成伪数据的构建,已作废。 权威数据见
benchmark_speedup_verified.json。
性能对比概览
Rust 三方端到端 SVG 生成实测(Rust 1.89.0, release, 100 次平均):
Node.js / Bun 与 Rust 之间的倍率不予提供:两组数据出自不同的测量程序与不同的机器, 相除得到的倍数没有意义。
⚠️ 历史上此处曾列出 Node.js 与 Bun 的对比(8,487 / 7,576 ops/s)。 该对比同时变动了「运行时」与「实现」两个变量 ——
@veaba/qrcode-node与@veaba/qrcode-bun是两套不同的实现,因此无法归因到任一因素,已删除。