.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. 

Zveřejněno 04 August 09 10:00 by topas
Vedeno pod:

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í RSS

Komentář

# P_V said on August 5, 2009 6:33 AM:

SharpZip knihovna má ke GPL licenci výjimku na přilinkování k aplikaci, takže pokud knihovnu ponecháte v samostatném dll, licence vás neomezuje.

# Petr Šnobelt said on August 5, 2009 8:41 AM:

Ahoj,

díky za přehled, umí některá z knihoven komprimovat do více souborů, případně "přebalit" velký soubor do více menších?

Díky

# topas said on August 5, 2009 8:47 AM:

P_V: Moc díky za koment. Tohle mi nějak uniklo - už jsem to v článku zmínil.

# freelancer said on November 21, 2011 11:15 AM:

Distinguish article!

# 4rx complaints said on December 12, 2011 10:20 PM:

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.

Vytvoření nového komentáře

(povinný) 
(nepovinný)
(povinný) 
Opiš čísla, která vidíš na obrázku: