Shredder is a file shredding application written in Go. It irreversibly overwrites files with random data, rendering them unusable while keeping the file intact.
- Secure File Shredding: Overwrites file contents with random data for a specified number of passes.
- Cross-Platform Compatibility: Supports macOS and Windows.
- Interactive TUI: A terminal user interface built with tview for easy navigation and operation.
- Native File Dialog Integration
- Safety Checks:
- Empty files (0 bytes) are detected and flagged as unnecessary for shredding.
- A maximum pass count is enforced (default is 10, configurable in the code) to prevent excessive processing and storage decay.
- Logging: Visual feedback is provided via a log window in the TUI, displaying status messages and error notifications.
-
Select a File:
Use the "Select a File" button to open a native file dialog and choose a file to shred. -
Configure Passes:
Enter the desired number of overwrite passes (secure deletion standards typically require 3 to 7 passes). -
Start Shredding:
Click "Start Shredding" to begin the process. The application overwrites the file content in chunks with random data, logging progress and any errors encountered. -
Quit:
Use the "Quit" button to exit the application or just do CTRL + C.
Clone the repository, install dependencies, and run the application using the following commands:
go mod tidy
go run cmd/main.go
- Go: Version 1.24 or higher.
- Operating System: macOS or Windows.
- Dependencies:
- tview for the TUI.
- tcell for terminal cell handling.
- sqweek/dialog (or AppleScript based logic for macOS) for file selection.