ZIP is one of the most widely used compressed file formats. It is universally used to aggregate, compress, and encrypt files into a single interoperable container. No specific use or application need is defined by this format and no specific implementation guidance is provided. This document provides details on the storage format for creating ZIP files. Information is provided on the records and fields that describe what a ZIP file is. -- from official specification file
Note: This project is a work in progress. Please don't use it in production.
If available in Hex, the package can be installed
by adding dotzip
to your list of dependencies in mix.exs
:
def deps do
[
{:dotzip, "~> 0.1.0"}
]
end
create a zip file
cd /tmp
echo test > test
zip test.zip test
extract information
{:ok, file} = :file.read_file("/tmp/test.zip")
Dotzip.decode(file)
- https://www.loc.gov/preservation/digital/formats/fdd/fdd000362.shtml
- https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.3.TXT
- https://en.wikipedia.org/wiki/ZIP_(file_format)
- http://infozip.sourceforge.net/
- https://github.com/kuba--/zip
- https://github.com/zip-rs/zip
- https://github.com/Stuk/jszip
- https://github.com/srikanth-lingala/zip4j
PKWARE, PKZIP, SecureZIP, and PKSFX are registered trademarks of PKWARE, Inc. in the United States and elsewhere. PKPatchMaker, Deflate64, and ZIP64 are trademarks of PKWARE, Inc. Other marks referenced within this document appear for identification purposes only and are the property of their respective owners.
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/dotzip.