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:
2026-01-22 13:33:38 -05:00
parent f379064e44
commit db9059e2fc
7 changed files with 1014 additions and 681 deletions
+6
View File
@@ -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