[package]
edition = "2024"
rust-version = "1.95"
name = "puregit"
version = "0.0.2"
authors = ["Karpelès Lab Inc."]
build = false
exclude = ["interop/"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A pure-Rust implementation of git, in the spirit of libgit2, built on purecrypto. Object model, packfiles, refs, and the smart transport over HTTP and SSH — client and server."
documentation = "https://docs.rs/puregit"
readme = "README.md"
keywords = [
"git",
"vcs",
"packfile",
"no-std",
"libgit2",
]
categories = [
"development-tools",
"no-std",
"parser-implementations",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/puregit"
[features]
client = []
default = [
"std",
"client",
]
ffi = ["std"]
full = [
"std",
"client",
"server",
"http",
"ssh",
"ffi",
"signing",
]
http = [
"std",
"dep:rsurl",
]
server = ["std"]
signing = [
"purecrypto/ec",
"purecrypto/rsa",
]
ssh = [
"std",
"dep:puressh",
]
std = [
"purecrypto/std",
"compcol/std",
]
[lib]
name = "puregit"
crate-type = ["lib"]
path = "src/lib.rs"
[[bin]]
name = "puregit"
path = "src/bin/git.rs"
required-features = [
"std",
"client",
]
[[test]]
name = "interop_cli"
path = "tests/interop_cli.rs"
[[test]]
name = "interop_cli_mutate"
path = "tests/interop_cli_mutate.rs"
[[test]]
name = "interop_git_disk"
path = "tests/interop_git_disk.rs"
[[test]]
name = "interop_git_disk_write"
path = "tests/interop_git_disk_write.rs"
[[test]]
name = "interop_git_protocol_client"
path = "tests/interop_git_protocol_client.rs"
[[test]]
name = "interop_git_protocol_server"
path = "tests/interop_git_protocol_server.rs"
[dependencies.compcol]
version = "0.7"
features = [
"alloc",
"zlib",
]
default-features = false
[dependencies.purecrypto]
version = "0.10.1"
features = [
"alloc",
"hash",
]
default-features = false
[dependencies.puressh]
version = "0.1.11"
features = [
"client",
"multichannel",
]
optional = true
default-features = false
[dependencies.rsurl]
version = "0.1.18"
optional = true
[dev-dependencies.hex]
version = "0.4"
[profile.release]
lto = "thin"
codegen-units = 1
strip = true