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

65 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 就绪