feat: optimization refactor, test suite, and dependency cleanup
Refactored the application to improve performance, maintainability, and binary size. Key Changes: - **Core Algorithm**: Switched to a parallel, single-pass tree construction algorithm for O(N) traversal. - **Architecture**: Extract core logic from `main.rs` to `lib.rs` to enable unit testing. - **Testing**: Added comprehensive unit tests and integration tests (`tests/cli.rs`) covering CLI arguments and output formats. - **Benchmarking**: Added `criterion` benchmarks for performance tracking. - **Dependencies**: - Removed `walkdir` (logic replaced by `ignore` + custom tree). - Removed `humansize` (consolidated to `byte-unit`). - Replaced `chrono` with lightweight `time` crate. - Removed unused `atty`. - **Reporting**: Optimized CSV and JSON output for correctness and zero-copy performance. - **Documentation**: Updated CHANGELOG.md and bumped version to 0.2.0.
This commit is contained in:
@@ -14,9 +14,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
### Added
|
||||
- Added `MANUAL.md` with comprehensive usage documentation.
|
||||
- Added comprehensive test suite (unit and integration tests).
|
||||
- Added performance benchmarks using `criterion`.
|
||||
|
||||
### Removed
|
||||
- Removed `walkdir` dependency (replaced by `ignore::WalkBuilder` for all traversal).
|
||||
- Removed `humansize` (consolidated to `byte-unit`).
|
||||
- Removed `chrono` (replaced with lightweight `time`).
|
||||
- Removed `atty` (unused).
|
||||
|
||||
|
||||
## [0.1.0] - 2026-01-22
|
||||
|
||||
|
||||
Reference in New Issue
Block a user