Skip to content

Releases

v0.2.0

Choose a tag to compare

@TFMV TFMV released this 08 Mar 10:51
279568e

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.Builder for 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 denied errors 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

Choose a tag to compare

@TFMV TFMV released this 08 Mar 08:48
f669d7d

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.