Overview
The Kiwix Association has developed an efficient way to provide offline copies of resources including Wikipedia, Project Gutenberg, and various programming documentation, among others. Kiwix compresses these resources into the binary ZIM file format, with a 1-to-1 relationship between resources and ZIM files. For example, a recent snapshot of Wikipedia is available as a 115 GB ZIM file. Kiwix supplies various viewers and servers for ZIM files with a focus on serving areas without Internet access.
As part of a project to create a standalone, resilient computing system that could operate off the grid after a hurricane or other disaster, it is desirable to have a local ZIM file viewer. The existing applications I've tested for this purpose all have significant drawbacks. For instance, the official Kiwix viewer insists upon having a torrent client available at run time and complains if one isn't present. To complicate matters further, the Kiwix Association released their official library for interacting with ZIM files under the GNU General Public License, version 2. While this license isn't problematic by itself, it also isn't the best choice for a library license.
Instead of creating a GPLv2-licensed application that relies on the Kiwix library, this project will instead use the ZIM file format documentation to implement a pure Python reader module. A GUI can then be added using Qt for Python to be consistent with the other projects. This is a greenfield project: no code has been written yet.