An extremely fast alternative to zip which is written in rust.

Overview

Zap

Compress and/or encrypt folders fast. Like, really fast. or as some say, blazingly fast.

Installation

To install Zap, run the following command from the project root: cargo install --path .

Usage

In order to compress a folder with Zap, run:

zap FOLDER_TO_ZAP PATH_TO_ZAP_FILE

Where the PATH_TO_ZAP_FILE is the path to which you wanna store the .zap file.

  • The zap file can optionally be encrypted with by providing the -e flag. A keyfile.zk containing the "password" (keys) will be generated in the current folder.

In order to decompress a folder with Zap

zap PATH_TO_ZAP_FILE FOLDER_TO_UNZAP_INTO

Where the PATH_TO_ZAP_FILE is the path to the file which you wanna unzap and the FOLDER_TO_UNZAP_INTO is the folder in which you want the contents to be placed inside.

  • If the Zap file was encrypted, the -e flag needs to be provided along with the keyfile.zk which was generated upon zapping.

License

This project is licensed under the LGPL v3.

See LICENSE.md file for details.

LGPL v3 Logo

Note that Zap is still alpha software and is bound to change core features until version 0.5.0

You might also like...
DEFLATE, gzip, and zlib bindings for Rust

flate2 A streaming compression/decompression library DEFLATE-based streams in Rust. This crate by default uses the miniz_oxide crate, a port of miniz.

Snappy bindings for Rust

Snappy [ Originally forked from https://github.com/thestinger/rust-snappy ] Documentation Usage Add this to your Cargo.toml: [dependencies] snappy = "

Tar file reading/writing for Rust

tar-rs Documentation A tar archive reading/writing library for Rust. # Cargo.toml [dependencies] tar = "0.4" Reading an archive extern crate tar; use

Pure Rust bzip2 decoder

bzip2-rs Pure Rust 100% safe bzip2 decompressor. Features Default features: Rust = 1.34.2 is supported rustc_1_37: bump MSRV to 1.37, enable more opt

Ribzip2 - A bzip2 implementation in pure Rust.

ribzip2 - a comprehensible bzip2 implementation ribzip2 is command line utility providing bzip2 compression and decompression written in pure Rust. It

A reimplementation of the Zopfli compression tool in Rust.

Zopfli in Rust This is a reimplementation of the Zopfli compression tool in Rust. Carol Nichols started the Rust implementation as an experiment in in

A Rust application that compress files and folders

Quick Storer This is a Rust application that compress files and folders. Usage Download or build the binary and place it on your desktop, or any other

lzlib (lzip compression) bindings for Rust

lzip Documentation A streaming compression/decompression library for rust with bindings to lzlib. # Cargo.toml [dependencies] lzip = "0.1" License Lic

banzai: pure rust bzip2 encoder

banzai banzai is a bzip2 encoder with linear-time complexity, written entirely in safe Rust. It is currently alpha software, which means that it is no

Comments
  • Added encryption and reworked the Read/Write structs.

    Added encryption and reworked the Read/Write structs.

    The Read/Write structs have been reworked so that one can efficiently add encryption and signing as well as swapping out compression algorithms. Currently, only aes256CBC(password) has been added to encryption and the signing structs is pass-through only.

    opened by ThaddeusTreloar 1
  • All-zero IVs

    All-zero IVs

    You currently use a static initialisation vector (of all-0). This is insecure.

    I don't mean to be too pushy about this, but it may be prudent to replace the OpenSSL dependency with RustCrypto's AEADs where possible, which are considerably more difficult to misuse, and which will also automatically alert on decryption failure due to a wrong encryption key.

    (I don't know the specifics of the original zip program this one is modelled after. Apologies if the zero-IV is needed for compatibility, though explaining that in the source file may be helpful in that case.)

    bug 
    opened by Tamschi 3
Owner
null
A simple rust library to read and write Zip archives, which is also my pet project for learning Rust

rust-zip A simple rust library to read and write Zip archives, which is also my pet project for learning Rust. At the moment you can list the files in

Kang Seonghoon 2 Jan 5, 2022
Zip implementation in Rust

zip-rs Documentation Info A zip library for rust which supports reading and writing of simple ZIP files. Supported compression formats: stored (i.e. n

null 549 Jan 4, 2023
A utility that can download JavaScript and TypeScript module graphs and store them locally in a special zip file.

eszip A utility that can download JavaScript and TypeScript module graphs and store them locally in a special zip file. To create a new archive: > esz

Deno Land 162 Dec 24, 2022
A library to create zip files on a non-seekable writer

A library to create zip files on a non-seekable writer

nyantec GmbH 2 Mar 17, 2022
Like pigz, but rust - a cross platform, fast, compression and decompression tool.

?? crabz Like pigz, but rust. A cross platform, fast, compression and decompression tool. Synopsis This is currently a proof of concept CLI tool using

Seth 232 Jan 2, 2023
Brotli compressor and decompressor written in rust that optionally avoids the stdlib

rust-brotli What's new in 3.2 into_inner conversions for both Reader and Writer classes What's new in 3.0 A fully compatible FFI for drop-in compatibi

Dropbox 659 Dec 29, 2022
Simple NoNG songs manager for GD, written in Rust.

nong-manager Simple NoNG songs manager for GD, written in Rust. Powered by Song File Hub (https://songfilehub.com/home) How to use Enter song ID that

Alexander Simonov 4 May 13, 2023
A Brotli implementation in pure and safe Rust

Brotli-rs - Brotli decompression in pure, safe Rust Documentation Compression provides a <Read>-struct to wrap a Brotli-compressed stream. A consumer

Thomas Pickert 59 Oct 7, 2022
libbz2 (bzip2 compression) bindings for Rust

bzip2 Documentation A streaming compression/decompression library for rust with bindings to libbz2. # Cargo.toml [dependencies] bzip2 = "0.4" License

Alex Crichton 67 Dec 27, 2022
A Rust implementation of the Zopfli compression algorithm.

Zopfli in Rust This is a reimplementation of the Zopfli compression tool in Rust. I have totally ignored zopflipng. More info about why and how I did

Carol (Nichols || Goulding) 76 Oct 20, 2022