Difference between revisions of "ZIM file format"

Jump to navigation Jump to search
24 bytes added ,  10:07, 15 March 2023
m
Real zimlib -> libzim fix
(Zimlib -> libzim)
m (Real zimlib -> libzim fix)
Line 89: Line 89:
|}
|}


caches directory entries and references the cached entries via the URL pointers.
Libzim caches directory entries and references the cached entries via the URL pointers.


== Title Pointer List (titlePtrPos) ==
== Title Pointer List (titlePtrPos) ==
Line 112: Line 112:
The indirection from titles via URLs to directory entries has two reasons:
The indirection from titles via URLs to directory entries has two reasons:
* the pointer list is only half in size as 4 bytes are enough for each entry
* the pointer list is only half in size as 4 bytes are enough for each entry
* accessing directory entries by title also makes use of cached directory entries which are referenced by the URL pointers, as implemented in .
* accessing directory entries by title also makes use of cached directory entries which are referenced by the URL pointers, as implemented in libzim.


== Directory Entries ==
== Directory Entries ==
Line 199: Line 199:
A cluster can be extended only if the zim major version is 6. Else (major version == 5) cluster will always be not extended.
A cluster can be extended only if the zim major version is 6. Else (major version == 5) cluster will always be not extended.


The uses [http://tukaani.org/xz/ xz-utils] as a C++ implementation of lzma2, for Java see [http://tukaani.org/xz/java.html XZ-Java].
The libzim uses [http://tukaani.org/xz/ xz-utils] as a C++ implementation of lzma2, for Java see [http://tukaani.org/xz/java.html XZ-Java].


To find the data of a specific directory entry within a cluster the uncompressed cluster has a list of pointers to blobs within the uncompressed cluster after the first byte.
To find the data of a specific directory entry within a cluster the uncompressed cluster has a list of pointers to blobs within the uncompressed cluster after the first byte.
Line 269: Line 269:
If you use a common rendering engine or HTML widget you don't have to care for this cases, you can just use the requests as they are submitted by the engine / widget.
If you use a common rendering engine or HTML widget you don't have to care for this cases, you can just use the requests as they are submitted by the engine / widget.


Should you render the article contents by yourself you have to consider this and take care of it before you hand requests to .
Should you render the article contents by yourself you have to consider this and take care of it before you hand requests to libzim.


== Encodings ==
== Encodings ==

Navigation menu