Comic Viewer Demo

Tailwind CSS demo

Decrypted plugin sample

Each page is fetched only as an AES-GCM encrypted .encfile. definePlugin() decrypts it before the image is rendered.

Source code

1import * as ComicViewer from "@publira/comic-viewer";23const encryptedJpegPlugin = ComicViewer.definePlugin({4  name: "encrypted-jpeg",5  customFetch: ({ signal, url }) =>6    fetch(url, { signal }).then((response) => response.arrayBuffer()),7  afterFetch: ({ buffer }) => decryptPage(buffer),8});910export const Reader = ({ pages }) => (11  <ComicViewer.Root pages={pages} plugins={[encryptedJpegPlugin]}>12    <ComicViewer.Viewport />13    <ComicViewer.Toolbar />14    <ComicViewer.PageNavigation />15  </ComicViewer.Root>16);