Repository navigation
Releases
v0.2.0
Stride v0.2.0 Release Notes
We're excited to announce the release of Stride v0.2.0, which brings significant improvements to our high-performance filesystem traversal and search library.
🚀 New Features
🔍 Enhanced Find API
- Advanced File Searching: New Find API for powerful file searching with pattern matching, filtering, and actions.
- Pattern Matching: Support for:
- Name patterns
- Path patterns
- Ignore patterns
- Regular expressions
- Time-Based Filtering: Find files based on modification time (
newer than,older than). - Size-Based Filtering: Filter files by size (
larger than,smaller than). - Command Execution: Execute commands on matched files with
FindWithExec. - Custom Formatting: Format output with templates using
FindWithFormat. - Watch Mode: Watch for file changes with configurable events.
🔗 Improved Symlink Handling
- Configurable Behavior: Three modes for handling symlinks (
ignore,follow,report). - Cycle Detection: Prevent infinite loops when following symlinks.
- Proper Error Propagation: Better handling of symlink-related errors.
🔒 Permission Handling
- Graceful Error Handling: Improved handling of permission errors during traversal.
- Skip Strategy: Option to skip directories with permission issues.
- Detailed Error Reporting: Better context for permission-related errors.
🖥️ CLI Enhancements
- Find Command: New command for searching files with various criteria.
- Template Placeholders: Support for placeholders in output formatting and command execution.
- Watch Mode: CLI support for watching filesystem changes.
⚡ Improvements
- Performance Optimizations: Improved string handling with
strings.Builderfor better performance. - Concurrent Processing: Enhanced worker pool management for better resource utilization.
- Error Handling Modes: More flexible error handling strategies (
continue,stop,skip). - Documentation: Comprehensive CLI reference and examples.
- Test Coverage: Expanded test suite with better coverage of edge cases.
🐛 Bug Fixes
- Path Matching: Fixed issues with wildcard pattern matching for file paths.
- Depth Calculation: Corrected calculation of directory depth for max depth filtering.
- Permission Errors: Better handling of
permission deniederrors during traversal. - Symlink Cycles: Fixed potential infinite loops when following symbolic links.
📂 Examples
The library now includes comprehensive examples demonstrating various features:
- Basic usage
- Advanced filtering
- Permission handling
- Enhanced API with middleware
- Find API with pattern matching
- File hashing with concurrent processing
📖 Documentation
- Updated README with clearer installation and usage instructions.
- New CLI command reference.
- Expanded API documentation with examples.
- Improved code comments for better developer experience.
⚠️ Breaking Changes
- SymlinkHandling now has three distinct modes instead of a boolean flag.
- Error handling has been standardized across the library with the new
ErrorHandlingMode.
v0.1.0
Stride v0.1.0 Release Notes
We're excited to announce the initial release of Stride, a high-performance, concurrent filesystem traversal library for Go.
Overview
Stride builds upon the standard filepath.Walk functionality while adding concurrency, filtering, progress monitoring, and advanced configuration options.
Key Features
High-Performance Concurrent Processing
- Process files in parallel with configurable worker pools
- Significant performance improvements for CPU-bound file processing tasks
- Optimized for multi-core systems with configurable worker count
Flexible Filtering System
- Filter files by size, extension, pattern, and modification time
- Advanced filtering by permissions, owner/group, and file depth
- Exclude specific directories or file patterns
- Time-based filtering (modified, accessed, created)
Real-Time Progress Monitoring
- Live statistics during traversal with minimal overhead
- Track files processed, directories traversed, and processing speed
- Support for both text and JSON output formats
Robust Symlink Handling
- Three configurable modes: Ignore, Follow, and Report
- Cycle detection to prevent infinite loops when following symlinks
- Proper path resolution for symlinked files and directories
Comprehensive Error Handling
- Multiple strategies: Continue, Stop, or Skip on errors
- Detailed error reporting and propagation
- Context-aware cancellation support
Advanced Configuration
- Memory limits with soft and hard thresholds
- Context support for cancellation and deadlines
- Structured logging with zap logger integration
- Middleware support for cross-cutting concerns
Command-Line Utility
- Powerful CLI tool for quick filesystem traversal
- Extensive filtering options matching the library capabilities
- Progress reporting with real-time updates
- Multiple output formats (text, JSON)
Performance Highlights
- Up to N times speedup for CPU-bound tasks (where N is the number of CPU cores)
- Optimized core functions with minimal memory allocations
- Efficient filtering with negligible overhead
- Progress reporting with minimal performance impact
Installation
The library can be installed using Go modules:
go get github.com/TFMV/stride
The command-line utility can be installed with:
go install github.com/TFMV/stride@latest
Documentation
Comprehensive documentation is available in the README, including:
- Quick start guide
- Advanced usage examples
- API reference
- Performance benchmarks
- Architecture overview
Future Directions
In upcoming releases, we plan to focus on:
- Additional performance optimizations
- Enhanced middleware capabilities
- More filtering options
- Improved error handling and reporting
- Extended CLI functionality
For more information, visit the GitHub repository.