#encoder #split #file #lib #cli

bin+lib prng_split

A subset of the split commmand with a prng seeded from input for deterministic output

1 unstable release

new 0.1.0 Nov 21, 2024

#41 in #split

AGPL-3.0-or-later

14KB
296 lines

range-split

A subset of the UNIX split command built with a PRNG for creating files of differening and deterministic sizes, seeded from the input.

Quick start

Use cases

Hosting large files in a repository

There's a bit of fluffling around but this can be used to host large files in GitHub without them knowing.

#  archive, compress, split

INPUT_DIR="path/to/big/directory"
PREFIX=".parts/"
RANGE="(0KB,50MB)" # 50MB is GitHub recommended max size.
tar cf - "$INPUT_DIR" | xz -9 -c | range-split -vvvv --factor 16 --prefix "$PREFIX" "$RANGE"
# concatenate, uncompress, unarchive

cat "$@" | xz -d -c | tar xf -

Nix (Flakes)

This library is available as a flake.

{
    inputs = {
        range-split.url = "github:waynevanson/elevated-cycling";
    };

    outputs = {}: {

    };
}

Dependencies

~2.1–2.9MB
~57K SLoC