PHPackages                             mikespub/epubjs-reader - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mikespub/epubjs-reader

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mikespub/epubjs-reader
======================

Epub.js Reader with zipfs.php

2026.1.24(3mo ago)21.3k31MITJavaScript

Since Mar 4Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/mikespub-org/intity-epubjs-reader)[ Packagist](https://packagist.org/packages/mikespub/epubjs-reader)[ RSS](/packages/mikespub-epubjs-reader/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (1)Versions (24)Used By (1)

About this fork
===============

[](#about-this-fork)

This fork is *only* used to re-package and integrate epubjs-reader with COPS

Please see  for the original fork - with thanks to @intity and the alpha/beta testers :-)

This fork is meant for a web-based epub reader, where the initial `bookPath` is set via template variable in [assets/template.html](assets/template.html), e.g. with PHP Twig or Python Jinja2, and the epub content is served from the original .epub file via a PHP or Python script like [app/zipfs.php](app/zipfs.php), e.g. with bookPath = [http://localhost:8000/app/zipfs.php/{bookId}/](http://localhost:8000/app/zipfs.php/%7BbookId%7D/)

The [dist/ files](dist/) are available as:

- PHP composer package: [mikespub/epubjs-reader](https://packagist.org/packages/mikespub/epubjs-reader), or
- NPM javascript package: [@mikespub/epubjs-reader](https://www.npmjs.com/package/@mikespub/epubjs-reader).

Epub.js Reader
==============

[](#epubjs-reader)

[![UI](demo-ui.png)](demo-ui.png)

About the Reader
----------------

[](#about-the-reader)

The **epubreader-js** application is based on the [epub.js](https://github.com/futurepress/epub.js) library and is a fork of the [epubjs-reader](https://github.com/futurepress/epubjs-reader) repository.

Getting Started
---------------

[](#getting-started)

Open up [epubreader-js](https://intity.github.io/epubreader-js/) in a browser.

You can change the ePub it opens by passing a link to `bookPath` in the url:

`?bookPath=https://s3.amazonaws.com/epubjs/books/alice.epub`

Running Locally
---------------

[](#running-locally)

Install [node.js](https://nodejs.org/en/)

Then install the project dependences with npm

```
npm install
```

You can run the reader locally with the command

```
npm run serve
```

Builds are concatenated and minified using [webpack](https://github.com/webpack/webpack)

To generate a new build run

```
npm run build
```

or rebuilding all \*.js files

```
npm run prepare
```

Pre-configuration
-----------------

[](#pre-configuration)

The **epubreader-js** application settings is a JavaScript object that you pass as an argument to the `Reader` constructor. You can make preliminary settings in the file [index.html](dist/index.html). For example, this is what the default `Reader` initialization looks like:

```

    import { Reader } from "./js/epubreader.min.js"
    const url = new URL(window.location)
    const path = url.searchParams.get("bookPath") || "https://s3.amazonaws.com/moby-dick/"
    window.onload = (e) => new Reader(path)

```

Let's say we want to disable the `openbook` feature, which is designed to open an epub file on a personal computer. This can be useful for integrating a public library into your site. Let's do this:

```

    import { Reader } from "./js/epubreader.min.js"
    const url = "{{bookPath}}"
    window.onload = (e) => new Reader(url, { openbook: false })

```

> Note that the `{{bookPath}}` replacement token is used to define the `url` string variable. This simple solution will allow you to set up a route to pass the target URL.

Features
--------

[](#features)

The **epubreader-js** application supports the following features:

- Initial support for mobile devices
- Saving settings in the browser’s local storage
- Opening a book file from the device’s file system
- Bookmarks
- Annotations
- Search by sections of the book
- Output epub metadata
- [Keybindings](docs/keybindings.md)

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance78

Regular maintenance activity

Popularity23

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 85.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~34 days

Recently: every ~50 days

Total

21

Last Release

114d ago

Major Versions

2024.11.10 → 2025.01.022025-01-02

2025.11.22 → 2026.1.242026-01-24

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1447115?v=4)[Mike's Pub](/maintainers/mikespub)[@mikespub](https://github.com/mikespub)

---

Top Contributors

[![intity](https://avatars.githubusercontent.com/u/10960106?v=4)](https://github.com/intity "intity (308 commits)")[![mikespub](https://avatars.githubusercontent.com/u/1447115?v=4)](https://github.com/mikespub "mikespub (35 commits)")[![fchasen](https://avatars.githubusercontent.com/u/213312?v=4)](https://github.com/fchasen "fchasen (12 commits)")[![dunxd](https://avatars.githubusercontent.com/u/16608541?v=4)](https://github.com/dunxd "dunxd (3 commits)")[![kurema](https://avatars.githubusercontent.com/u/10556974?v=4)](https://github.com/kurema "kurema (2 commits)")[![StructSeeker](https://avatars.githubusercontent.com/u/136735368?v=4)](https://github.com/StructSeeker "StructSeeker (1 commits)")

---

Tags

epub-reader

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/mikespub-epubjs-reader/health.svg)

```
[![Health](https://phpackages.com/badges/mikespub-epubjs-reader/health.svg)](https://phpackages.com/packages/mikespub-epubjs-reader)
```

###  Alternatives

[magepal/magento2-reindex

Reindex your Magento2 store quickly and easily from backend/admin, instead of command line.

112649.7k1](/packages/magepal-magento2-reindex)[ourcodeworld/name-that-color

A non-official PHP port of the NTC JS library to find out the name of the closest matching color.

37163.5k](/packages/ourcodeworld-name-that-color)[redberry/mcp-client-laravel

Package that enables you access to any mcp server that you define in the config

1345.0k1](/packages/redberry-mcp-client-laravel)[nylle/php-automapper

271.4k](/packages/nylle-php-automapper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
