[package]
name = "xpatch"
version = "0.1.0"
edition = "2024"
license = "AGPL-3.0-or-later"
description = "High-performance delta compression library with automatic algorithm selection"
repository = "https://github.com/ImGajeed76/xpatch"
homepage = "https://github.com/ImGajeed76/xpatch"
documentation = "https://docs.rs/xpatch"
readme = "README.md"
keywords = ["delta", "compression", "diff", "patch", "version-control"]
categories = ["compression", "algorithms", "encoding"]
exclude = [
"test_results/",
"benchmark_results/",
"benches/",
"*.log",
"*.csv",
"Cargo.toml.orig",
"src/bin/git_benchmark.rs"
]
[dependencies]
gdelta = "0.1.1"
num_enum = "0.7.5"
zstd = "0.13.3"
anyhow = { version = "1.0.100", optional = true }
clap = { version = "4.5.53", features = ["derive"], optional = true }
git2 = { version = "0.20.3", optional = true }
indicatif = { version = "0.18.3", optional = true }
log = { version = "0.4", optional = true }
env_logger = { version = "0.11.8", optional = true }
csv = { version = "1.4.0", optional = true }
serde = { version = "1.0.228", features = ["derive"], optional = true }
xdelta3 = { version = "0.1.5", optional = true }
qbsdiff = { version = "1.4.4", optional = true }
rayon = { version = "1.11.0", optional = true }
chrono = { version = "0.4.42", optional = true }
num_cpus = { version = "1.17.0", optional = true }
ctrlc = { version = "3.5.1", optional = true }
[dev-dependencies]
criterion = { version = "0.8.0", features = ["html_reports"] }
xdelta3 = "0.1.5"
qbsdiff = "1.4.4"
[profile.bench]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "unwind"
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
panic = "unwind"
[features]
default = []
cli = ["dep:anyhow", "dep:clap"]
benchmark = [
"dep:anyhow",
"dep:clap",
"dep:git2",
"dep:indicatif",
"dep:log",
"dep:env_logger",
"dep:csv",
"dep:serde",
"dep:xdelta3",
"dep:qbsdiff",
"dep:rayon",
"dep:chrono",
"dep:num_cpus",
"dep:ctrlc"
]
debug_all = [
"debug_delta_encode",
"debug_delta_token",
"debug_delta_analyze",
"debug_delta_compress",
"debug_delta_pattern",
"debug_delta_header",
"debug_tokenizer",
]
debug_delta_encode = []
debug_delta_token = []
debug_delta_analyze = []
debug_delta_compress = []
debug_delta_pattern = []
debug_delta_header = []
debug_tokenizer = []
[[bench]]
name = "stress"
harness = false
[[bench]]
name = "stress_compared"
harness = false
[[bin]]
name = "xpatch"
required-features = ["cli"]
[[bin]]
name = "git_benchmark"
required-features = ["benchmark"]
[[example]]
name = "basic"
[[example]]
name = "tags"