Node
The streamer is source-agnostic — in node you can feed it from a zip library, an extraction tool, raw buffers, URLs, or your own custom source. Pick whatever fits your stack; the only requirement is to turn your source into an Archive (see Archive Reader for the full list of creators and how to build your own).
As one example, opening a zip-based container (EPUB, CBZ) with unzipper:
import { generateManifestFromArchive, generateResourceFromArchive,} from "@prose-reader/streamer"import { createArchiveFromUnzipper } from "@prose-reader/archive-reader/archives/createArchiveFromUnzipper"import unzipper from "unzipper"
const directory = await unzipper.Open.file("book.epub")const archive = await createArchiveFromUnzipper(directory, { name: "book.epub" })
const manifest = await generateManifestFromArchive(archive)const resource = await generateResourceFromArchive(archive, "OEBPS/chapter1.xhtml")