Skip to content

v0.1.0

Latest

Choose a tag to compare

@madeofpendletonwool madeofpendletonwool released this 05 Sep 12:18
70e0613

Initial release: a pure-Go, stdlib-only reader for DRM-free MOBI and AZW3 (KF8) ebooks.

  • MOBI6: uncompressed, PalmDOC, and HUFF/CDIC text; EXTH metadata; resource records (images, covers, fonts, media); INDX NCX table of contents; legacy <toc> fallback
  • AZW3/KF8: raw-flow decompression, FDST, skeleton/fragment reassembly, RESC page spreads, kindle: URI resolution, guide
  • Combo files (MOBI6+KF8) open as their KF8 half with the MOBI6 view alongside
  • DRM is detected and refused with a typed error — circumvention is permanently out of scope
  • Frozen public API: Open/OpenBytes, Book.Metadata/Text/Sections/TOC/Guide/Resource/Cover, the unified Section interface, typed sentinels (ErrDRM, ErrNotPalmDB, ErrCorrupt, ...)
  • Correctness proven against the KindleUnpack oracle: the committed fixture corpus (synthetic matrix plus real public-domain books) matches byte-for-byte on raw markup, KF8 section assembly, metadata, chapter titles, resources, and covers; every decoder runs 30s-per-target under fuzzing in CI
  • GPL-3.0-only, ported with attribution from KindleUnpack (GPL-3.0) with foliate-js (MIT) as the structural reference

Known gap: no real Amazon HUFF/CDIC-compressed file in the fixture corpus (oracle-verified synthetic coverage only).