qrcode-rust 和 qrcode-fast 是原生 Rust QRCode 生成库,提供极致的性能和完整的类型安全。
| 包名 | 性能 | 特点 | 适用场景 |
|---|---|---|---|
qrcode-fast |
🔥 极致 | 比 kennytm 快 37-75 倍 | 追求极致性能 |
qrcode-rust |
⚡ 快速 | 比 kennytm 快 8-10 倍,功能完整 | 标准 Rust 项目 |
new() - 创建默认实例with_options() - 使用自定义选项qrcode-fast:
qrcode-rust:
make_code(text: &str) - 生成 QRCodeadd_data(data: &str) - 添加数据(仅 qrcode-rust)get_svg() - 生成 SVG 字符串is_dark(row: i32, col: i32) -> bool - 检查模块颜色falseget_module_count() -> i32 - 获取模块数量纠错级别枚举:
QRCodeNative 提供了一个更简洁的 API,与 JavaScript 包保持一致:
| 方法 | 说明 | 参数 | 返回值 |
|---|---|---|---|
new(text, correct_level) |
创建实例 | &str, QRErrorCorrectLevel |
QRCodeNative |
to_svg(size) |
生成 SVG | i32 |
String |
is_dark(row, col) |
检查模块颜色 | i32, i32 |
bool |
get_module_count() |
获取模块数 | - | i32 |
module_count() |
同上 | - | i32 |
两个包都从 qrcode-rust-shared 重新导出了底层模块:
| 测试项 | qrcode-fast | kennytm-qrcode | 速度提升 |
|---|---|---|---|
| 单条生成 | ~18.4 µs | ~688.9 µs | 🔥 37x 更快 |
| SVG 生成 (Simple) | ~10.8 µs | ~815.8 µs | 🔥 75x 更快 |
| 纠错级别 H | ~21.1 µs | ~446.2 µs | 🔥 21x 更快 |
| 包 | 单条生成 (ops/s) | SVG 输出 (ops/s) |
|---|---|---|
| qrcode-fast | 54,283 | 92,486 |
| qrcode-rust | 21,635 | 28,780 |
QRCodeNative 的简洁 APIdata_cache 进行调试QRCode 不是 Send 或 Sync,不要在多线程间共享实例get_svg() 默认生成 256x256 的 SVG