Expand description

packfile is a simple library providing utilities to generate Git Packfiles in memory.

Usage:

let mut repo = GitRepository::default();
repo.insert(&["path", "to"], "file.txt", "hello world!".into()).unwrap();
let (_commit_hash, entries) =
    repo.commit("Linus Torvalds", "torvalds@example.com", "Some commit message").unwrap();

let _packfile = PackFile::new(&entries);

The generated packfile can then be encoded within a SidebandData to send the data to a client

Modules

A tokio_util::codec implementation for the Git wire format.
A high-level interface for building packfiles. Wraps the low_level module making a much easier interface for writing files and generating the root commit.
A low-level Git packfile builder.

Enums

A wrapper containing every possible type of message that can be sent to a Git client.