PeaZip is a free archiver
utility, based on solid and proven
Open Source technology of 7-Zip
and other great Open Source
tools (like FreeARC, PAQ, UPX...) for
supporting additional file formats and features, in order to provide an
all
purpose zip utility featuring a powerful unified GUI that, unlike most
of other classic file archivers like
i.e. WinZip and WinRar, is natively portable
and cross-platform, being available for 32 and 64
bit Windows (9x, NT/2K/XP, Vista/7/8, ReactOS, Wine), and Linux and BSD
x86 and x86-64 (desktop
neutral
application, supports Gnome, KDE and other desktop environments).
Full
support: 7z, FreeArc's
arc/wrc,
sfx (7z and arc), bz2, gz, paq/lpaq/zpaq, pea, quad/balz, split, tar,
upx, zip
Read
(browse,
extract,
test): 7z, apk,
bz, bz2,
bzip2, tbz2, tbz, gz, gzip, tgz, tpz, tar, zip, zipx, z01, smzip,
arj, cab,
chm, chi, chq, chw, hxs, hxi, hxr, hxq, hxw, lit, cpio, deb, lzh, lha, rar, r01, 00, rpm, z, taz, tz, iso, jar, ear,
war, lha, pet, pup, pak, pk3, pk4, slp, [Content], xpi, wim, u3p,
lzma86, lzma, udf, xar, dmg, hfs, part1, split, swm, tpz, kmz, xz, txz,
vhd, mslz, apm, mbr, fat, ntfs, exe, dll, sys, msi, msp, ods, ots, odm,
oth, oxt, odb, odf, odg, otg, odp, otp, odt, ott, gnm, doc, dot, xls,
xlt, ppt, pps, pot, docx, dotx, xlsx, xltx, swf, flv, quad, balz, zpaq,
paq8f, paq8jd, paq8l, paq8o, lpaq1, lpaq5, lpaq8, ace, arc, wrc, 001,
pea, cbz, cbr, cba, cb7,
cbt (and more...)
Repair: FreeArc's arc/wrc
Encrypt:
7Z: 7-Zip AES256 encryption
ZIP: WinZip AES256 AE encryption, and ZipCrypto for legacy
compatibility; can decrypt PKZip's
AES encryption
ARC: FreeARC AES256, Blowfish,
Twofish256 and
Serpent256
PEA: AES256
EAX authenticated encryption
PeaZip is localized
in 29 languages and is capable of handling all most popular archive
formats (150+ file types), supporting a wide array of advanced file and
archive management features (search, bookmarks, thumbnail viewer,
hashing, find duplicate files, convert archives...), especially focused
on security (strong encryption, two factor authentication, encrypted
password manager, secure deletion...).
The distinctive trait of PeaZip is the innovative and easy to use
compression/extraction interface, more similar to CD burners interfaces
rather than to a classic file compressor. This design makes extremely
simple to check (and update) items set for compression and extraction,
integrating a full featured file manager component.
Also, tasks created in the GUI can be easily saved as batch scripts, in
order to automate backup operations, or for fine tuning, or for
learning purpose, bridging the gap between the ease of use of GUI
applications and power and flexibility of console.

PeaZip free file archiver is
available
in many different languages,
click Options >
Localization to modify language of
the GUI. If you are willing to
contribute a translation please check
information Notes for translators below to know how to
contribute.
Over networks, this
application can be
made available to multiple users,
either with a shared configuration or with separate configuration for
each user, see "Settings" and "Customization and
scripting" in the help file (F1), that also contain useful hints for
enhancing PeaZip's system integration
and use of PeaZip in scripts.
PeaZip is built to be fully modular, you can freely replace backend
executables in PeaZip/res directory with updated ones (as long as they
support the
same syntax) or with 64 bit
counterpart if available.
If the host system cannot or should not be modified it is recommended
to use PeaZip Portable, that
runs without installation and can be simply extracted in any path, even
on the
network or on
removable devices as USB memories.
To extract
ACE files it is
needed a separate plugin (due to UNACE freeware but closed source
nature) available
in Add-ons page.
You can get older versions
of PeaZip
on
Google Code.
PeaZip 64 bit free archiver is meant to run on
64 bit Windows systems only, while PeaZip is meant to run on any 32 or
64 bit Windows version, from 9.x to latest ones.
You can check if you are running a 64 bit
Windows system rightclicking on the "Computer" icon on the desktop and
reading the system type in "Properties".
To run
unattended installation
launch the Windows installer with
/SILENT parameter; use /VERYSILENT for background installation, without
notification to the users.
To re-configure system
integration (file associations, context and SendTo menu),
you can use Options > System integration.
During install, PeaZip
creates entries in SendTo menu
that can be simply copied to one user to another as needed, they are
located in C:\Documents and
Settings\(username)\SendTo (Windows XP) or C:\Users\(username)\AppData\Roaming\Microsoft\Windows\SendTo
(Vista/7),
assuming C as system's disk.
PeaZip can be uninstalled from Add/Remove Programs in system's Control
Panel.
Alternatively you can uninstall it from Start menu PeaZip >
Uninstall PeaZip entry, or running unins000.exe in PeaZip's
installation path.
When uninstalled, PeaZip restores files
association with Windows'
Compressed Folders for the supported file types; to restore file
associations with a third party file archiver software
please
refer to its own documentation, usually it can be done
running the program's setup package or from the original application
itself. To manually restore file associations with
Compressed
Folders utility run: cmd /c assoc
.zip=CompressedFolder replacing .zip
with any file extension it is desired to be re-associated.
On Linux systems,
PeaZip
installer automatically create menu entries
for KDE (on most versions);
to add PeaZip to Gnome menu
copy the "Archiving" folder placed
in PeaZip/Freedesktop_integration/nautilus-scripts to system's Nautilus
script's folder (in most versions open "Scripts" menu in
system's context menu, and select "Open script's folder").
PeaZip is meant to be desktop
neutral as possible, so it is not limited to be used under
KDE and Gnome, and does not requires different packages to run on
different desktop environments.
On PeaZip's official website are featured generic Linux packages,
meant to be compatible with as many distributions and versions as
possible, providing the system supports the widgetset (GTK2 * or Qt **)
and the installer format, in
example DEB ***: Debian,
Ubuntu/Kubuntu, Knoppix, ... RPM:
Fedora, Mandriva, SUSE, Red Hat, ArkLinux, ... TGZ: Slackware based.
Third party packages
explicitly targeted to a specific
distribution/version can be found from external links and in official
distribution's repositories,
those packages are highly recommended for best integration with a
specific Linux distribution / version.
If PeaZip is missing in your distribution's repositories please take
time to recommend it to distribution's maintainers, pointing them to
this website for evaluating possible advantages in featuring PeaZip
i.e. the Portable version, or the desktop neutrality, sources that can
easily target either GTK2 or Qt widgetset, or its GUI etc...
If a package does not run on a specific system please launch peazip
binary on a console to get a more detailed error report.
Please
note that ia32-libs are
required to run PeaZip, as any other 32 bit binary, on 64 bit systems.
PeaZip
binaries are currently compiled for 32 bit, you will need Lazarus/FPC
if you want to compile them from sources.
All
backend
compression/extraction "engines" (pea, p7zip, *paq, freearc etc) are
compiled for 32 bit, please refer to respective Authors for source
packages (all are released under OSI approved Open Source licenses) if
you want to recompile them.
* On some Linux distributions the GTK2
version may require to install some components of gtk/gdk
libraries, like libgdk_pixbuf,
those components are quite common and can be usually found in
repositories of each distribution.
** Qt widgetset packages
requires Qt
4.5 or
more recent, and needs libQt4Pas.so
installed in /usr/local/lib or equivalent directory (copy the
file and run ldconfig; it is done automatically in installable
packages), such as
/usr/lib or /usr/lib32 on some 64 bit distributions.
A copy of
libQt4Pas.so is available in PeaZip's directory,
./usr/local/share/PeaZip/ for the installable packages.
If the Qt version
does not start on some systems, as some system's visual styles may
cause recursive repainting error, you can fix the problem starting it
in a console (or script) as: peazip -style=cleanlooks
*** DEB packages
reports
(all) for
architecture check, so can be installed on 32 and 64 bit systems
(providing that ia-32 libs are available). For this reason, some
package managers may report warnings since packages not marked for a
specific architecture are generally not expected to contain binary
files.
Alternatively an i386 DEB is provided for GTK2 version, i386 DEB can be
installed on 64 bit Linux systems using
dpkg
-i --force-architecture.
PeaZip Portable for BSD contains natively compiled 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 due to binary compatibility
provided by BSD systems to Linux executables.
It is a Portable version of PeaZip, that means no installation is
required: the Portable application is autocontained, so the software
can be unpacked and used starting peazip executable, see next paragraph
for more information.
BSD binaries are precompiled for i386 and GTK2; ia-32 libs needs to be
installed in ia64 systems.
Alternatively, PeaZip Portable for Linux packages (GTK2 or Qt) can be
used on BSD systems.
PeaZip Portable is available either for Windows and Linux, it does not
require installation / unistallation and does
not modify your system so it is recommended if you want to test the
application, to run it from a removable device, to make it available
over the network avoiding local installations, or if you should not
modify host system (i.e. library freeze in production machines).
To use the program simply unzip the package where you like, i.e to a
removable device, to bring the application with you, or to a network
path, to share the application with other users, or just to the desktop.
To remove the program simply delete PeaZip's directory.
UTF-8
support
From version 2.2
UTF-8
character encoding is supported,
allowing to properly handle extended characters in filenames and to
deploy localization of PeaZip's user interface text in any language.
It should be noted however that, at present level of development of
Lazarus/FreePascal project, most of the underlying FreePascal
file-handling routines are still ANSI-only, meaning the UTF-8 strings
PeaZip uses internally still have to be translated to ANSI strings to
be passed to some functions.
As PeaZip aims 1) to stay cross-platform and 2) to bridge the gap
between GUI and console worlds, allowing to easily export jobs as
command lines, UTF-8 support is utterly complicated because each system
/ desktop environment / widgetset PeaZip is ported to has different
levels and ways of supporting UTF-8 encoding for different APIs, for
system pipes, for command line interpreters etc.
This issue currently causes:
- PeaZip cannot browse files/dirs containing
characters
which are not featured in host system’s character’s set (they will be
replaced by ? wildcard) due to the need of ANSI translation for strings
passed to some FPC routines;
- decoding of names of
archived objects
containing
extended characters, form version 3.0.1, is supported for file types
handled using 7z/p7zip backend (using backend's -sccUTF-8 option).
However in some cases, due to the archive format specifications, or to
issues of the software used to create the archive being examined, or
due to charset conversion problems between the source system and the
target system that is reading the archive, the conversion of character
in filenames inside the archive may fail anyway. Optionally extended
characters can be set to be
always replaced by jolly "?" character to avoid possible issues between
archive's and system's character encodings on some special cases.
In
any case the ability of operate (test,
create,
extract
etc) on the whole archive (as long as the file name can be passed to
the application) is not affected by this issue
Custom drag and drop
(Windows)
From version 2.1 it is possible to drag items from application to
system (Windows version).
PeaZip uses a
custom
drag&drop to system feature that doesn’t need to copy files being
dragged to system’s temp folder before, resulting in faster operation
when big files are involved, and in better security if temp folder has
not the same desired security policies of actual output folder.
This custom drag
and drop
function will not show default Windows drag and drop cursors and it can
drag files to the path of (file)Explorer windows with Address field
enabled (as it is by default on all Windows versions), or to the
desktop; it will prompt a directory selection dialog if the path is not
recognized i.e. content is dropped to an application other than
(file)Explorer.
PEA archive type
limitations
Such a list can be
all but
complete, however: when I designed PEA
archive format I was less experienced and I basically didn't take in
account the need to browse the archive or to partially extract objects;
just to create and extract it.
Since filenames are, by design, saved along file streams, there is not
an easy way to accomplish it without parsing the entire archive (which
can be a reasonable solution only for small archives) or without
changing format specifications breaking the compatibility with former
versions.
A workaround I may implement in future to allow archive browsing could
be creating an extra text filecontaining filenames, saved as first
archive's object; that will not introduce backward incompatibility
since previos PEA version could still correctly handle the new archives
(just having the list-file as extra content) and will be quite painless
introducing negligible space and speed payload, unless archiving many
small files.
This is just an hypothetical evaluation and there still is not a
roadmap about it. Anyway this is a PEA format related issue has no
impact on users using PeaZip to handle formats other than PEA.
Cryptoanalisys
Language files are UTF-8 encoded
text files which can be edited using any suitable text editor.
To create a new translation file you can:
1 - copy default.txt (in PeaZip's path in /res/lang subfolder) or any
other language file, if you prefer starting from another language, to a
new file;
2 - edit lines 2 to 6 of the document to enter language name (both in
English and in the original language for better readability), PeaZip's
version (major.minor) the translation is aimed to, translator's and
last last revisor's name and last revision date; IMPORTANT:
revision number must not be
specified alongside major.minor release number in 3rd line of language
files since
revisions shares the same text and are meant to deploy between-releases
updates, ie.e for bugfixing or for packaging additional translations or
resources.
3 - translate
the text after the
"variable_name: " part in
"=== PeaZip text group ===" AND "=== PeaLauncher text group ==="
sections of the file (don't move or remove lines, don't change the
"variable_name: " part);
4 - optionally, translate the mini-tutorial after "=== about text group
===" line (free editing, it is loaded and displayed "as is" as
application's mini-tutorial); it is very important to improve usability
of the program for non-English speaking users.
In "PeaZip translations" download page, there is a package named
peazip-x.y.about_translations.zip containing a spreadsheet file to help
in creating and maintaining localizations, simply compiling column D of
the spreadsheet.
IMPORTANT: the spreadsheet contains 3 pages, "PeaZip text group",
"PeaLauncher text group", and "About text group": all pages need to be
completed and pasted (column E, for first two pages) in the language
file; the "About text group" can be freely edited.
The spreadsheet shows variable name (column B), corresponding text
string in english (column C) and a blank, yellow column (D) for typing
the translated text strings.
On the right, a column E (blue) will show the "variable_name: " part
assembled with the translated string: the content of this area can be
copied and paste to replace the text in "=== PeaZip text group ===" and
"=== PeaLauncher text group ===" sections (the spreadsheet features TWO
pages, one for each of the two groups).
Lines must be pasted in the original order (it is sufficient to sort
them by column F).
After column F are featured all currently available translations, in
order to help translators more proficient in other languages than
Englis, and to help to spot out what localizations need to be updated.
At each version all language files are mass-updated, with missing text
lines in English; to update a localization, it's enough to update the
English text lines.
For a better result it is also recommended to check all the language
file to see if the update is coherent with linguistic style used by the
translator of the current version.
For languages spoken in different ways in different countries (i.e.
English, Spanish, Portuguese...) it is recommended to fork the
translation, creating i.e. en-us, pt-br etc
PeaZip can load out of order (not optimal for performances) language
files for older or newer versions.
Translated language files
can be sent to me using the address giorgio.tani.software@gmail.com
(don't forget to remove the _removethis_ part), to be evaluated for
inclusion in future updates and publication on peazip-translations
All translated language files should be considered as released under
GFDL, GNU Free Documentation License, as they have to be considered
derivate work from the application's language file which is released
under GFDL.
Default language file is default.txt
PeaZip free archiver utility
sources are contained
in the peazip-*.src.zip package available on GoogleCode and SourceForge's
project pages.
PeaZip and PeaZip_portable shares the same sources being PeaZip
installable basically the same portable application packaged into an
installable format: Inno Setup's .exe for Windows, DEB, RPM and TGZ for
Linux.
Compilation, build
and
porting
PeaZip, Pea and PeaLauncher are written in FreePascal (highly
compatible with Delphi and ObjectPascal languages) and require Lazarus IDE to
be compiled; Windows setup
scripts (.iss files) are developed using Inno Setup.
To compile PeaZip binaries open the .lpi file of the desired binary
(i.e. peach.lpi for peazip binary) and select "build all".
FreePascal supports multiple widgetsets (Win32, WinCE, GTK1, GTK2, Qt,
Carbon, fpGUI) to allow compilation of GUI applications for the various
supported systems and to create different “flavours” of the application
for platforms supporting multiple widgetsets (i.e Linux).
PeaZip's sourcecode is cross platform, platform-specific code portions
are contained in conditional compilations blocks.
Deploying the application to other targets than MSWINDOWS and LINUX may
require adaptation of those platform specific areas (and possibly other
fine-tunings); PC-BSD users successfully built PeaZip on *BSD platform.
PeaZip will also need various backend compression and archiving
applications to be reachable in expected directories within the
application's path, please refer to the structure of any of the
precompiled packages, either installable or portable, to see what third
parts binaries must be included, and refer to respective Authors for
ports of those utilities; also read the help file readme.txt in the
source's package for more
hints.
Being PeaZip programmed as frontend/backend application, missing or
unwanted backend binaries can be omitted, at the cost of losing the
ability of handling supported formats; for the same reason, backend
binaries can be freely replaced with 64 bit counterparts or with
updated versions (which will work fine as long as they follow the same
syntax).
PeaZip code should be fairly easy to port on Delphi and other Pascal
dialects; the underlying crypto
library ,
developed and maintained by
Wolfgang Ehrhardt, is explicitly written to be portable to most or all
Pascal dialects, however due to some ASM parts some of its features may
be x86 processor specific.
Some units of the crypto
library uses ASM sections not fully compatible with 64 bit
Lazarus/FPC compiler, but the library provides also pure Pascal
replacement for those units in order to allow compilation in those
environments.
Packages
Testing
PeaZip
free archiver should run on all Windows and Linux systems, the
program is currently tested on:
- Windows 98SE
- Windows 2000/XP
- Windows Vista/7/8 32 and 64 bit
- various x86 and x86-64 Linux distributions with
GTK2 or Qt,
both for
Gnome and KDE
PEA archive support
in
third parts software
To support Pea file format in your applications you may follow one of
those ways:
- use directly the executable Pea archiving
utility
(LGPL freeware) passing parameters through command line, as in PeaZip;
- use Pea sourcecode as library to call
Pea-related
functions from your code (as in the demo application in "sources"
package);
- create a new implementation following the file
format
specifications, which are released under public domain and, as for what
is known to the author, are free and unencumbered for any use.
Manage, open and extract Zip archives, unzip files, free Rar
extractor
(unrar), extract Tar files on Windows (untar), create and convert
archives, create compressed,
spanned and password protected backup, compress and attach files and
folders,
encrypt files, split and join files (file spanning), secure file delete.
PeaZip acts as graphic frontend for multiple "engines"
performing archiving, compression, encryption and volume split features:
- Pea
(Giorgio Tani,
LGPLv3) archiving utility featuring authenticated encryption; both
PeaZip and Pea uses Wolfgang Ehrhardt's Pascal/Delphi crypto
library
- 7z
(Igor
Pavlov, LGPL) and p7zip
(Myspace,
LGPL, the POSIX port of 7z for Unix systems), supporting most of the
mainstream archiving and compression formats
- ARC
(Bulat
Ziganshin, GPL) FreeARC archiver, featuring high compression and strong
encryption
- PAQ/LPAQ/ZPAQ
(Matt
Mahoney and other contributors, GPL) various compression utilities, the
current state of art for maximum compression ratio
- QUAD
(Ilia
Muraviev, LGPL) and BALZ
(Ilia
Muraviev, public domain) compression utilities
- UPX
(Markus
F.X.J. Oberhumer, László Molnár and John F.
Reiser, GPL), compression utility for binaries, and Strip
form GNU
binutils (GPL)
- UNACE
(Marcel
Lemke, ACE Compression Software, royalty-free UNACEV2.DLL license)
UNACEV2.DLL 2.6.0.0 and UNACE for Linux (royalty-free UNACE for Linux
license) extractor for ACE files.
Open source
archiving and
compression utilities are included in the
program’s package and ready to use; all software included in the
package is released under OSI
approved licenses. UNACE is available as separate downloadable
plugin since, while royalty free, it's not released under an
OSI-approved open source license.
Self-extracting archives are supported, built using 7-Zip's sfx modules
(with custom icons and compressed with UPX in order to minimize the
overhead added to the archive) and alternatively FreeArc's sfx modules.
Custom third parts modules distributors are linked in Add-ons page.
- PEA - Pack
Encrypt
Authenticate
- The initial goal of the application was
creating
a frontend for Pea archiver utility, implementing PEA archive format,
designed ground up by myself to primarily focus on security and
integrity: I wanted something performing strong authenticated
encryption and perform integrity checks on both input objects and
output volume(s). Pea offer those characteristics, and is open source
(LGPL) freeware; file format specifications are released under public
domain. I did a bit of cryptanalisys of it (see Documentation package);
I hope more authoritative people may analyze it further.
- Most archivers offer strong encryption, but
bounded to password-only auhentication: Pea executable offers two
factor authentication to increase encryption's security margins against
password-related threats, like social engineering, dictionary attacks,
bruteforcing, keylogging...
- Bring focus
on
Lazarus/FreePascal
- I'm developing PeaZip project in FreePascal
language, under Lazarus IDE. I like Pascal-related languages and I
think Lazarus/FreePascal is one of the best cross-platform IDE
available; I like it even more because it is open source and because
it's growing day by day in a more mature and powerful IDE. I'll be glad
to bring a bit of developer's attention on Lazarus/FreePascal through
my project.
-
Archiving
and compression
- Designing PeaZip UI, I'm aiming to focus on
archive-specific tools, operations and needs rather than focusing on
offering a faithful emulation of a file browser, like many mainstream
archivers does. Saving lists of objects to be archived, saving
archiving/extraction job definitions and receiving detailed job log
after operations are primary goals of PeaZip UI. However, PeaZip's
system integration, if desired, allows the user to perform most common
operations (add to archive, extract here, encrypt, split file etc)
without even care of the main program UI.
- 7-Zip: thanking Igor Pavlov and Myspace
choice of
offering 7z under LGPL I was able to easily add support to many
mainstream archive and compression formats to PeaZip, transforming it
from a niche project (formerly named Pea-Peach) to a possibly wider
targeted software. I hope I can turn back to them part of the benefit
supporting .7z archive format, especially on Linux systems, offering a
ready to use solution to extract and archive in .7z format among
others.
- ARC: a new, very promising archive format,
featuring powerful but efficient compression, strong encryption and
recovery records.
- PAQ/LPAQ/ZPAQ: one of the most promising
research project in the field of maximum compression is Matt Mahoney's
Paq.
Many different implementation and branches exists, as command line
binaries and or integrated in archivers with GUI (like WinRK, WinUDA,
KGB Archiver etc). PeaZip act as GUI fronted to various *Paq, hoping to
contribute
to the diffusion of this high compression format and in bringing focus
on this
interesting research project.
- QUAD/BALZ: Ilia Muraviev's QUAD and BALZ
are very
promising ROLZ-based compression software featuring high compression
ratio and fast decompression, making them very well suited in scenarios
were decompression occurs more often than compression (i.e. package
release).
- Strip/UPX: I often use Strip/UPX on
executables I
compile (including PeaZip's ones); the GUI frontend for Strip/UPX in
PeaZip comes to be very handy for me and I hope it can be an useful
plus for many other developers to reduce executables size.
- Two factor authentication: from version 2.1
PeaZip can use keyfiles for any supported format featuring encryption.
The SHA256 hash of the keyfile (no size limit) is encoded in Base64
(RFC 4648) and prepended to the password. So, it is possible to work on
archives encrypted in that way using PeaZip or any application
following the same convention, or simply entering the Base64-encoded
hash as the first part of the password.
|