Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/niamtokik/dotzip

PKWARE ZIP File Format Implementation in Elixir
https://github.com/niamtokik/dotzip

Last synced: about 5 hours ago
JSON representation

PKWARE ZIP File Format Implementation in Elixir

Awesome Lists containing this project

README

        

# 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)

### Other implementation

* 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

## 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).