Zip-Ada: Ada library for zip files (.zip). Ada programming.
Zip-Ada

[NEW] LZMA decompression supported.
[NEW] Deflate format also supported for compression.
[NEW] Support for Unicode (UTF-8) names.

What is Zip-Ada ?

Zip-Ada is a programming library for dealing with the Zip compressed archive file format. The full sources of Zip-Ada are in Ada, compilable on every compiler and for every system. For more details, read the files zipada.txt and zip.ads from the archive below.
 
Why not call an zip or unzip executable, or use the zlib library ?

Distribution

Zip-Ada is free software under MIT license - see copyright notice in Zip.ads

Download

  Download the library from the SourceForge project page.  

The archive contains: Tips:
- unzip the archive with its directory structure ("unzip zipada*.zip");
- text-mode and lower case names can be forced for Unix ("unzip -aa -L zipada*.zip").

Snapshot

HTML report from the ReZip tool:
Excel  

A small demo's source:

with Zip_Streams;                       use Zip_Streams;
with Zip.Create;                        use Zip.Create;

procedure Demo_zip is
  zip_file : aliased File_ZipStream; -- Archive is a file
  archive : Zip_Create_info;
begin
  Create (archive, zip_file'Unchecked_Access, "mini_zip.zip" );
  Add_File(archive, "demo_zip.adb");
  Add_File(archive, "demo_unzip.adb");
  Add_String(archive,
    "==== Hello world! ====" & ASCII.LF &
    "It is such a nice ""Hello world""-like demo, isn't it ?",
    "nice_string.txt"
  );
  Finish (archive);
end Demo_zip;

For viewing more sources...

Browse the source (of version 47)  
Source web pages automatically generated by gnathtml (GNAT).

Present state - latest changes - history

For the full history, click here.

Contact:

Mail:     Gautier de Montmollin, e-mail

For a little sponsoring (e.g. the equivalent of a glass of wine)...   Support This Project

Visit also the project on SourceForge!    SourceForge.net Logo

Some news about Zip-Ada and other related Ada projects on Gautier's blog.

Technical documentation: read appnote.txt (in the archive).
Legal notice: free distribution copyright (read zip.ads), no warranty.

Combinations (Operating System, processor, compiler) where the Zip-Ada library - one single source, zero conditional compilation - is reported to be in use:

OSCPUCompiler
OpenVMSIntel Itanium (64 bit) [NEW] GNU - GNAT
AIXPower7 (64 bit) [NEW]
MS Windows 9x;NT,2K,XP+Intel x86 (32 bit)
MS Windows x64Intel x64 (64 bit)
LinuxIntel x86 (32 bit)
LinuxIntel x86_64 (64 bit) [NEW]
Linux on PS3Cell (64 bit) [NEW]
Linux on Raspberry PiARM [NEW]
Mac OS XPowerPC (64 bit)
Mac OS XIntel x64 (64 bit)
SolarisSPARC (32 or 64 bit)
SolarisIntel x64 (64 bit)
MS-DOS, DR-DOS (Novell)Intel x86 (16/32 bit)
OpenBSD(one of several)
FreeBSDIntel x86 (32 bit)
FreeBSDIntel x64 (64 bit)
Android 2.3+ARM [NEW]
MS Windows 9x;NT,2K,XP+Intel x86 (32 bit)Atego - ObjectAda
MS Windows 9x;NT,2K,XP+Intel x86 (32 bit)RR Software - Janus/Ada
MS Windows NT+Intel x86 (32 bit)SofCheck - AdaMagic
MS Windows NT+Intel x64 (64 bit)
LinuxIntel x86 (32 bit)
Mac OS XPowerPC (64 bit)
Mac OS XIntel x64 (64 bit)
SolarisSPARC (32 or 64 bit)
SolarisIntel x64 (64 bit)
Don't hesitate to tell me about other OS / CPU / compiler combinations!
Summary of supported Zip internal formats (each compressed file in a Zip archive can have a different compression format):


  
Zip-Ada   
Other software… Info-Zip
Format Format #
Compress Decompress
PKZip WinZip UnZip Zip
store 0
v.22 v.4




shrink 1
v.22 v.4




reduce 1..4 2..5
v.29 v.4




implode 6

v.4




deflate 8
v.40 v.4
v.2.0


v.2.0
enhanced deflate 9

v.30
v.2.1 v.9.0 v.5.5
bzip2 12

v.36

v.4.6 v.10.0 v.6.0 v.3.0
lzma 14

v.47
v.6.3 v.12.0

ppmd 98



v.6.3 v.10.0


Some Zip-Ada users:

Some Ada compilers:
External compression tools used by ReZip: