跳转到内容

Anki Forge 与 genanki:如何选择

如果正在设计可重复的发布流程,需要拥有所有权的媒体、结构化诊断,以及发布更新前的比较与策略检查,可以考虑 Anki Forge。如果已有 genanki 的 Python 脚本、模板和媒体满足需求,迁移成本高于收益,则应保留经过验证的流程。

决策点 Anki Forge genanki
编写语言 Rust 核心;Rust、Python 和 Node / TypeScript 接口 Python
共同基础能力 Basic、Cloze、自定义模板、媒体与离线 APKG 生成 Basic、Cloze、自定义模板、媒体与离线 APKG 生成
身份 显式命名空间和笔记键;更新需保留原始 APKG 可配置 GUID 和数字模型/牌组 ID;支持重新导入更新
发布前 比较发现项、风险策略和已检查的预备候选包 由自己的脚本和测试定义发布检查
媒体所有权 图片和音频对象持有不可变数据快照,克隆共享存储 脚本提供包媒体文件和引用
编程式图片遮挡 通过公开 API 使用带键矩形遮罩 按流程评估合适模型或扩展
运行成本 需要原生依赖;使用受支持平台和解释器 保留现有 Python 部署可能成本更低
迁移成本 显式验证旧身份映射、模板和导入 已正常工作的 genanki 流程无需迁移成本

同一个小任务

章节:同一个小任务

将三个 JSON 问题生成带图片和声音的牌组时,两种库都由 Python 解析 JSON 并编写笔记。genanki 需要选择模型和牌组 ID、设置字段值与 GUID 规则、将媒体文件加入包,再写出 APKG。Anki Forge 需要选择命名空间和持久业务键,将拥有所有权的媒体组合进笔记,构建 v1,再基于原始 v1 APKG 比较和预备 v2,最后发布。完整 JSON 示例提供 Rust、Python 和 TypeScript 实现及运行命令。

已有 genanki 牌组

章节:已有 genanki 牌组

genanki 支持自定义 GUID、媒体和重新导入更新。不能将稳定身份视为 Anki Forge 独有能力。默认 GUID 规则可能依赖字段;字段会变化时,应有意选择 GUID 规则。

Anki Forge 不会自动恢复任意 genanki 数字 ID 或 GUID。没有单独验证的映射时,应将首次 Anki Forge 分发视为身份边界。此比较及成功 APKG 构建均不承诺无损迁移或保留全部复习历史。迁移已有牌组前阅读迁移指南。

历史性能证据

章节:历史性能证据

2026-10-08 的比较在 Apple M1 Pro 上测量 Rust Project API 与 genanki 0.13.1。每组 1,000 条 Basic 笔记时,五个实测 Rust 工作负载的导出耗时低 45.7–53.9%;部分媒体场景的峰值内存更高。方法、原始结果与限制。该实验未测量当前 Python 或 Node 宿主性能,也不保证这些 SDK 或其他工作负载获得相同加速。

Anki Forge 维护者 · 2026-10-25 根据公开 Anki Forge 0.3.1 API、genanki 文档和归档测量复核。开始新任务前,查看运行环境兼容性并选择开发语言。

查看 Markdown