.NET a Zip komprese
Po zkoumání různých knihoven pro Zip kompresi jsem se rozhodl sepsat nějaký souhrn, který by pomohl někomu dalšímu ve správném výběru. Zaměřuji se na knihovny, které jsou k dispozici zdarma a jsou k dispozici se zdrojovými kódy. Komerční řešení nechme stranou.
Jaký vlastně máme výběr? Podařilo se mi najít 4 knihovny nebo způsoby, jak vytvořit Zip soubor. V úvodu jsem se zapomněl zmínit, že se zajímám o tvorbu Zip souboru nikoliv o DeflateStream, GZipStream a jim podobné kompresní udělátka.
Vlastnosti knihoven uvádí následující tabulka:
| Knihovna | SharpZipLib | DotNetZip | ZipStorer | ZipPackage | ZipStorer 1.01 |
| Adresa | Icsharpcode | CodePlex | CodePlex | MSDN | CodePlex |
| Licence | GPL | Ms-PL | Ms-PL | součást Frameworku | Ms-PL |
| Minimální Framework | .NET 1.1 | .NET 2.0 | .NET 2.0 | .NET 3.0 | .NET 1.1 |
| Compact Framework | Ano | Ano | Ano | Ne | Ano |
| Velikost knihovny | 185 kB | 417 kB, redukovaná verze 164 kB | 0 kB (žádná externí assembly) | 0 kB (součást Frameworku) | 0 kB (žádná externí assembly) |
| Poslední vydaná verze | 8.11. 2008 | 28.8. 2009 | 10.3. 2010 | - | 14.6. 2009 |
| Aktivní vývoj | Ne | Ano | Ano | - | Ano |
Poznámky a postřehy
SharpZipLib
- Výborná knihovna podporující Zip, GZip, Tar a BZ2 kompresi
- Licence obsahuje dodatek k GPL, ve kterém se umožňuje použití knihovny v programu jakékoli licence (i pro komerční použití), pokud je knihovna k programu referencována jako samostatná assembly.
- Není aktivně vyvíjena
- Upravená verze pro Silverlight: http://slsharpziplib.codeplex.com/
DotNetZip
- Velmi snadné použití
- Aktivní vývoj (po nahlášení chyby byla po pár dnech uvolněna opravená verze)
ZipStorer
- Velmi snadné použití
- Pro přidání do projektu – žádná externí assembly navíc
ZipPackage
- Přímo součástí .NET Framework 3.0 a vyšší
- Složitější způsob komprimace a dekomprimace
- Vytváří uvnitř Zip souboru [Content_Types].xml, ve kterém jsou uloženy metadata k souborům (to může být problém např. při rozbalování pomocí jiného programu)
ZipStorer 1.01
- Starší verze knihovny ZipStorer
- Nekomprimuje data, jenom využívá struktury Zip souborů
- Velmi jednoduchá – možnost použít v Silverlightu
Závěr
Osobně se mi velmi zalíbila knihovna DotNetZip, protože se velmi snadno používá a je v aktivním vývoji. Má také licenci, která umožňuje použití v komerčním software.
A co vy? Máte nějakou svou oblíbenou knihovnu a nebo nějaký tip?
Upraveno 7.4. 2010: Aktualizace tabulky s novými verzemi knihoven.
Upozornění na nové komentáře
Pokud chčeš dostávat upozornění emailem na změny u toho příspěvku,tak se zaregistruj zde.zde
Odebírat komentáře k tomuto příspěvku pomocí