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

packfile

一个简单的库,提供在内存中生成 Git Packfiles 并将其发送给客户端的实用工具

3 个版本

0.1.2 2024年2月23日
0.1.1 2023年7月4日
0.1.0 2022年10月22日

开发工具 中排名 374

Download history 106/week @ 2024-04-22 79/week @ 2024-04-29 9/week @ 2024-05-06 71/week @ 2024-05-13 231/week @ 2024-05-20 24/week @ 2024-05-27 4/week @ 2024-06-03 7/week @ 2024-06-17 67/week @ 2024-06-24 40/week @ 2024-07-01 9/week @ 2024-07-08 4/week @ 2024-07-15 56/week @ 2024-07-22 5/week @ 2024-07-29 45/week @ 2024-08-05

每月下载量 110

WTFPL 许可证

45KB
982 代码行

Packfile Crate API codecov

packfile 是一个简单的库,提供在内存中生成 Git Packfiles 的实用工具。

使用方法

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", "[email protected]", "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 是一个简单的库,提供在内存中生成 Git Packfiles 的实用工具。

使用方法

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

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

生成的 packfile 可以被编码在一个 SidebandData 中,以发送数据给客户端

依赖项

~5–7MB
~118K SLoC