Expand description
§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;
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());Re-exports§
pub use error::Error;pub use error::Result;pub use interner::StringInterner;pub use types::ChangeType;pub use types::ChangedFile;pub use types::CiDecision;pub use types::DiffResult;pub use types::FailureTrackingLevel;pub use types::GroupDeployAction;pub use types::GroupDeployDecision;pub use types::GroupDeployReason;pub use types::InputConfig;pub use types::InternedString;pub use types::ProcessedResult;
Modules§
- coordination
- Main coordination logic
- error
- Error types for lechange-core
- file_
ops - File operations with symlink detection and caching
- git
- Git operations module
- http
- HTTP client for GitHub API
- interner
- String interner for zero-copy path deduplication
- output
- Output computation and formatting module
- patterns
- Pattern matching module
- platform
- Platform-specific utilities
- types
- Core type definitions with zero-copy design
Functions§
- detect_
changes - Detect changed files between two git references
- detect_
changes_ sync - Synchronous variant of
detect_changes