GEMPUB E-book Format

GEMPUB (file extension .gpub, MIME type application/gpub+zip) is a proposed e-book container format for Geminispace — e-books made of text/gemini (gemtext) files rather than web technologies. Drafted by oppenlab on Codeberg (2021), it answers a real gap: EPUB carries the full weight of HTML/CSS/JS rendering, while authors publishing in gemtext want an e-book that stays inside Gemini’s deliberately minimal toolchain. Its secondary purpose is as an archival format for Gemini capsules (a capsule = a Gemini site).

Format structure

A .gpub is a ZIP archive with a defined internal layout:

  • metadata.txt — required metadata file (title, author, language, etc., in a simple key-value style consistent with Gemini’s line-oriented aesthetic).
  • Gempub index file — a gemtext document serving as the book’s table of contents / landing page; readers open here and follow => link lines into content.
  • Content — the chapters as text/gemini files, plus images and other assets, arranged in a directory structure the index links into.
  • Charsets — UTF-8 recommended throughout; the spec includes accessibility guidance and recommendations for handling external links (an e-book reader may be offline) and unfamiliar embedded file formats.

The deliberate non-goals mirror Gemini’s: no scripting, no styling layer, no DRM machinery. A GEMPUB reader only needs ZIP + a gemtext renderer — the reference implementation target was the Lagrange Gemini client.

Context

GEMPUB sits in the small-internet ecosystem alongside the Gemini protocol itself (request/response over TLS, status codes 1x–6x, gemtext media type) and companion conventions like Gemini page subscription (a lightweight alternative to RSS where clients parse a page’s link lines for dated gemlog entries). All of it descends from solderpunk’s Project Gemini spec work at gemini.circumlunar.space (now geminiprotocol.net).

Sources