Tag Archives: peazip

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!

PeaZip

[[Rich's Note: This entry was submitted by Giorgio Tani from the PeaZip project. If you'd like to write up something about your project and have it featured on the SourceForge blog, please email me directly at community@sourceforge.net.]]

The PeaZip project started in 2006, aiming to create a file archiver providing an unified, cross-platform GUI for many Open Source technologies (over the time it was added support for 7-Zip/p7zip, FreeArc, PAQ, UPX, etc…).

So, unlike classic Windows file archivers like i.e. WinZip and WinRar, PeaZip is structured as a frontend for multiple tools, like Ark and FileRoller does on Linux systems, this results in a comprehensive, modular tool, capable of handling all the most popular archive formats (130+ file types).

archive
(This is a preview of an upcoming release.)

Since the beginning of the project I chose Lazarus/FreePascal as development environment for PeaZip for many reasons: it is an Open Source project itself (and is assiduously developed, and can rely on a wide and active community), I appreciate Delphi language, and, most important, it allows to create cross-platform graphic applications using native GUI’s API of the target system, which means resulting application are fully integrated in the target system in terms of functionalities and look & feel.

This allows PeaZip source code to be compiled for Win32, GTK2 and Qt, and of course it opens endless possibilities of porting as Lazarus project progress and supports newer environments.

extract
(This is a preview of an upcoming release.)

Year after year, users’ feedback and suggestions actively shaped the evolution of the project, opening it to integrate a wide array of advanced file/archive management features (search, bookmarking, thumbnail viewer, hashing, find duplicate files…), especially focused on security (strong encryption, two factor authentication, encrypted password manager, secure deletion…).

The archive creation/conversion/extraction dialogs feature an innovative and easy to use interface, more similar to CD burners interfaces rather than to a classic file compressor.

peazip-gtk2

This design makes extremely simple to check (and update) items set for compression and extraction, integrating a full featured file manager component.

Tasks being created in the GUI, if desired, can be saved as batch scripts, in order to automate backup operations, or for fine tuning, or for learning purpose – a concept featured since the beginning of the project, aiming to bridge the gap between the ease of use of GUI applications and power and flexibility of console.

PeaZip is available for Windows and Linux, for both platforms either as installable and as portable software, not needing installation, an ideal choice for environments where it is not possible, or not desired, to modify the host system, or to have the application available in a removable device, or just to try it.

peazip

PeaZip for Linux is desktop neutral, and meant to run on Gnome and KDE as well as on different desktop environments.

Please note that Linux installers (DEB, RPM, and TGZ are available) are generic, meant to be compatible with as many distributions and versions as possible rather than integrating at the best with a specific distribution/version, so it is recommended to check repositories of your distribution for specific packages.