#zstd #parallel #blake3

znippy-common

Core logic and data structures for Znippy, a parallel chunked compression system

4 releases

Uses new Rust 2024

new 0.2.5 Nov 2, 2025
0.2.4 Jul 30, 2025
0.2.3 Jul 27, 2025
0.2.0 Jul 25, 2025

#1037 in Compression

Download history 267/week @ 2025-07-23 163/week @ 2025-07-30 13/week @ 2025-08-06 3/week @ 2025-08-20 29/week @ 2025-09-03 8/week @ 2025-09-10 7/week @ 2025-09-17 17/week @ 2025-09-24 29/week @ 2025-10-01 32/week @ 2025-10-15 16/week @ 2025-10-22

78 downloads per month
Used in 4 crates (3 directly)

MIT license

65KB
1.5K SLoC

znippy

Znippy (Betha preview !!!!)

Znippy archive format based on Zstandard and Apache Arrow . Built for speed, streaming, and random access,.

⚡ Znippy 🐢 tar + zstd
⚡ Compression 44.6 seconds
2767 MB → 911 MB
418 % compression ratio
63.3 seconds
2767 MB → 722 MB
⚡ Decompression 1.9 seconds
14979 chunks
fully indexed
3.9 seconds
streamed extraction

Snippy is dead — long live Znippy!

The name Snippy was already in use in the genomics world, so we’re moving forward with Znippy — a name that proudly reflects its foundation in Zstandard (Zstd) and its focus on real-time, high-performance compression.

🧩 Znippy Compression Pipeline – Visual Overview

flowchart LR
    %% Reader + ChunkRevolver
    Reader[Reader Thread] --> Revolver((ChunkRevolver))

    %% Fan-out
    Revolver --> C0[Compressor 0]
    Revolver --> C1[Compressor 1]
    Revolver --> C2[...]
    Revolver --> C31[Compressor 31]

    %% Fan-in
    C0 --> Writer[Writer Thread]
    C1 --> Writer
    C2 --> Writer
    C31 --> Writer

    %% Output and Index
    Writer --> Index[Arrow Index - znippy]
    Writer --> Zdata[zdata File]

    %% Microchunk entries in index
    Index --> M0[Microchunk 0]
    Index --> M1[Microchunk 1]
    Index --> M2[...]
    Index --> M63[Microchunk 63]

    M0 --> Zdata
    M1 --> Zdata
    M2 --> Zdata
    M63 --> Zdata

    %% Final archive
    Index --> Final[Znippy Archive Output]
    Zdata --> Final

Dependencies

~25MB
~464K SLoC