Entamy Platform

entaPub — будь-який EPUB безпечно й до кінця

Пошкоджені книжки, книжки старого формату, шкідливі книжки. entaPub — рушій читання, що безпечно відкриває EPUB, виправляє те, що можна виправити, і передає книжку читачеві в її первісному вигляді.

Хочемо, щоб не лишилося книжок, які неможливо відкрити. EPUB — формат електронних книжок, яким користуються в усьому світі, але серед книжок, що реально поширюються, чимало таких, що не відповідають стандарту, частково пошкоджені або зроблені за старими правилами. entaPub — рушій читання EPUB, написаний на Rust, який відкриває навіть такі книжки, наскільки це можливо, і при цьому не наражає пристрій читача на небезпеку.

Особливості#

Читається, навіть якщо пошкоджено

Спершу книжка читається суворо за стандартом; лише якщо це не вдається, відновлення відбувається поетапно: виправлення XML, повторне читання як HTML, перескладання книжки.

Видно, що саме виправлено

На якому етапі й як було виправлено, записується як діагностика разом зі ступенем достовірності. Жодного «якось та відобразилося».

Відкриття книжки не звертається до мережі

Зовнішні CSS чи зображення не завантажуються; книжка складається лише з того, що в ній є.

Усе виконуване вилучається

script, iframe, javascript: тощо вилучаються, і кожне вилучення записується.

Жодного доступу до файлів поза книжкою

Посилання, що ведуть за межі книжки через ../ або абсолютні шляхи, відхиляються.

Навіть величезна книжка нічого не зупинить

Розмір файлу, обсяг розпакованих даних, глибина вкладення й кількість елементів обмежені, тож навіть екстремальна книжка не заморозить пристрій.

Безпека пам’яті

unsafe у Rust заборонено, а фазинг з AFL++ масово перевіряє пошкоджені вхідні дані.

Книжка у своєму вигляді

Знаки наголосу, вертикальне письмо й відступи — частина тексту. Вилучаються лише небезпечні вказівки, а вертикальне письмо, рубі, фіксована верстка й розвороти зберігаються.

І EPUB 2, і EPUB 3

Нові книжки й книжки старого формату читаються через один і той самий вхід.

Читати й створювати#

До entaPub входить і «Builder», який з тих самих вхідних даних завжди складає той самий EPUB. Саме Builder перетворює на EPUB рукописи, написані в KuroEditor, а Reader відкриває книжки в KuroViewer. Оскільки читання й створення побудовано за одними принципами, продукти Entamy можуть самі обробляти електронні книжки від початку до кінця.

Підтримувані форматиEPUB 2 / EPUB 3 (фіксована верстка, вертикальне письмо, рубі, розвороти)
ВідновленняСуворе читання → виправлення XML → повторне читання як HTML → перескладання книжки (кожен етап записується як діагностика)
БезпекаБез зовнішніх з’єднань, вилучення виконуваних елементів, відхилення посилань поза книжку, обмеження ресурсів
РеалізаціяRust (unsafe заборонено), фазинг з AFL++
Де використовуєтьсяKuroViewer (читання), KuroEditor (створення)
Форма постачанняВбудовано в продукти Entamy (відкриття коду ще не вирішено)

Якщо entaPub стане відкритим, його буде опубліковано за Kuro License (MIT + зазначення правовласників).

Products & Services

Продукти

Інформація про продукти цього бренду готується.