znippy-common 0.6.0

Core logic and data structures for Znippy, a parallel chunked compression system.
extern crate core;

pub mod codec;
pub mod common_config;
pub mod index;
pub mod archive;
mod int_ring;
pub use int_ring::{ChunkQueue, RingBuffer};

pub mod chunkrevolver;
pub use chunkrevolver::{ChunkRevolver, get_chunk_slice, split_into_microchunks};

pub mod meta;
pub use meta::{BlobMeta, ChunkMeta, FileMeta};

pub mod plugin;
pub mod plugins;

use serde::{Deserialize, Serialize};

pub mod decompress;
mod skip;

pub use archive::{ZnippyArchive, ZnippyReader};
pub use decompress::decompress_archive;

pub use index::{
    VerifyReport, ZNIPPY_INDEX_SCHEMA,
    build_arrow_metadata_for_config, build_metadata_batch,
    extract_config_from_arrow_metadata, is_probably_compressed, list_archive_contents,
    read_znippy_index, should_skip_compression, verify_archive_integrity, znippy_index_schema,
};

#[derive(Debug)]
pub struct CompressionReport {
    pub total_files: u64,
    pub compressed_files: u64,
    pub uncompressed_files: u64,
    pub total_dirs: u64,
    pub total_bytes_in: u64,
    pub total_bytes_out: u64,
    pub compressed_bytes: u64,
    pub uncompressed_bytes: u64,
    pub compression_ratio: f32,
    pub chunks: u64,
}