EPUB reader written in Haskell
  • Haskell 92%
  • Scheme 4.5%
  • Shell 3.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Marko Andjelic f6ec5c20d8
allow loading of new epub through file picker
ctxRender changed to a TVar to allow mutability of the render

make loadBook reset stCache and stIndex

write render TVar right before handing off to main thread

remove everything from the sidebar ListBox before populating it again
2026-07-01 20:05:04 +01:00
app allow loading of new epub through file picker 2026-07-01 20:05:04 +01:00
test refactor: streaming loader, hierarchical TOC, parser robustness 2026-06-26 03:45:29 +01:00
.envrc fix guix dev setup, add hls to dev env 2026-06-23 23:50:49 +01:00
.gitignore add gitignore 2026-01-20 22:37:24 -04:00
guix.scm fix guix dev setup, add hls to dev env 2026-06-23 23:50:49 +01:00
LICENSE Initialization 2026-01-21 01:23:54 +00:00
README.md Initialization 2026-01-21 01:23:54 +00:00
run-svitak.sh fix: build outside the guix container, run the binary inside 2026-06-26 03:44:18 +01:00
svitak.cabal refactor: streaming loader, hierarchical TOC, parser robustness 2026-06-26 03:45:29 +01:00

Svitak 📖

A minimal EPUB parser and reader written in Haskell.

Installation

System prerequisites:

  • GHC ≥ 9.10
  • GTK / WebKit system libraries (required by gi-gtk and gi-webkit)

Dependencies

Arch:

sudo pacman -S \
  ghc cabal-install \
  gtk4 \
  webkitgtk-6.0 \
  gobject-introspection \
  pkgconf

Feel free to make a pull request for instructions regarding your OS/distro

Clone the repo

git clone "https://git.ajattix.org/castelia/svitak.git" && cd svitak

Building

Update the package index (optional but recommended):

cabal update

Proceed with building:

cabal build