Skip to content

v0.1.0

Choose a tag to compare

@TFMV TFMV released this 08 Mar 08:48
· 20 commits to main since this release
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.