vz 0.0.1

Vault Zipper: Encrypt and compress files with CLI efficiency
Documentation
use ext::no_std::pipelines::tap::Tap;
use rayon::prelude::*;
use std::io::Write;
use xz2::write::{XzDecoder, XzEncoder};

pub fn par_compress(data: Vec<u8>) -> Vec<u8> {
    data.par_chunks(data.len() / num_cpus::get() / 3)
        .flat_map(|grouped_data| {
            XzEncoder::new(vec![], 9)
                .tap_mut(|xz| xz.write_all(grouped_data).unwrap())
                .finish()
                .unwrap()
        })
        .collect()
}

pub fn decompress(data: Vec<u8>) -> Vec<u8> {
    XzDecoder::new_multi_decoder(vec![])
        .tap_mut(|xz| xz.write_all(&data).unwrap())
        .finish()
        .unwrap()
}