xpatch 0.1.0

High-performance delta compression library with automatic algorithm selection
Documentation
[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"

# Optional benchmark-only dependencies
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"