Tag Archives: zip

September 2012 Project Of The Month: PeaZip

SourceForge is delighted to announce that September 2012’s Project of the Month is PeaZip, a compression/decompression utility supporting dozens of compression formats. I spoke (via email) with Giorgio Tani, the lead developer on this project, about the project, its history, and its future.

Rich: Congratulations on being the Project of the Month! Tell us about PeaZip, and what it does.

Giorgio: Thank you, I’m truly honoured by this wonderful opportunity to talk about PeaZip project, and to thank all people that have contributed in so many ways to its success.

PeaZip is a file and archive manager, a sort of Swiss-army knife software for handling data: create, extract, and convert archive files, encrypt and decrypt (a password manager is featured), securely delete files, calculate a wide range of checksum and hashes, and find duplicate files.

Basically, any feature useful to store, backup, and share files is (or should be) in the scope of this project, but at the same time it also aims to keep a friendly user interface where functionalities can be easily discovered without complicating the most basic and common usage patterns.

A distinctive trait of PeaZip is its compression/extraction interface, designed to make it extremely simple to check (and update) items set for compression and extraction, as it integrates a full featured file manager. Also, the application aims to bridge the gap between the ease of use of GUI applications and the power and flexibility of the console: tasks created in the GUI can be saved as batch scripts, in order to automate backup operations, for fine tuning, or for learning purpose.

Rich: What is the history of PeaZip? What inspired you to start the project?

Giorgio: The first important source of inspiration was the discovery of Lazarus/FreePascal IDE, an excellent choice for deploying cross-platform applications, using native GUI elements, and almost self contained in terms of dependencies – excellent for creating natively portable software packages, a quality I appreciate very much.

Then, in 2006, using the excellent Wolfgang Ehrhardt’s Pascal/Delphi crypto library, I started designing PEA (that stands for “pack, encrypt, authenticate”), a format for archiving files providing compression and authenticated encryption. PeaZip was initially meant just as the frontend for PEA format creation and extraction, in my mind a secondary goal for the project, but soon user’s feedback encouraged me in focusing on deploying general purpose GUI fronted, supporting an increasing number of file formats through Open Source technologies like 7-Zip/p7zip, FreeARC, PAQ family compressors, etc…

Rich: PeaZip is able to create 12 different compression types, and extract over 150 types. Are there patent restrictions on any of the file types that you’re able to create? Have legal matters played any role in the file types that you’re able to work with?

Giorgio: Definitely yes: every time it is possible I prefer to focus the development on supporting file formats not encumbered by patent restrictions, or even better ones whose file format specifications and reference implementation are released under Open Source licenses.

The full disclosure of the format specification and of the source code is in my opinion the best way to defend user’s right against possible vendor lock-in abuses, and against possible design or implementation flaws passing undetected due to the difficulties in conducing proper amount of independent analysis if the format is poorly documented or the source code is not accessible.

Rich: For years, you’ve had an incredibly active release schedule, pushing out new releases sometimes every month. Does the compression landscape change that frequently?

Giorgio: Yes, those years had seen an incredible amount of advancements in compression field, and most prominent applications like WinZip, WinRar and 7-Zip are progressing quickly: encryption is becoming a fundamental component in designing archive formats, filesystems and communication protocols; multicore CPU become mainstream and efficiently using parallelism is a key factor for performances; new operating systems were released and had to be tested.

Following “Release early, release often” paradigm in last years I tried to keep up with updates of Open Source technologies employed in the project, improve the usability of the GUI frontend, and improve the system integration of the software.

Providing frequent updates and collecting as frequently the feedback from users I attempted to guide the growth of the project, balancing the need of introducing new features and the need of keeping the application familiar and easy to use both for newer and older users.

Rich: Where is the project going in the future? What is there still to do?

Giorgio: There is a lot to do! There’s plenty of feature requests, sometimes contrasting: improve UTF8 support and system menu integration on Windows; improve support for ReactOS; compile natively for 64 bit without relying on ia32-libs on Linux; supporting latest releases of Qt and GTK widget toolkits… Lazarus project has just reached the 1.0RC milestone, and I’m excited to experiment the improvements it will bring for developers. I can anticipate next release PeaZip will support Matt Mahoney’s ZPAQ 4.04, and that from the UI’s point of view following updates will be evolutionary, refining the way the application behaves, how relevant information is displayed to users, and optimizing system resource usage.

Rich: How can people get involved in your community?

Giorgio: PeaZip project is active on SourceForge and Google Code, and in social media as Twitter, Facebook and Google+. In this way I try to reach many different types of users, each bringing a different user’s experience, different goals and different ways to use the application. I hope to be able to provide for each user the most comfortable mean to participate to the project in any possible way, with code, feedback (suggestions, feature request, bug reports), and (what is sometimes underestimated) with translations, that is a fundamental aspect for making the project accessible to a wider, non native English speaking, audience.

A big thank to all people that have contributed to PeaZip project’s growth: the teams of the fundamental “building blocks” (Lazarus, 7-Zip, FreeARC, Wolfgang Ehrhardt, Matt Mahoney and others…) for releasing those great pieces of software as Open Source, to translators that took time to localize PeaZip and keep it up to date release after release, to all people that tested the software and provided invaluable feedback over those 6 years!