Repository navigation
v0.1.0
Pre-release
Pre-release
FlashFS v0.1.0 Release Notes
FlashFS is a high-performance file system snapshot and diff tool designed for efficiently tracking and managing changes across file systems over time.
Overview
FlashFS v0.1.0 provides a robust foundation for creating, comparing, and managing file system snapshots with a focus on performance and efficiency. This release introduces the core functionality and architecture that will serve as the basis for future enhancements.
Key Features
Snapshot Management
- Fast Snapshot Creation: Efficiently capture the state of your file system with parallel processing
- Content-Based Deduplication: Use BLAKE3 hashing for accurate file identification
- Configurable Compression: Balance speed and size with zstd compression
- Intelligent Caching: Optimize performance for frequently accessed snapshots
Diff Computation
- Structured Diff Format: Clear representation of added, modified, and deleted files
- Bloom Filter Pre-filtering: Quickly identify potential changes between snapshots
- Parallel Processing: Distribute comparison work across multiple CPU cores
- Path Filtering: Focus comparisons on specific directories or file patterns
Snapshot Lifecycle Management
- Flexible Expiry Policies: Configure retention based on time periods and snapshot counts
- Time-Based Retention: Keep hourly, daily, weekly, monthly, and yearly snapshots
- Count-Based Retention: Limit the total number of snapshots
- Age-Based Cleanup: Automatically remove snapshots older than a specified age
Query Capabilities
- Path Pattern Matching: Find files matching specific patterns
- Metadata Filtering: Filter by modification time, size, and file type
- Multiple Output Formats: Export results as text, JSON, or CSV
Technical Highlights
- Efficient Binary Serialization: Using FlatBuffers for compact representation and fast access
- Minimal Memory Usage: Streaming processing for handling large file systems
- Thread Safety: Concurrent operations with proper synchronization
- Comprehensive CLI: Full-featured command-line interface built with Cobra
Documentation
Comprehensive documentation is available at https://TFMV.github.io/flashfs/, including:
- Component overviews
- Command references
- Usage examples
- Implementation details
- Performance considerations
Installation
go install github.com/TFMV/flashfs@latestExample Usage
Create a snapshot:
flashfs snapshot --path /home/user/documents --output backup-20240601.snapCompute differences:
flashfs diff --base backup-20240601.snap --target backup-20240602.snap --output changes.diffApply a diff:
flashfs apply --base backup-20240601.snap --diff changes.diff --output backup-20240602.snapSet an expiry policy:
flashfs expiry set --keep-hourly 24 --keep-daily 7 --keep-weekly 4 --keep-monthly 12Known Limitations
- Limited support for special file types (devices, sockets, etc.)
- No built-in encryption for snapshots and diffs
- No remote storage backend integration
Future Roadmap
- Encryption support for secure storage
- Remote storage backends (S3, GCS, etc.)
- GUI for visualization and management
- Improved handling of special file types
- Snapshot verification and integrity checking
Contributors
- Thomas F McGeehan V (Lead Developer)
License
FlashFS is released under the MIT License.
We welcome feedback, bug reports, and contributions! Please file issues on our GitHub repository.