Skip to content

dendec/zimlite

Repository files navigation

Zimlite

Lightweight offline ZIM/Markdown reader for game consoles and desktop.

🌐 Website

Renders Wikipedia ZIM archives, Markdown, and HTML files via SDL2. Supports keyboard, mouse, and gamepad input. Designed for low-power ARM devices (PortMaster) but runs on any Linux/Windows desktop.

article
More Screenshots
menu library tree cn_math

Features

  • HTML — Converts HTML to Markdown then render it
  • Article Tree — Radix-tree browser for ZIM articles
  • Online Library — Browse & download ZIM archives from Kiwix Library
  • Emoji — Embedded Twemoji SVGs (compressed zip), rendered via LunaSVG
  • Animated GIFs — Frame-based animation in documents
  • SVG Images — Inline SVG rasterization
  • Themes — Light/Dark color schemes
  • Font Zoom — Adjustable font size
  • Settings — Persisted to config.json
  • Gamepad — Full controller support for PortMaster devices
  • Touch/Mouse — Click links, scroll wheels

Building

Linux (AMD64)

Native build requires SDL2, SDL2_ttf, and libzim dependencies.

# Install dependencies (Ubuntu/Debian)
sudo apt install libsdl2-dev libsdl2-ttf-dev liblzma-dev libzstd-dev

# Build only the binary
make build

# Build a complete distribution (zip with libraries)
make dist-amd64
# Output: dist/zimlite-linux-amd64.zip

Windows (Cross-build via Docker)

make dist-windows
# Output: dist/zimlite-windows-amd64.zip

PortMaster / ARM64 (Cross-build via Docker)

make dist-portmaster
# Output: dist/zimlite.zip

Quick Start

# Install dependencies & build
sudo apt install libsdl2-dev libsdl2-ttf-dev liblzma-dev libzstd-dev
make build

# Run with a ZIM archive or markdown file
./zimlite wikipedia_en_100_maxi_2026-04.zim
./zimlite test.md

Development

For architecture details, build targets, and dependencies, see docs/DEVELOPMENT.md.

Configuration

Fonts

By default, Zimlite uses embedded GNU Unifont for maximum Unicode compatibility.

To use a custom font, set the KIWIX_FONT environment variable:

export KIWIX_FONT="/path/to/your/font.ttf"
./zimlite

Settings

config.json next to the binary:

{
  "language": "en",
  "theme": "dark",
  "font_size": 16
}

KIWIX_DEBUG=1 enables debug logging.

License

GPL-3.0

About

Lightweight offline ZIM reader for game consoles and desktops

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages