66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# 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](https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.3.3.TXT)
|
|
|
|
Note: This project is a work in progress. Please don't use it in
|
|
production.
|
|
|
|
## Installation
|
|
|
|
If [available in Hex](https://hex.pm/docs/publish), the package can be installed
|
|
by adding `dotzip` to your list of dependencies in `mix.exs`:
|
|
|
|
```elixir
|
|
def deps do
|
|
[
|
|
{:dotzip, "~> 0.1.0"}
|
|
]
|
|
end
|
|
```
|
|
|
|
## Decoding Example
|
|
|
|
create a zip file
|
|
|
|
```sh
|
|
cd /tmp
|
|
echo test > test
|
|
zip test.zip test
|
|
```
|
|
|
|
extract information
|
|
|
|
```elixir
|
|
{:ok, file} = :file.read_file("/tmp/test.zip")
|
|
Dotzip.decode(file)
|
|
```
|
|
|
|
## Resources
|
|
|
|
* 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)
|
|
|
|
## 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](https://github.com/elixir-lang/ex_doc)
|
|
and published on [HexDocs](https://hexdocs.pm). Once published, the docs can
|
|
be found at [https://hexdocs.pm/dotzip](https://hexdocs.pm/dotzip).
|
|
|