Remove namespaces

From openZIM
Revision as of 13:06, 16 October 2018 by Kelson (talk | contribs)
Jump to navigation Jump to search

This pages proposes a plan to remove the namespaces from the the ZIM format. His goal is to:

  • Define the new format (without namespaces)
  • Secure the ZIM format features
  • Propose a path to make the libzim still work with older ZIM files.

History

Namespaces have been created to allow to make the difference between content of different types, for example images and text. The idea was to provide features base on this separation.

Problem

By adding an namespace in at the beginning of the URL path, it change all the URL from the original content. This has for consequences principal consequence that at the ZIM creation time, we need to rewrite all URL (if possible at all, think about dynamically generated URLs). This is costly and impossible to do perfectly. On the top of that, the content creator loose the full control of the URLs in the ZIM file.

Specification proposal

We propose to simply remove the whole concept of namesapce in the openZIM spec.

Libzim

It seems impossible that the new version of the format is readable from the older ZIM files, but the new version of the libzim should be able to deal with the older ZIM files.

The idea is to keep the storage format the same, but we would add a NULL namespace and if not namesapce is given (in the URL) then we would assume that this is a NULL namespace.

In a few years, we could then remove the namespace from the file themselves.