Entamy Platform

entaPub — 任何 EPUB 都能安全地读到最后

损坏的书、制作方式老旧的书、恶意的书。entaPub 是一款能安全打开 EPUB、修复可修复之处,并保持书的原貌交给读者的阅读引擎。

想让打不开的书不再存在。 EPUB 是全世界通用的电子书格式,但实际流通的书中,不符合规范的、中途损坏的、制作方式老旧的并不少见。entaPub 是用 Rust 编写的 EPUB 读取引擎,即使是这样的书也尽可能打开,同时不让读者的设备陷入危险。

特点#

损坏了也能读

先严格按规范读取,只有失败时才依次进行 XML 修复、作为 HTML 重新读取、重新组装书籍,逐步恢复。

清楚修复了什么

在哪个阶段、如何修复,连同可信度一起作为诊断记录下来。不会止步于“总算显示出来了”。

打开书不会对外通信

不去读取外部的 CSS 或图片,只用书中已有的内容来组装。

可执行的内容会被移除

移除 script、iframe、javascript: 等,并记录移除的情况。

不触碰书外的文件

不接受用 ../ 或绝对路径指向书外的引用。

书再大也不会卡住

对文件大小、解压量、嵌套深度和元素数量设置上限,即使是极端的书也不会让设备卡死。

内存安全

禁止使用 Rust 的 unsafe,并用 AFL++ 模糊测试大量尝试损坏的输入。

原样呈现书的面貌

着重号、竖排和缩进都是正文的一部分。只移除危险的指定,保留竖排、注音(ruby)、固定版式和跨页。

EPUB 2 和 EPUB 3 都支持

无论新书还是制作方式老旧的书,都能从同一个入口阅读。

阅读与制作#

entaPub 还包含“Builder”,它从相同的输入一定会组装出相同的 EPUB。把用 KuroEditor 写成的稿件制作成 EPUB 的是这个 Builder,在 KuroViewer 中打开书的是 Reader。阅读一方和制作一方按同样的思路打造,因此 Entamy 的产品能够从头到尾亲手处理电子书。

支持格式EPUB 2 / EPUB 3(固定版式、竖排、注音、跨页)
恢复严格 → XML 修复 → 作为 HTML 重新读取 → 重新组装书籍(每个阶段都记录为诊断)
安全性无外部通信、移除可执行元素、拒绝书外引用、资源上限
实现Rust(禁止 unsafe)、AFL++ 模糊测试
使用它的产品KuroViewer(阅读)、KuroEditor(制作)
提供形式内置于 Entamy 的产品中使用(是否开源尚未决定)

如果开源,将以 Kuro License(MIT + 权利人署名)发布。

Products & Services

产品

该品牌的产品信息正在准备中。