Skip to content

About

A lightweight, fast, no-frills manga & image reader written in Rust (Slint GUI, single portable exe).

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

MangaRust logo

MangaRust

A lightweight, fast, no‑frills manga & image reader written in Rust.

Focused on one thing — reading images comfortably — with instant startup, a tiny single‑file binary, and a native‑feeling UI.

English · 繁體中文


Why MangaRust?

Most comic readers try to be a whole library manager. MangaRust deliberately does not. It keeps the surface small and the experience quick: point it at a folder of archives, and start reading. No database, no indexing step, no installer — just a single executable that opens instantly.

  • ⚡ Instant startup & loading — no background indexing, covers are cached to disk.
  • 🪶 Portable — a single self‑contained executable. No install required.
  • 🖥️ Native look — Fluent (Windows 11) styling via Slint, GPU‑rendered.
  • 🌏 Multi‑language — Traditional/Simplified Chinese, English, Japanese, Korean.

Features

Reading

  • Single‑page and double‑page (spread) modes — cover, wide/landscape pages and the last page are shown alone automatically.
  • Right‑to‑left (manga) or left‑to‑right reading direction.
  • Fit modes: fit width, fit height, or original size.
  • Zoom up to 400% (10% steps).
  • Page‑turn animations: none, slide left, slide right, or vertical scroll.
  • Smooth arrow‑key scrolling and mouse‑wheel scrolling of the current page.
  • GIF animation playback (with a frame‑budget guard).
  • Page thumbnail scrubber (Space) — a bottom overlay with a thumbnail for every page; click one to jump. Follows the reading direction (RTL: page 1 on the right), highlights and follows the current page, and generates thumbnails lazily in the background (pages near the one you're reading first — memory‑only, freed when the book closes).
  • Resume from where you left off; a progress bar shows each book's position in the library.

Library

  • Up to 3 library folders, switchable as tabs, each with an optional custom name (falls back to the folder name).
  • Folder browsing — clicking a folder card steps into it right in the library (subfolders supported): the level's folders, archives and loose images all show as cards, and clicking an image starts reading that folder's images from it. Backspace goes up one level, a breadcrumb bar tracks the path, and Shift+Enter (or Shift+click) reads a whole folder — subfolders included — as a single book.
  • Cover grid with disk‑cached thumbnails and a per‑book progress bar (folder cards show their reading progress too).
  • Keyboard navigation — arrow keys move a focus highlight across the grid and Enter opens the focused item; the focused position is remembered per library and across sessions, so returning from a book, switching back to a library, or relaunching the app puts the focus right where you left it. Entering a folder auto‑focuses the page you last read.
  • Subfolders with no readable content (no images or archives anywhere inside) are skipped — no unopenable ghost entries.
  • Delete from the library — Delete moves the focused item to the Recycle Bin, Shift+Delete erases it for good. Both confirm first (a folder card names the whole folder, since its contents go with it) and the saved reading position is dropped along with the book.
  • Configurable behaviour when you page past the first/last page: do nothing, or jump to the previous/next book (in folder browsing this continues into the next sibling folder or archive).

Formats

Kind Supported
Archives .zip · .cbz · .7z · .cb7 · .epub
Folders any directory of images
Images .jpg · .jpeg · .png · .gif · .webp
  • EPUB is read in OPF spine order (including first‑image parsing from XHTML).
  • Non‑Unicode filenames (e.g. Shift‑JIS) are detected and displayed correctly.
  • Drag & drop onto the window: an archive opens immediately; an image opens its folder as a book starting at that image; a folder opens as a temporary browsing root in the library.
  • Size limits — only image entries are ever extracted from archives, and each page is capped at 2 GiB of decompressed data; anything beyond that is treated as a corrupt or malicious file (decompression‑bomb protection).

Image quality

  • Fast — the GPU's built‑in scaling (real‑time).
  • High quality — Lanczos3 resampling in the background (with a short debounce after the view settles).

Comfort

  • Themes: follow system, light, or dark.
  • Built‑in shortcuts overlay (F1).
  • Update reminder — checks GitHub Releases in the background at startup; when a newer version exists, a link appears in the toolbar (no auto‑download, and the check can be turned off in settings).
  • Window position & size are remembered across sessions (including maximized state).
  • Settings and reading progress are stored in the OS standard config directory.

Download

Grab the single executable from the Releases page (or build it yourself, below) and run it — no installation needed.

Note: the executable is unsigned, so antivirus software or SmartScreen may occasionally flag it as a false positive. Every release lists the SHA‑256 of MangaRust.exe so you can verify your download.

Build from source

Requires a recent Rust toolchain (edition 2024).

# Debug run
cargo run

# Optimized build → target/release/MangaRust.exe
cargo build --release

To produce the single‑file release exactly as CI does (Windows):

./pack-release.ps1   # builds release → dist/MangaRust.exe + prints its SHA‑256

Controls

Reading mode

Input Action
← / → Turn page (follows reading direction; RTL manga: ← = next)
Mouse Left / Right click Next / previous page
↑ / ↓ · Mouse wheel Scroll the current image
Home / End First / last page
PageUp / PageDown Zoom in / out
Space Page thumbnails (click a thumbnail to jump)
Backspace Up one level (browse the book's folder)
Esc Close the thumbnail bar · reset zoom
Tab Toggle single / double page
1 / 2 / 3 Fit width / fit height / original size
F3 Back to the library

Library mode

Input Action
Click a card Open a book / enter a folder / read an image
← / → / ↑ / ↓ Move the focus highlight
Enter Open the focused item
Backspace Up one level (folder browsing)
Shift+Enter · Shift+click Read a folder as a single book (subfolders included)
Delete Move the focused item to the Recycle Bin
Shift+Delete Delete the focused item permanently
1 / 2 / 3 Switch to library 1 / 2 / 3
Mouse wheel · Scrollbar drag Scroll the grid

Anywhere

Input Action
F1 Shortcuts help
F2 Settings
Drag & drop a file/folder Open it directly

Settings

  • Library — up to three folders, each with an optional display name.
  • Reading — reading direction, page animation, and what happens at the first/last page.
  • Display — theme, scaling filter (Fast / High quality), interface language, and the startup update check.

Configuration lives at %APPDATA%\MangaRust\ on Windows and ~/Library/Application Support/MangaRust/ on macOS.

Tech stack

  • UI: Slint (Fluent on Windows, Cupertino on macOS) with GPU (femtovg) rendering.
  • Archives: zip (zip/cbz/epub), sevenz-rust2 (7z).
  • Images: image for decoding, fast_image_resize (SIMD) for high‑quality resampling.
  • Text encoding: chardetng + encoding_rs for non‑Unicode filenames.
  • i18n: Slint's gettext‑based bundled translations — community .po files under lang/.

Platform support

  • ✅ Windows 11 (primary target).
  • 🚧 macOS — builds with the Cupertino style; awaiting on‑device verification.

Roadmap

  • Library folders over SFTP / WebDAV (with credentials).
  • Network drive / cloud storage as library sources.

A VFS abstraction for library sources is planned to make this possible.

Contributing

Issues and pull requests are welcome. Translations are especially easy to contribute — add or edit a .po file under lang/<locale>/LC_MESSAGES/ and open a PR.

License

MangaRust is free software, licensed under the GNU General Public License v3.0 — see LICENSE.

About

A lightweight, fast, no-frills manga & image reader written in Rust (Slint GUI, single portable exe).

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages