Hi Christian,

zimlib has already a own iostream implementation so there is no limitation 
there. But I see the problem with file systems, which may limit the file size.

I am willing to implement whatever solution we prefer. Larger changes in 
zimlib is not an issue, which should affect our decision. I want to have the 
best possible solution - not the easies to implement.

The old zeno implementation as well as early implementations of zimlib had a 
feature to support multiple files. Instead of opening a single zim (or zeno) 
file it was able to open all zim files in one directory.

The last german wikipedia DVD had separate files for text and images as well as 
a separate DVDs for images with higher resolution. Just by copying the files 
into one directory it was possible to access all content from all zeno files.

I removed the feature for better portability. There is no standard feature to 
read all files in one directory.

Your suggestions 2 and 3 imply, that the creator of the zim file needs to 
address the problem. He has to split the content. Of course the zimwriter can 
help by automatically split the file. But handling zim files will get more 
difficult. The user has to know, which files belong together and if he 
downloads 
zim files, he has to download multiple files. It implies, that we must extend 
the specification to limit the file size to 2G. I don't like that. I don't want 
to limit it per spec.

The solution 1 has really the advantage, that the user can download a single 
zim file and split himself when needed. There is even a unix/linux-tool to 
split files into pieces named split (isn't it nice how intuitive unix really is 
;-) ).

It is quite easy to extend the iostream to support multiple files, so that it 
internally join the files into one zim file. We just have to think about the 
interface, how to tell zimlib which files to join.

As you suggested a naming convention is one possible solution. We may even use 
the schema from split. So if you split foo.zim into parts, the parts are named 
foo.zimaa, foo.zimab, foo.zimac and so on. If you tell zimlib to open file 
foo.zim and it is not found, it looks for the parts until it do not find any 
more.

The user can split the files as needed and join then back using cat. Very easy.


Tommi
_______________________________________________
dev-l mailing list
[email protected]
https://intern.openzim.org/mailman/listinfo/dev-l

Reply via email to