Opened 10 years ago
Last modified 10 years ago
#2247 closed task
Find alternative to SharpZipLib — at Version 11
Reported by: | abeham | Owned by: | abeham |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.11 |
Component: | General | Version: | 3.3.10 |
Keywords: | Cc: |
Description (last modified by ascheibe)
We recently tried to do some updating of existing zip files using the sharpziplib that we include in the PluginInfrastructure. What should have been easy turned into a long bug hunting session with the result that this is simply broken for Zip64 stored zip files (the default), but does work with files stored using Zip32.
In this process we noted that the last commit to SharpZipLib was 2 years ago, the last release was more than 4 years ago. It looks like the project has been abandoned.
We should look for alternative Zip libraries that are actively maintained. We saw that in .NET 4.5 the System.IO.Compression namespace got new classes to handle Zip files (in .NET 4 and earlier only Gzip is supported). If this could be used in our project it would be a reason to switch to .NET 4.5 in my opinion.
TODO:
* Check if there is a bug in UploadPluginsView.CreateZipPackage()
Change History (12)
comment:1 Changed 10 years ago by ascheibe
comment:2 Changed 10 years ago by gkronber
Discussion in architects meeting: ascheibe checks if projects with external partners are compatible
comment:3 Changed 10 years ago by gkronber
- Owner changed from architects to ascheibe
- Status changed from new to assigned
comment:4 Changed 10 years ago by ascheibe
I measured the time it takes to save and load files with SharpZipLib and IO.Compression.ZipArchive:
Test 12 MB file
Type | Time (in sec, avg. of 3 repetitions |
---|---|
SharpZipLib - Load | 7.32 |
SharpZipLib - Save | 7.14 |
.Net ZipArchive - Load | 7.12 |
.Net ZipArchive - Save | 7.21 |
Test 88 MB file
Type | Time (in sec, avg. of 3 repetitions |
---|---|
SharpZipLib - Load | 43.97 |
SharpZipLib - Save | 43.80 |
.Net ZipArchive - Load | 42.61 |
.Net ZipArchive - Save | 43.03 |
File sizes:
File | Exact Size SharpZipLib | Exact Size .Net ZipArchive |
---|---|---|
12 MB | 11.9 MB | 12.5 MB |
88 MB | 86.5 MB | 92.9 MB |
comment:5 Changed 10 years ago by ascheibe
- Description modified (diff)
comment:6 Changed 10 years ago by ascheibe
r11650 switched persistence, instance providers, plugin infrastructure and MathJax to System.IO.Compression
comment:7 Changed 10 years ago by ascheibe
r11651 removed SharpZipLib settings and files from the services and slave projects
comment:8 follow-up: ↓ 9 Changed 10 years ago by ascheibe
- Owner changed from ascheibe to gkronber
- Status changed from assigned to reviewing
While rewritting the code I found something which may be a bug: UploadPluginsView.CreateZipPackage() creates entries in a zip archive, but does not save anything to these entries. Is this ok or is this a bug?
comment:9 in reply to: ↑ 8 Changed 10 years ago by gkronber
- Owner changed from gkronber to ascheibe
- Status changed from reviewing to assigned
Replying to ascheibe:
While rewritting the code I found something which may be a bug: UploadPluginsView.CreateZipPackage() creates entries in a zip archive, but does not save anything to these entries. Is this ok or is this a bug?
This is indeed a bug. The functionality to upload plugins to the server has never been used. Generally the plugin-infrastructure contains a lot of code and complexity that should be removed because we stopped supporting plugin-updates.
comment:10 Changed 10 years ago by ascheibe
- Owner changed from ascheibe to abeham
- Status changed from assigned to reviewing
Ok, thank you for the info, then we will clean this up in the future in a seperate ticket.
comment:11 Changed 10 years ago by ascheibe
- Description modified (diff)
One other zip lib (that also supports zip64) that I know of is http://dotnetzip.codeplex.com/. But it also seems to be abandoned now, I looked at the changelog, last commit was in 2012.