|Classes of David Tamas||>||ZipFly PHP ZipArchive zip64 Creator||>||README.md||>||Download|
G-Lex's zipFly compression library
This PHP library helps you to create true zip64 archives that contains hundreds of thousands of files. It is highly optimized for low memory and I/O usage even when you need to compress a large number of files.
I started to create a custom PHP based backup software that can accomplish my special requirements. I've got 12 debian wheezy and jessie based linux servers with PHP 5.6 installed on it. Originally I wanted to use the built-in zipArchive class to the compression purpose. Unfortunately I have realized that the version shipped with the OS can't do this job. When adding a large number of files to the zip archive I was running into memory limit problems as well as file descriptor limit issues. The reason is that when a file is added to the zip, the source file will open and remain open until you close the entire zip file. After I solved the file descriptor issue with closing and reopening the zip archive after a certain number of added files, I was attempting to compress some larger files. I think you know... I faced another surprise. The original zip format has file number and file size restrictions. Because the zipArchive version that I used did not support the zip64 extension to overcome these limits, so the created large zip files can not be extracted due to file corruption. There was also lot of another problem with zipArchive: big I/O wasting, can not set different compression algorithm to different files, can not track the compression progress and more and more... I tried to find another solution in the form of different PHP classes, but none was perfectly suited to this task.
This was the point where I decided to develop my own solution.
Ideas to be tested and reimplemented
I had to make my own class because I needed a functionality that I did not find in a ready-made library, and I did not find it effective and perfect way if i modify one of them. I did not want to create a zip library with the same features as the hundreds of other zip classes. I have studied many different open source zip compression libraries that were also fantastic in themselves. By combining best techniques from these with my own ideas, I've created the zipFly64 library.
Interestings of this library
Warnings & Limitations
This library and the associated files are non commercial product. It should not have unexpected results. However if any damage is caused by this software the author can not be responsible. The use of this software is at the risk of the user.