From Wiktionary, adapted:
/ziหpa(ส)/ - (Portuguese) verb
- (transitive, computing) to zip --- in the sense of converting a computer file into a smaller package.
Etymology: From English zip + -ar
zipar
is a program that extracts, lists and creates
PKZIP-compatible files, but using
a tar
(1)-like interface inspired on
Schily's tar
and Heirloom (UNIX v7) tar.
It is the first program to ever making use of the
libcmon, which is still on testing and with
features being gradually implemented.
Not to be confunded with Ryotaro Banno's
(ushitora-anqou
)
ZipAr, which just archives files
with no compression, using multi-thread parallelism for velocity, and that
appears to be sort of niche compared to this project considering it does
nothing besides that. It is also written entirely in OCaml.
This project originally was thought as some sort of shell script that would work
as a boilerplate command to Info-ZIP's
unzip
/
zip
programs so that both could
be used in a saner(or maybe not) way. Some time passed and, in
mid-2023, I decided to start doing and ended up not finishing a cbr to pdf
converter, and saw that dealing with zip
files using Go's archive/zip
library was actually pretty good, so it would
be better to have zipar
as an independent program than as a boilerplate to
two binaries. Then, โ1.7 years in the future (now), I decided to recycle that
old code from cbr2pdf into libcmon and develop zipar over it.
Of course, it is not as far as portable as Info-ZIP's unzip/zip programs, nor it
has all of the functionality of these (yet), but I can say it is pretty much
reliable as far as I have tested, and that it will be at Copacabana's base
system. Testing is welcome.
NOTE: Features that have to be implemented via the libcmon/zhip library first will be highlighted as such with the "๐" symbol.
-
tar
's "tripartite": create, extract and list files; - Be able to select the compression level (similar to Info-ZIP's zip '
-Z
' option); - Be able to create an archive using the std.in./an file (similar to UNIX
v7/Heirloom
tar
's-I
option) as the list of files to be added; - Print information with the
--json
option that will be actually useful (needs a new struct type at zhip ๐); - "Explode"/junk or ignore directories when creating archives ๐;
- Extract files with passwords ๐;
- Amend/update/exclude entries from zip files ๐;
- Interpret the
Extra
section of the zip.FileHeader struct for information such as Info-ZIP's extensions for UNIX permissions, NTFS info., etc. ๐
The MIT licence.
Me, Luiz Antonio (a.k.a takusuman).