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/geminifiles, 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
- oppenlab/gempub: GEMPUB eBook Format Specification
- Gemini hypertext format (gemtext) specification v0.24.1
Related
- gemini-compatible-markdown — the gemtext format GEMPUB containers hold
- uniform-resource-locators — gemtext link lines carry URLs, including relative links inside the archive
- day-one-to-obsidian-conversion — another line-oriented format-conversion workflow