https://github.com/broveer/nullreader
A lightweight comic reader that streams CBZ/CBR files directly into RAM. No storage bloat, no installation, just Python and speed.
https://github.com/broveer/nullreader
cbr-convertor cbz-reader comic-reader css high-performance html5 javascript lightweight manga-reader powershell python3 windows zero-dependency
Last synced: about 1 month ago
JSON representation
A lightweight comic reader that streams CBZ/CBR files directly into RAM. No storage bloat, no installation, just Python and speed.
- Host: GitHub
- URL: https://github.com/broveer/nullreader
- Owner: broveer
- License: mit
- Created: 2026-04-24T10:49:55.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-04-24T20:12:39.000Z (about 1 month ago)
- Last Synced: 2026-04-24T21:26:01.301Z (about 1 month ago)
- Topics: cbr-convertor, cbz-reader, comic-reader, css, high-performance, html5, javascript, lightweight, manga-reader, powershell, python3, windows, zero-dependency
- Language: HTML
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Local Comic Reader Web Application
A lightweight, purely local web application for reading comics. Place your `.cbz` or `.cbr` files into organized series folders, and the application instantly builds a beautiful, interface to read them on your localhost server or mobile device on the same network.
## Features
- **Zero-Extraction Storage:** Comics `.cbz` files are opened entirely in browser memory using JSZip, saving you massive amounts of hard drive space.
- **Smart Metadata & Search:** Automatically generates `config.json` files for series. Add characters, genres, and creators to dynamically search through your library.
- **Binge Mode:** Natively detects when you are near the end of an issue and prompts you to jump into the chronological next issue.
- **Persistent Reading Tracking:** Uses browser local storage to remember which issues you've finished, graying out their covers and giving you a custom Right-Click context menu to manage read states.
- **Mobile Friendly:** Fully responsive UI, including the ability to scroll through pages using your phone's physical Volume Keys.
- **Custom Theming:** Use `preferences.json` to swap CSS styles globally.
## How to Use
1. Inside your root directory, create a directory called `./collections`. Inside this directory, create subdirectories for any comic series (e.g., `./collections/Thunderbolts/`).
2. Drop your `.cbz` or `.cbr` comic files into that directory.
3. Double-click the `RunReader.bat` file to start the application.
4. The script will automatically:
- Run `UpdateLibrary.ps1` to scan directories, extract cover images, and update `libraryData.js` with your latest issues.
- Boot a lightweight Python HTTP server.
- Open your default web browser directly to the reader.
## Requirements
- **Windows / PowerShell 5+** (for dynamic library building)
- **Python 3** (for the lightweight localhost server)
- A modern Web Browser
## Architecture & How it Works
The application is entirely self-hosted. Instead of relying on a heavy database like SQL, `UpdateLibrary.ps1` runs on startup to scan raw directories using Regular Expressions, pulling out issue dates/names and injecting them into a static `libraryData.js` object.
Python simply serves the directory over HTTP to bypass standard browser CORS limitations. All the heavy lifting—from sorting, searching, URL routing, and in-memory zip extraction—is handled natively by Vanilla JavaScript and HTML5 on the frontend!