Releases: qarmin/czkawka
Releases · qarmin/czkawka
9.0.0
Version 9.0.0 - 16.03.2025r
Breaking changes
- Video, Duplicate (smaller prehash size), and Image cache (EXIF orientation + faster resize implementation) are incompatible with previous versions and need to be regenerated.
Core
- Automatically rotating all images based on their EXIF orientation - #1368
- Fixed a crash caused by negative time values on some operating systems - #1369
- Updated
vid_dup_finder
; it can now detect similar videos shorter than 30 seconds - #1425 - Added support for more JXL image formats (using a built-in JXL → image-rs converter) - #1425
- Improved duplicate file detection by using a larger, reusable buffer for file reading - #1425
- Added an option for significantly faster image resizing to speed up image hashing - #1458
- Logs now include information about the operating system and compiled app features(only x86_64 versions) - #1458
- Added size progress tracking in certain modes - #1458, #1464
- Ability to stop hash calculations for large files mid-process - #1458
- Implemented multithreading to speed up filtering of hard links - #1458
- Reduced prehash read file size to a maximum of 4 KB - #1458
- Fixed a slowdown at the end of scans when searching for duplicates on systems with a high number of CPU cores - #1460
- Improved scan cancellation speed when collecting files to check - #1460
- Added support for configuring config/cache paths using the
CZKAWKA_CONFIG_PATH
andCZKAWKA_CACHE_PATH
environment variables - #1464 - Fixed a crash in debug mode when checking broken files named
.mp3
- #1464 - Catching panics from symphonia crashes in broken files mode - #1466
- Printing a warning, when using
panic=abort
(that may speedup app and cause occasional crashes) - #1466
Krokiet
- Changed the default tab to "Duplicate Files" - #1368
GTK GUI
CLI
- Added
-N
and-M
flags to suppress printing results/warnings to the console - #1464 - Fixed an issue where messages were not cleared at the end of a scan - #1464
- Ability to disable cache via
-H
flag(useful for benchmarking) - #1466
Prebuild-binaries
- This release is last version, that supports Ubuntu 20.04 - github actions drops this OS in its runners
- Linux and Mac binaries now are provided with two options x86_64 and arm64
- Arm linux builds needs at least Ubuntu 24.04
- Gtk 4.12 is used to build windows gtk gui instead gtk 4.10
- Dropping support for snap builds - too much time-consuming to maintain and testing(also it is broken currently)
- Removed native windows build krokiet version - now only the cross-compiled version from Linux is available (there should be no difference)
VirusTotal
(it seems that some lesser-known antivirus programs don’t like Rust with LTO – if you're unsure, you can compare the hashes of this binaries with artifacts from - 5dc8d38)
- https://www.virustotal.com/gui/file/c1afc7d82720cb3551550c921dcc1180cfe46bdc00fe6e5d0d317d6598d7e369
- https://www.virustotal.com/gui/file/d91c05d0d33b9891038658d5d90a6a46567c15eb6be823521b32b628e0805d4f
- https://www.virustotal.com/gui/file/3ad932d347d986be523c8fc646aef2a159799ed21c616e90ac05a4055493a5b2
- https://www.virustotal.com/gui/file/f3753322ce16a43d5938f50694237c0b56902f230d24328a9753d0e9baf91603
- https://www.virustotal.com/gui/file/ba07838fd1ac29a9483bfc8a015d79948b1108fdcdfd0fcd63bb2a112e103689
- https://www.virustotal.com/gui/file/a44869b8bb58854d0383558d1c7b50d0a306bd05f13164e62417aafbb33ccbc2
Legend:
- libraw in name - app is compiled with libraw feature and require libraw package sudo apt install libraw on ubuntu
- heif in name - require libheif-dev to be installed to be able to read use heif images
- gtk_gui - gtk version of app
- cli - command line version of app
- krokiet_gui - slint version of app
- console - windows version, that shows console in background - usable to find problems
- gtk_46, gtk_412 - gtk version used to build the app. It is provided as two separate packages, giving a choice in case one of them does not work for them (gtk 4.16 is available which may fix some bugs, if you are interested in it, please contribute and docker in - https://github.com/MGlolenstine/gtk4-cross)
- minimial appimage - this version does not contain gtk-related libraries and they are taken from the system, so it has requirements almost identical to the regular version. Use only if you have problems with the regular version or know what you are doing
You can read more about this version on Medium:
8.0.0
Version 8.0.0 - 11.10.2024r
Breaking changes
- Due to the removal image_type from image struct, old cache files are incompatible with new version and should be regenerated from scratch(it uses new name)
- Some CLI arguments could change short name, due fixing ambiguous names
Known regressions
- Slint 1.8 which Krokiet uses requires femtovg 0.9.2 which broke font rendering - slint-ui/slint#6298
CI
- Providing nightly
builds - #1360 - https://github.com/qarmin/czkawka/releases/tag/Nightly - Added finding duplicated options in CLI -#1364
Core
- Removed some unnecessary panics - #1354
- Simplified usage of structures when sending/receiving progress information - #1354
- Added Median hash algorithm - #1354
- Fixed compilation with Rust >=1.80 - #1354
- Extracted tool input parameters, that helped to find not used parameters - #1354
- Added new mod to find similar music only in groups with similar title tag - #1354
- Printing to file/console no longer uses two backslashes in windows paths - #1354
- Fixed panic when failed to decode raw picture - #1355
- Remove useless saving/loading cache when there is no files to check - #1358
- Filtering hard links on windows - #1316
- Added jxl support - #1358
- Added avif support(via external C library, not enabled by default) - #1358
- Integer overflow are enabled by default(prepare for reporting bugs, slower performance and general unstability) - #1358
- Fixed crash when loading invalid image cache - #1230
Krokiet
- Fixed invalid default hash size in similar images - #1354
- Fixed and added more input parameters to the application - #1354
- Fixed problem with loading invalid preset - #1226
- Fixed crash when using 8 hash size with small similarity - #1359
- Disabling buttons when no files were found - #1359
- Changed way to close/open panel at bottom - #1359
- Modify logo a little - #1359
- Avoid errors when trying to load preview of not supported file - #1359
- Added ability to show preview of referenced folders - #1359
- Enable selecting with space and jumping over entries with arrows and opening with enter - #1359
- Added button to rename files with invalid extension -#1364
GTK GUI
- Fixed and added more input parameters to the application - #1355
- Added option to use external libraries instead gtk pixbuf loader for previews - #1358
- Using static runtime with zstd compression in appimage - #1350
- Restoring flatpak builds - #1275
- [External] Mac homebrew version of app - https://formulae.brew.sh/formula/czkawka
CLI
- Added options to find/remove images by size - #1255
- Fixed and added more input parameters to the application - #1354
- Fixed crash when stopping scan multiple times - #1355
- Print results also in debug build - #1355
- Added support for selecting reference directories -#1364
Virustotal:
- https://www.virustotal.com/gui/file/557854787a3b1d6231ed229e02cd2d56fe7fa88b2f7432e3e8d4ecaad49afc72?nocache=1
- https://www.virustotal.com/gui/file/af2d3672ac86d2c5b9a56caacdd1e39fd721f91925b2e111d1d3fc7ab4562fb4?nocache=1
- https://www.virustotal.com/gui/file/1e4dac49d6e9f11a1b375926966b08d0542dea59f83b9e8195c12411dbbf3502?nocache=1
- https://www.virustotal.com/gui/file/56f8cc85b59caccfc53b1c07d1c134b4add416cd0edf69dcfe92dd5af0b05406?nocache=1
- https://www.virustotal.com/gui/file/7383855bbab3119274b6ed57fd468a4f48c4e221646a61f816aa5a562223b7b0?nocache=1
Legend:
- libraw in name - app is compiled with libraw feature and require libraw package sudo apt install libraw on ubuntu
- heif in name - require libheif-dev to be installed to be able to read use heif images
- gui - gtk version of app
- cli - command line version of app
- krokiet - slint version of app
- console - windows version, that shows console in background - usable to find problems
- gtk_46, gtk_410 - gtk version used to build
- minimial appimage - this version does not contain gtk-related libraries and they are taken from the system, so it has requirements almost identical to the regular version. Use only if you have problems with the regular version or know what you are doing
- winversion, linversion - the application has been compiled on Windows or cross-compiled on Linux. Both versions should work exactly the same, but the Windows version requires the Microsoft Visual C++ Redistributable package to be installed (it should be already installed on most Windows OS)
Other:
- Snap builds are not available, due error during build
Environment validation failed for part 'czkawka': 'cargo' failed with error code 1.
- Mac heif builds are also not available, due linker problem - https://github.com/qarmin/czkawka/actions/runs/11186720416/job/31102310566
Nightly
7.0.0
Version 7.0.0 - 19.02.2024r
BREAKING CHANGES
- Reducing size of cache files, made old cache files incompatible with new version
-C
in CLI now saves as compact json
GTK GUI
- Added drag&drop support for included/excluded folders - #1106
- Added information where are saved scan results - #1102
CLI
- Providing full static rust binary with Eyra - #1102
- Fixed duplicated
-c
argument, now saving as compact json is handled via-C
- #1153 - Added scan progress bar - #1183
- Clean and safe cancelling of scan - #1183
- Unification of CLI arguments - #1183
- Hardlink support for similar images/videos - #1201
Krokiet GUI
- Initial release of new gui - #1102
Core
- Using normal crossbeam channels instead of asyncio tokio channel - #1102
- Fixed tool type when using progress of empty directories - #1102
- Fixed missing json support when saving size and name duplicate results - #1102
- Fix cross-compiled debug windows build - #1102
- Added bigger stack size by default(fixes stack overflow in some musl apps) - #1102
- Added optional libraw dependency(better single-core performance and support more raw files) - #1102
- Speedup checking for wildcards and fix invalid recognizing long excluded items - #1152
- Big speedup when searching for empty folders(especially with multithreading + cached FS schema) - #1152
- Collecting files for scan can be a lot of faster due lazy file metadata gathering - #1152
- Fixed recognizing not accessible folders as non-empty - #1152
- Unifying code for collecting files to scan - #1159
- Decrease memory usage when collecting files by removing unused fields in custom file entries structs - #1159
- Decrease a little size of cache by few percents and improve loading/saving speed - #1159
- Added ability to remove from scan files with excluded extensions - #1184
- Fixed not showing in similar images results, files with same hashes when using reference folders - #1184
- Optimize release binaries with LTO(~25/50% smaller, ~5/10% faster) - #1184
Virustotal:
- https://www.virustotal.com/gui/file/a7e92bb8a6653695bb2467c19ee576b3226e4428413f5f77fb02f1e6c38c7c96?nocache=1
- https://www.virustotal.com/gui/file/2f270efff5db9a97aeaab1668b5dfb8c55247ba58711d078976a97a5f25e2103?nocache=1
- https://www.virustotal.com/gui/file/63ce24d594659c48c540df3c8c0bab7b5a80d65cbda1e465cc9cdf157b22bd13?nocache=1
- https://www.virustotal.com/gui/file/9b455e816727504446b7928cd3f5133e5cad55e41d6f8dc4913fbdb2929189d2?nocache=1
- https://www.virustotal.com/gui/file/82a886eeb7b4bb0bcf56b218e0a65093b65d9ed4656bc6fe62662b6380a0a806?nocache=1
Legend:
- libraw in name - app is compiled with libraw feature and require libraw package
sudo apt install libraw
on ubuntu - heif in name - require
libheif-dev
to be installed to be able to read use heif images - gui - gtk version of app
- cli - command line version of app
- krokiet - slint version of app
- console - windows version, that shows console in background - usable to find problems
- gtk_46, gtk_410 - gtk version used to build
6.1.0
Version 6.1.0 - 15.10.2023r
- BREAKING CHANGE - Changed cache saving method, deduplicated, optimized and simplified procedure(all files needs to be hashed again) - #1072, #1086
- Remove up to 340ms of delay when waiting for results - #1070
- Added logger with useful info when debugging app (level can be adjusted via e.g.
RUST_LOG=debug
env) - #1072, #1070 - Core code cleanup - #1072, #1070, #1082
- Updated list of bad extensions and support for finding invalid jar files - #1070
- More default excluded items on Windows(like pagefile) - #1074
- Unified printing/saving method to files/terminal and fixed some differences/bugs - #1082
- Uses fun_time library to print how much functions take time - #1082
- Added exporting results into json file format - #1083
- Added new test/regression suite for CI - #1083
- Added ability to use relative paths - #1083
- Allowed removing similar images/videos/music from cli - #1087
- Added info about saving/loading items to cache in duplicate and music mode - #1091
- Fixed number of files to check in duplicate mode - #1091
- Added support for qoi image format(without preview yet) - e92a
- Fixed stability problem, that could remove invalid file in CLI - #1083
- Fix Windows gui crashes by using gtk 4.6 instead 4.8 or 4.10 - #992
- Fixed printing info about duplicated music files - #1016
- Fixed printing info about duplicated video files - #1017
Virustotal
- cli - https://www.virustotal.com/gui/file/9832398939fb8dd206cdb16918629fbaf2342df1591c71a71b5f3949b0567521?nocache=1
- gui - https://www.virustotal.com/gui/file/369b735b40860dc6e84634245cc386fe9d03fc1739a5283684bddcbc282dac65?nocache=1
- gui console - https://www.virustotal.com/gui/file/d50c1e717586b67dad0b4cfb876e087155076d67228bcc725d1440299c95d6b9?nocache=1
6.0.0
Version 6.0.0 - 11.06.2023r
- Add finding similar audio files by content - #970
- Allow to find duplicates by name/size at once - #956
- Fix, simplify and speed up finding similar images - #983
- Fixed bug when cache for music tags not worked - #970
- Allow to set number of threads from CLI - #972
- Fix problem with invalid item sorting in bad extensions mode - #972
- Big refactor/cleaning of code - #956/#970/#972
- Use builtin gtk webp loader for previews - #923
- Fixed docker build - #947
- Restore snap builds broken since GTk 4 port - #965
- Instruction how to build native ARM64 binaries on Mac - #945/#971
Virustotal:
5.1.0
Version 5.1.0 - 19.02.2023r
- Added sort button - #894
- Allow to set number of thread used to scan - #839
- Faster similar images comparing with reference folders - #826
- Update to clap 4 - #878
- Use FileChooserNative instead FileChooserDialog - #894
- Fix invalid music tags in music files when using reference folders - #894
- Updated pdf dependency(a lot of less amount of broken pdf false positives) - #894
- Changed strange PDF error message - "Try at" - #894
- Treat extensions Mp4 and m4v as identical - #834
- Improve thumbnail quality - #895
- Verify if hardlinking works, and if not, disable button with proper message - #881
- Apply some pedantic clippy lints on project - #901
Virustotal:
5.0.2
Version 5.0.2 - 30.08.2022r
- Fixed problem with missing some similar images when using similarity > 0 - #799
- Prebuilt Linux binaries are compiled without heif support - 24b
- Similar videos stops to proceed video after certain amount of time(fixes freezes) - #815
- Add --version argument for czkawka_cli - #806
- Rewrite a little nonsense message about minimal file size - #807
Virustotal:
5.0.1
Version 5.0.1 - 03.08.2022r
- Fixed problem with removing ending slash with empty disk window path - 975
- Added to CLI bad extensions mode - #795
- Restore default sorting method in CLI where finding biggest files - 5d7
- Added tests to CI - #791
- Show error message when all directories are set as reference folders - #795
- Added more info about new requirements on Linux - #795
Virustotal:
5.0.0
Version 5.0.0 - 28.07.2022r
- GUI ported to use GTK 4 - #466
- Use multithreading and improved algorithm to compare image hashes - #762
- Resize preview with window - #466
- Fix removing only one item from list view - #466
- Fix showing help command in duplicate CLI mode - #720
- Fix freeze when not choosing any tag in similar music mode - #732
- Fix preview of files with non-lowercase extensions - #694
- Read more tags from music files - #705
- Improve checking for invalid extensions - #705, #747, #749
- Support for finding invalid PDF files - #705
- Re-enable checking for broken music files(
libasound.so.2
no longer needed) - #705 - Fix disabled ui when using invalid settings in similar music - #740
- Speedup searching for invalid extensions - #740
- Support for finding the smallest files - #741
- Improved Windows CI - #749
- Ability to check for broken files by types - #749
- Add heif and Webp files support - #750
- Use in CLI Clap library instead StructOpt - #759
- Multiple directories can be added via Manual Add button - #782
- Option to exclude files from other filesystems in GUI(Linux) - #776
Virustotal:
https://www.virustotal.com/gui/file/7d512f3796979f6573b20a8fcc1e355644b086cfc64fa38205260689e44af777
https://www.virustotal.com/gui/file/17b7e2a5a00c54a11a8925deb4771cc3d140f760fe10a4714f33ef9e5a0620fe