baskerville / plato

Document reader
Other
1.23k stars 102 forks source link

Render EPUBs with a different renderer (Servo/etc)? #362

Open arjpar opened 2 months ago

arjpar commented 2 months ago

It is now possible to embed Servo using QT [1]. Servo is also written in Rust, as I'm sure you know. Would it be possible to replace the built in EPUB renderer with Servo's HTML/CSS engine? Yes, Servo is still in active development, but I believe for EPUBs which is just HTML/CSS Servo may be stable enough. This would provide access to various HTML & CSS features that are in the EPUBv3 specification that Plato's built-in renderer does not support yet.


Another option could be using mupdf-rs. I know you rejected using mupdf-rs instead of using your own wrapper due to concerns about binary size (in previous issue #257)

Edit: It has come to my attention MuPDF doesn't have a built in EPUB renderer. Perhaps Servo would suffice but stability might be a (big) issue.

Here could be some ideas: