concepts to improve the way archiving-related jobs are handled,
bridging the gap between GUI and command line based software:
archive layouts and exporting jobs to command line.
- Save archive layout:
archive layout is
list of object scheduled to be archived or extracted.
When creating a new archive or when extracting existing archives, files
and folders can be added to the archiving or extraction layout which is
visible on the bottom of the first tab of archiving and extraction
interfaces. Layout can be saved (and edited as a text
file), a saved layout can be added to the
current archiving or extraction layout and PeaZip will take care to
verify if entries
are duplicate and if they accessible. Layouts make easier to define,
handle, maintain and edit with external tools the lists of object to be
archived or extracted (i.e., for backup or restore purpouse).
- Save job definition
as script: most of the things possible to do with PeaZip
exported as a command line in a text file, using Save job definition
buttons in Console tab, both
in archiving/conversion and in extraction interface (or button in
job's window). From the console tab the job can be modified and tested.
Advanced users can use those saved scripts (main menu Tools > Saved job definition scripts points
to the default PeaZip's script directory) to speed up
building scripts, or for learning purpose about the underlying
executables, or for fine-tuning the
job bejond the GUI's capabilities.
Each job launched
by PeaZip run in a separate
PeaLauncher instance. If a job ends in error, or test and list jobs,
the job's window is kept open to let the user inspect and the job log
it generated, and the command behind the job.
PeaZip can also be set to
always keep open the job's window to always let the user inspect the
job log in Options > Settings > General (1) tab
In the same tab tab
it is possible to set
how those applications are presented to the users (binarie user
interface) chosing between 3 alternative modes:
- Console mode launch applications with their
console interface, allowing the user to spare resources and to see the
native text-based progress indicator for each application, which
generally is more reliable and detailed than the graphical one.
- Graphic mode: wraps the job in a graphical
presentation making easier to read and save job log and job definition,
to change underlying process priority, to pause or stop the job and to
open the output path in a click. Optionally at job completition the
window can auto close itself or shut down the system. This is the
default mode for most job types.
- Graphic + console mode: allows to get the best
two modes, with a GUI to control the job and a console window to have a
real-time log of ongoing activity.
better than... ?
Being PeaZip a frontend, each time an archive is queried
interprocess communication is involved: if the program / the
input path / the output path is on a slow network or slow unit this may
bring a slowdown.
But most of the time is usually spent on archiving/extracting
operations; in this case PeaZip is as fast as the invoked application
(7z, which is command line 7-Zip
Pea, UPX etc...), which
performance is mainly bound to the algorithm and the compression level
involved, being the underlying executables good and efficient
PeaZip features extremely fast operations, as tar/untar, split/merge
files, create archives with "store" compression level, quite fast
operations (i.e. Deflate based algorithms, like in gzip compression),
operations (when bzip2, LZMA, PPMd,
unrar, unace are involved), up to very slow operations when PAQ at
highest compression levels are used.
A wide range of performances and compression levels can be attained
using PeaZip, the point is in chosing the right balance between the two
By default PeaZip prompts to zip / unzip in the same path of the
input object, but in archiving and extraction interfaces the Output
group allows to set the output path.
The button on the right of the output address bar opens a standard
output selection dialog, while on the left the button shows a dropdown
menu allowing to select an output path from various pre-sets: system's
paths (inlcuding: current item's path, the last used path, desktop,
documents etc...), paths of bookmarked elements, and recently visited
paths (paths visited in the current session, and paths of previously
created or extracted archives). From this menu It is also possible to
set a default custom output path.
UPX is the only exception from that mechanism since it always compress
the input executable file in place.
In Options > Settings first tab it is available the option "Open
output path when job completes".
Otherwise iin the same tab is available the PeaLauncher options
dropdown menu: select "Always keep open to inspect job report" to be
able, alongside other features, to click "Open output path" button
after the job is completed - otherwise by default the job's window will
auto close if no error is reported.
application's language and settings
From Options >
Localization you can select the
application's language, PeaZip will display language files in
You can download additional localizations from "PeaZip resources" group
on SourceForge, and manually copy them in peazipfolder\res\lang\ path.
New translations are made available for users as soon as they are
provided, and then will be packaged with future releases of the program
for ease of use.
From Options >
in main menu you can deeply customize the applications behaviour; see
program's online help file for more
detailed description of available options, like turning on/off
messages, choosing a default archive format, etc...
Hint: the reset
allows to restore default settings; it does not reset bookmarks and
custom editors which have
Setting files can be reached clicking on the link on the bottom left of
the Settings panel, which represents the configuration's path.
Deleting configuration files forces PeaZip to rebuild configuration
based on hardcoded defaults; conversely, you can save backup copies of
the configuration files to keep desired settings.
PeaZip remembers last used compression levels and compression algorithm
for each format; custom options (where applicable), like passes,
dictionary size etc are remembered only for the current session or
until the compression format is changed.
All those settings can be reset to default using the reset button on
to stop and undo jobs
You can use "Stop" button in the graphic wrapper to stop the underlying
job's process; partial outcome of the job will not be automatically
deleted and will remain available for inspection, as well the job log.
How to add/remove
To delete a file inside an archive press Cancel or use Delete >
Delete from archive function. A confirmation dialog will be prompted
allowing to cancel the operation if desired.
To update or add files to an existing archive, with the archive opened
with PeaZip, files/folders can be dragged to the archive to be added:
the application will show archive update interface and the operation
can be confirmed pressing "Ok" button.
It could also be used the Add button or menu entry to go to archive
update interface; no file/folder will be jet listed to be added in this
The list of objects (in the bottom area of the window) can be modified
dragging files/folders on it, or rightclicking and using its context
menu functions (add files, add folder, remove selected objects etc);
the archive will be not updated until the operation is confirmed with
Hint: some archives cannot be updated (neither adding nor removing
files) because of solid mode used or because
the archive type is supported only for extraction.
Hint: at current level of development files/folders are added to the
archive's root level; this limitation can be avoided adding a path to
the archive, since the folder nesting will be replicated in the archive.
PeaZip supports more than 150 file extensions, only most common ones
are associated by the installer to the application, but all supported
file types can be opened from PeaZip's file browser.
Some file types are minor variations of most common archive formats
(i.e. APK, JAR, PAK and many more are basically ZIP archives) and
generally can be opened, even when not explicitly supported by PeaZip,
modifying the file extension.
Anyway, in those cases, additional standards may be mandatory
implemented by the format (i.e. resource's naming conventions,
checksums etc), so if you modify a file opened in that way be sure to
know the specific file format standard.
An exaustive file extension library can be found at File-Extensions.org
is a popular
archiving format, mainstream on Windows systems; ZIP file format
specifications are mantained by PKWare which originally developed the
Newer archive formats like 7Z, RAR and ACE have gained popularity and
introduced several improvements (some of them then brought into ZIP
format) like better compression ratio, recovery records, strong
encryption etc, but ZIP format retained much of its popularity gained
in several years of widespread use.
ZIP compression is quite fast and it's based on Deflate algorithm (like
in GZip format); alternatively Deflate64 or BZip2 based compression is
possible, and supported by PeaZip.
Recently WinZip (probably the most popular zip file utility on Windows
platform) introduced some new compression algorithms and a new
encryption scheme, Advanced Encryption (AE), AES based; AE-encrypted
archives and classic
ZipCrypto-encrypted archives are supported by PeaZip, that is also
capable to read PKWare's AES encrypted zip archives..
ZIP is the default
archive format for PeaZip .
open source archive
format, featuring AES encryption, native volume spanning, practically
unlimited storage capacity and high compression ratio.
Supported compression algorithms (LZMA/LZMA2
, PPMd ,
BZip2) can take benefit of
parallel computing on modern multicore CPUs.
The 7z archive format was introduced by 7-Zip
Windows platform and ported by p7zip
PeaZip uses the components from those two programs (which are released
under LGPL license as PeaZip) to offer the same GUI frontend to create,
browse, test and extract 7z and ZIP archives under Linux and Windows as
PeaZip for Linux is desktop-neutral so it can be used either under
Gnome or KDE desktop environment, or also other desktop managers.
System integration mechanisms relies on FreeDesktop standards and
requires a compliant environment, such Gnome and KDE, but basic
archiving operations are not affected.
- create separate archives
- extract multiple archives at once
- add/remove files from archives
- browse and search archive's content
- preview objects into zip files
- perform partial archive's extraction,
selected or filtered objects
To extract one or
more files supported through 7Z frontend (7Z, RAR,
TAR, ZIP and more) you can:
- Use context menu entry "Extract here" or
here (to new folder)"
- Use context menu entry "Extract..." to be asked
output path and other options
- Open the archive in
in PeaZip and use
"Extract" button (you can chose output path, enter password and other
options before confirming with "Ok") to extract selected object, or
Extract > Extract all in application's context menu to extract all
- Open the archive in
and drag desired objects from the application to the system (the
opposite can be used to add objects to the archive)
- Open the archive in
doubleclick on an archived file to preview it
To enter password
in PeaZip click in the locker icon in the status bar
(in the file/archive browser) or the locker icon below output address
field in extraction or archiving interfaces, or click Tools > Enter
password / keyfile in main menu, or press F9.
"Keyfile" is optional, leave it blank if you don't want to rely on two
factor authentication - use of keyfile increases security over password
only encryption since also having access to the keyfile will be
required to perform the extraction.
ARC (or WRC) is a new, open source archiving
format developed by Bulat Ziganshin.
The format features
strong but speed/memory efficient compression, comparable to or better
than RAR an 7Z formats for most filetypes.
ARC format supports also:
- recovery records (like RAR), for attempting
repair in case of corruption of the archive;
- strong encryption with AES, Serpent and Twofish
up to 256 bit key size) and Blowfish.
command line syntax is close to WinRAR one, allowing
easy porting of scripts from one program to the other.
PeaZip offers a GUI frontend to create, browse, test, repair and
extract ARC/WRC archives under Windows and Linux (on Gnome, KDE or
other desktop environments).
ARC/WRC files can be currently be browsed only in flat mode (shows all
objects in archive), but in any other aspect they can be handled as
ZIP/7Z files (see previous point).
Please note that ARC (or ARK) is also the extension of an archive
format developed by SEA company.
It was of mainstream diffusion before the introduction of ZIP; it has
no connection with FreeARC's ARC format. PeaZip does not support those
ZPAQ are families of experimental compressors developed by
Matt Mahomey and contributors.
computational requirements (memory, CPU time) if compared to mainstream
compressors, but reaches the highest compression ratio presently
Most of top
ranking compression algorithms
belongs from PAQ family or
are derived works like
ones featured in KGB
Archiver, WinUDA, WinRK and Emilcont.
LPAQ is a
version of PAQ, meant to be faster but providing lower compression
levels; it is a compression only utility, so LPAQ-compressed files will
feature a double extension, i.e. filename.ext.lpaq.
In PeaZip if multiple files are sent to be compressed by LPAQ they will
be automatically added to a TAR archive before, resulting in the doule
ZPAQ is the
evolution of the PAQ family, featuring backward
compatibility, while PAQ and LPAQ doesn't, so archives created with a
PAQ/LPAQ version need to be extracted with the same version.
PeaZip offers a GUI frontend to create, browse and extract many PAQ
(PAQ8F, JD, L and O) and LPAQ (LPAQ1 and LPAQ5) archive types, under
Windows and Linux (on Gnome, KDE or other desktop environments).
and BALZ are very efficient
compressor developed by Ilia Muraviev (QUAD and BALZ project pages),
high compression ratio and high extraction speed, due to the
observation most types of end users are expected to rutinely unpack
data and rarely compress files.
QUAD and BALZ are single file compressors, so compressed files will
feature a double extension, i.e. filename.ext.quad.
In PeaZip, if multiple files are sent to be compressed by QUAD or BALZ
they will be automatically added to a TAR archive before, resulting in
the doule extension TAR.QUAD or TAR.BALZ respectively.
PeaZip offers a GUI frontend to create, browse and extract QUAD and
BALZ compressed files, under Windows and Linux (on Gnome, KDE or other
ACE is a
proprietary archive format introduced on Windows platform by WinACE and
ported to Linux
as command line utility (extraction only) by the same Author of WinACE.
Due to the commercial nature of the format no free software is
available for creating ACE archives, but UNACE for
extraction of ACE archives was made available as royalty free (for use
and distribution) closed source software.
PeaZip features UNACE for Windows and Linux as external plugin on
Add-ons page in order
to keep the base PeaZip package free of closed source software (only
software released under OSI approved licenses are included in the base
package) and provide end users the ability of unpacking Ace archives..
UNACE plugin for PeaZip is available either as installable package or
as compressed package to be installed by hand (recommended for PeaZip
portable), and it's free of charge.
Why the application
not responding /
is slow on startup?
PeaZip may be
lengthy operations which needs to wait completition; i.e. PeaZip may be
querying the archive for browsing (especially when flat mode is used on
archives containing many files) or adding / removing files from
archives (needed time depends on the size of the objects and
compression options), or querying the system about files and folders
to be added to archive layout.
Any time a potentially lengthy operation is requested the cursor is
changed to horglass and, when possible, an animation is performed to
inform the user that the operation is running and is needing some time
to be completed.
On startup, PeaZip query the mounted units, so it can be slowed down
if, i.e., the system features remote units over a slow network, or has
defective drives, or slow removable units (like CD/DVD) are being
loaded in the same time.
Another potential source of slowness, both for PeaZip and underlying
backend processes, may be slowed-down disk subsystem, i.e. by high
degree of fragmentation, or cuncurrent disk usage by
antivirus/antimalware (especially if inspecting program's or work
files), p2p, file indexing programs (like Google Desktop, Picasa etc),
updates, paging, etc...
[to run disk-bound speed tests, please take in account that on most
systems files are cached after first usage, so becomes accessible in
less time in following tests]
Some algorithms featured by PeaZip (PAQ, ARC and 7Z at highest level of
compression...) requires big amounts of memory, so it is recommended to
avoid extreme settings which results in the system to page to disk,
that is some orders of magnitude slower than RAM.
Why the progress bar
reached the max, and the job is still running?
The graphic progress bar try to guess the job progress, but if you need
a real time report of the job's progress the native console
mode is more detailed and accurate.
In Options > Settings first tab, in "Backend binaries interface"
dropdown menu, you can set PeaZip to display both the GUI and
the console window if you want to have both a graphical interface to
control the job and a detailed, real time report on ongoing activities
in the console window.
Does PeaZip supports UTF-8
On Windows systems,
containing extended characters outside current system's codepage cannot
still be passed from the system to PeaZip due to limitations of the IDE
used for developing PeaZip, see online help for more information..
PeaZip supports drag and drop?
Drag and drop is
supported on Windows systems. You can drag and drop objects from the
system to the
application's icon and in the application's forms (main, archive layout
creation, archive browser).
From 2.1 version, in Windows, PeaZip can drag and drop objects from the
program's forms to the system (either to copy from a folder, or to
unpack fron an archive), through a custom drag&drop function.
It will not show standard Windows drag and drop icons and can drop
items to (file)Explorer windows or desktop.
The advantage of this custom function is that it doesn't need to copy
files to system's temporary path on drag&drop operations, speeding
up a lot the operation if big files are involved (especially noticeable
if files are not in the same volume of system's temp directory) and
don't risking to lowen the security of the operation if the system's
temp folder has security policies different from the ones of the
intended output destination.
PeaZip is yet not integrated with Windows drag and drop's context menu
handler (but it is integrated with rightclick's context menu for
zipping, unzipping and advanced operations).
PeaZip is integrated to
Windows system in the following ways
- You can rightclick on an object or a group of
and use the PeaZip's entries in context menu or "SendTo" menu to
directly send input
object(s) to a specified PeaZip's function.
- You can drag object(s) on PeaZip's program icon
the program will try to decide how to handle the object(s) provided by
- You can drag objects to an open PeaZip instance
put the application in full control of the process
- You can doubleclick on files of types
PeaZip to open them.
You can reconfigure
the application's system
integration running the configuration tool in Options > System
(which automatically requires administration rights if needed), or
selecting "Custom installation /
in the installer to access to more options.
PeaZip is a standalone, almost
self contained zip / unzip application: you can unpack peazip_portable
(.tar.gz) in any path and just click on peazip binary; see
FreeDesktop_integration folder in program's path to know how to
integrate PeaZip with the desktop environment (Gnome, KDE...).
packages for generic Linux or specific
distributions are available as well; on download
pages you can find most up to date package right for your system (RPM,
DEB, TGZ); installable packages automatically integrate PeaZip with the
Distribution-specific packages of PeaZip were also built from Linux
communities, and are linked on PeaZip for Linux download page too.
On 64 bit systems, if desired, any 32 bit backend applications can be
replaced with respective 64 bit counterpart (if available from the
respective Authors), but please remember that any 32 bit executable
will need ia32-libs
installed in order to to run on a 64 bit system.
PeaZip is a cross platform and cross widgetset application, meaning it
can be compiled for different systems and widgetsets.
Precompiled binaries Linux packages are built for GTK2 and Qt, which
modern look and feel and very functional system dialogs.
PeaZip Portable for Linux can be used as alternative to native packages
on BSD systems, due to binary compatibility provided by BSD systems to
PeaZip Portable for BSD contains natively compiled (i386, GTK2) peazip,
pea, pealauncher, and p7zip executables, providing most of the
program's funtions are performed by native binaries, for other
backends, Linux binaries are used.
Many other operating systems and widgetsets are supported by Lazarus,
the IDE used for
PeaZip's development, including GTK1, WindCE, fpGUI and Carbon. If
you want to compile PeaZip from sources see notes for developers
How do I make my
system aware of
PeaZip installable packages authomatically create application's icon,
list PeaZip in available applications and create some KDE ServiceMenu
entries to reach most used program's functions (archive, open, extract
here, extract to new folder).
FreeDesktop_integration folder (featured both in installable and in
standalone versions) contains .desktop files and simple instructions to
add PeaZip to start menus and context menus of desktop environments
following the FreeDesktop standards (like Gnome and KDE), and Nautilus
scripts folder which can be manually copied to user's Nautilus script's
to add PeaZip's functionalities to Gnome's
What if I cannot run
If the system report missing libraries the first time you are running
PeaZip binary, you can generally find missing libraries on your
installation media or, better, if an Internet connection is available,
you can search them online using your installation or update manager,
or even in a web based .rpm or .deb repository; generally missing
libraries are standard, well known and widely available gtk/gkd
components (the most common is libgdk_pixbuf library).
are hardware/software prerequisites?
PeaZip should run on x86-compatible CPU due to some performance
critical sections written in ASM; CPU and, mainly, RAM requisites are
bound top the chosen algorithm and compression level, ranging to few KB
for simpler algorithms (like when storing files without compression in
tar/gz/zip formats) to above than a GB for most powerful and complex
algorithms at highest compression level, like LZMA, PPMd and PAQ).
Needless to say, it is the choice of the compression algorithm the most
important factor in determination of job's speed, even if usually the
most advanced algorithms are also the ones which scales better in
performances in multicore enviroments.
As for software prerequisites, all needed software invoked by the
frontend is included in PeaZip packages (being available under suitable
licenses, as open source or royalty free) so no custom package is
needed to be installed to make PeaZip work (with the possible exception
of some standard gtk/gdk related libraries needed to run PeaZip,
PeaLauncher and Pea binaries, which may miss in some system, but are
trustable and widely available).
If you don't want non open source software in your system, like
unrar.so (which brings specific license restrictions about reverse
engineering) or unace binary (closed source, royalty free), you simply
need to delete them from /res/ path in program's folder.
Lazarus IDE support for Carbon widgetset is alpha (a solution could be
using alternative libraries, as Qt, but I would prefer the native,
default widgetset), and moreover I can raraley have full access to OSX
systems; however the Lazarus support for OSX is quickly progressing,
and my interest in porting PeaZip to OSX platform remains very high.
I hope to be able to deploy PeaZip for OSX in future, and any help and
feedback from users of Lazarus IDE on OSX will be welcome.