Files
QRGen/CHANGELOG.md
T
Serendipity ce8063431e docs: 开源规范化 — doc comments + 社区文件 + 示例代码 + crates.io 就绪
- 为 core 公开 API 添加完整 doc comments(rustdoc 可用)
- 新增 .editorconfig / CONTRIBUTING / CODE_OF_CONDUCT / SECURITY
- 新增 Issue 模板(bug + feature)+ PR 模板
- 新增 3 个代码示例(examples/)
- 更新 Cargo.toml 元数据(description/repository/keywords/categories/MSRV)
- 更新 README + CHANGELOG
2026-06-19 18:56:28 +08:00

3.2 KiB
Raw Blame History

Changelog

0.1.0 (2026-06-19)

Added

  • 核心算法:完整实现 ISO/IEC 18004 QR 码生成
    • GF(2⁸) Galois 域运算(预计算 exp/log 表,0x11D 本原多项式)
    • Reed-Solomon 纠错编码(动态生成多项式 + 多项式长除法 + 数据交错)
    • 四种编码模式:数字 / 字母数字 / 字节 / 汉字 (Shift JIS)
    • 字符串自动分段 + 最优模式选择
    • 8 种标准掩码 + 四规则惩罚评分(连续同色/2×2 方块/伪定位图案/暗模块占比)
    • 格式信息 BCH(15,5) + 版本信息 BCH(18,6) 编码
    • 40 版本 × 4 纠错级别完整容量表
  • CLI 命令行工具 (qrgen)
    • PNG/SVG/终端 ASCII 三种输出
    • 可调纠错级别、版本号、模块大小、白边
    • 反色模式、路径遍历防护
  • GUI 桌面应用 (qrgen-gui)
    • Tauri 2 + React 18 + TypeScript + TailwindCSS
    • 7 种编码模式:文本 / URL / WiFi / vCard / Email / 电话 / SMS
    • 实时预览(200ms 防抖)、历史记录(50 条 + 持久化)
    • PNG/SVG 导出 + 复制到剪贴板
    • WiFi 密码脱敏、错误提示
    • 暗色模式(跟随系统)、磨砂玻璃效果
  • Web 服务 (qrgen-web)
    • axum 0.8 + tokio HTTP 服务
    • 内嵌 GUI 风格 HTML 页面(三栏 + 7 模式 + 实时预览)
    • REST API: GET /api/qr → PNG / SVG
    • Docker: rust-alpine 多阶段构建 → 17.7MB 镜像
    • docker-compose: 资源限制 + 健康检查 + 日志轮转
  • 程序库 (qr-core)
    • 零外部 QR 依赖(仅 image crate 用于 PNG 输出)
    • 自动版本选择
    • 完整 40 版本 × 四级纠错支持

Fixed

  • QR 扫描失败:修复 PNG margin saturating_sub 导致 quiet zone 全黑(扫描器无法定位)
  • QR 扫描失败:修复 finder pattern separator 缺少左侧和顶部预留(数据模块破坏 finder 检测比率 1:1:3:1:1
  • GUI 导出失败:修复 tauri-plugin-fs 插件未注册(writeFile 调用无后端 handler
  • GUI 导出 ACL:修复 fs:allow-write-file 缺少路径 scope
  • GUI 预览模糊:修复 SVG size=1 拉伸到 216px 导致的模糊
  • 历史记录:删除/清空后持久化到 store、WiFi 密码脱敏、点击回填用 formData
  • CSP:从 null 改为最小权限策略
  • CLI 安全:添加路径遍历防护
  • Kanji 编码:修复 Shift JIS 第二字节空洞、fallback 段内模式混用
  • 编码器encode_numeric/encode_alphanumeric 添加 debug_assert 前置条件
  • SVG 渲染dangerouslySetInnerHTML 改为 <img> + data URL
  • Web 界面:预览改用 PNG size=8 避免拉伸模糊

Technical

  • Cargo workspace 四层架构 (core + cli + gui + web)
  • Tauri v2 capabilities + ACL 权限配置
  • qr-coreSerde 序列化支持(跨 IPC 传输)
  • GUIReact Context + useReducer,共享文本构造工具 (utils/qrText.ts)
  • CLIclap derive + anyhow 错误处理
  • Webaxum 0.8 + tokio,编译期 HTML 嵌入 (include_str!)
  • 82 个测试(58 单元 + 24 集成)
  • NSIS Windows 安装包 + Docker Alpine 镜像
  • 文档:API doc commentsrustdoc 可用)+ 3 个代码示例
  • 社区:CONTRIBUTING / CODE_OF_CONDUCT / SECURITY / Issue & PR 模板
  • 工程:.editorconfig / MSRV=1.87 / crates.io 就绪