LeChange Core
Ultra-fast Git change detection library with zero-cost abstractions.
This library provides high-performance git diff operations using:
- GATs (Generic Associated Types) for zero-cost async
- Lifetimes over Arc for zero-copy string handling
- String interning for path deduplication
- Rayon for CPU-bound parallel processing
- Tokio for async I/O operations
Example
use lechange_core::{InputConfig, detect_changes};
use std::borrow::Cow;
# async fn example() -> Result<(), Box<dyn std::error::Error>> {
let config = InputConfig {
base_sha: Some(Cow::Borrowed("HEAD^")),
sha: Some(Cow::Borrowed("HEAD")),
..Default::default()
};
let result = detect_changes(config).await?;
println!("Changed files: {}", result.all_files.len());
# Ok(())
# }