niamtokik 1e90eaaaf3 Global Cleanup
This project was sleeping for too long. Too many parts are not clean
at all. So, here some cleanup:

 - add more test unit

 - clean msdos date/time format for zip

 - add crc32

 - add version support

 - rewrite notes

 - rewrite the whole interface from scratch.

 - update github actions

 - update license (MIT)

 - create dotzip application

 - update notes regarding data-structure used

 - fix date and time ms-dos format (issue with endianess)

 - fix local file header encoding

 - update documentation

 - update with new extra fields and third party support

 - add extended timestamp third party support

 - add unix info new third party support
2021-12-30 13:18:37 +00:00
2021-12-30 13:18:37 +00:00
2021-12-30 13:18:37 +00:00
2021-12-30 13:18:37 +00:00
2021-12-30 13:18:37 +00:00
2021-03-29 20:04:07 +00:00
2021-12-30 13:18:37 +00:00
2021-12-30 13:18:37 +00:00
2021-04-07 19:52:10 +00:00
2021-12-30 13:18:37 +00:00

Dotzip

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 (even in staging). Things are moving, and nothing is stable. Many notes are present in notes directory, feel free to react.

More information can be found in notes/ directory. This code is generated using TDD and literate programming. All function or modules added must be documented (with examples at least) and tested before commit.

Installation

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

Decoding Example

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)

Resources

Other implementation

Trademarks

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.

Notes

Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/dotzip.

Description
No description provided
Readme 102 KiB
Languages
Elixir 100%