#git #protocols #in-memory #utilities #low-level

packfile

A simple library providing utilities to generate Git Packfiles in memory and send them to clients

3 releases

0.1.2 Feb 23, 2024
0.1.1 Jul 4, 2023
0.1.0 Oct 22, 2022

#641 in Development tools

Download history 45/week @ 2024-08-12 32/week @ 2024-08-19 10/week @ 2024-08-26 3/week @ 2024-09-09 28/week @ 2024-09-16 66/week @ 2024-09-23 7/week @ 2024-09-30 3/week @ 2024-10-07 23/week @ 2024-10-14 4/week @ 2024-10-21 36/week @ 2024-10-28 10/week @ 2024-11-04 87/week @ 2024-11-11 2/week @ 2024-11-18 10/week @ 2024-11-25

109 downloads per month

WTFPL license

45KB
982 lines

Packfile Crate API codecov

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

Usage:

use packfile::{high_level::GitRepository, low_level::PackFile};

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);
// ... packfile can then be encoded within a SidebandData to send the data to a client

lib.rs:

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

Dependencies

~5–11MB
~118K SLoC