Czkawka is a simple, fast and easy to use app to remove unnecessary files from your computer.

Overview

com github qarmin czkawka

Czkawka is a simple, fast and easy to use app to remove unnecessary files from your computer.

Features

  • Written in memory safe Rust
  • Amazingly fast - due to using more or less advanced algorithms and multithreading
  • Free, Open Source without ads
  • Multiplatform - works on Linux, Windows and macOS
  • Cache support - second and further scans should be a lot of faster than the first
  • CLI frontend - for easy automation
  • GUI frontend - uses modern GTK 3 and looks similar to FSlint
  • Rich search option - allows setting absolute included and excluded directories, set of allowed file extensions or excluded items with the * wildcard
  • Multiple tools to use:
    • Duplicates - Finds duplicates basing on file name, size, hash, first 1 MB of hash
    • Empty Folders - Finds empty folders with the help of an advanced algorithm
    • Big Files - Finds the provided number of the biggest files in given location
    • Empty Files - Looks for empty files across the drive
    • Temporary Files - Finds temporary files
    • Similar Images - Finds images which are not exactly the same (different resolution, watermarks)
    • Zeroed Files - Finds files which are filled with zeros (usually corrupted)
    • Same Music - Searches for music with same artist, album etc.
    • Invalid Symbolic Links - Shows symbolic links which points to non-existent files/directories
    • Broken Files - Finds files with an invalid extension or that are corrupted

Czkawka

How do I use it?

You can find an instruction on how to use Czkawka here.

Requirements

If you are using Windows or Mac binaries, there is no specific requirements.
Same with Appimage, Flatpak and Snap on Linux (except having system 18.04+ or similar).

Although, compiled GUI binaries on Linux or compiling it on your own OS requires you to install these packages:

Ubuntu/Debian

sudo apt install libgtk-3-dev

Fedora/CentOS

sudo yum install gtk3-devel glib2-devel

Void Linux (CLI only)

sudo xbps-install gcc pkg-config alsa-lib-devel

Installation

Precompiled binaries

Ready-to-go executables are available here. If the app does not run when clicking at a launcher, run it through a terminal.
You don't need to have any additional libraries for CLI Czkawka.

GUI Requirements

Linux

For Czkawka GUI you are required to have at least GTK 3.22 and also Alsa installed (for finding broken music files). It should be installed by default on all the most popular distros.

Windows

The czkawka_gui.exe which is extracted from the windows_czkawka_gui.zip zip file needs to be in the same file as the rest. If you want to move and open the executable somewhere else, you need to install the GTK 3 runtime from here.

macOS

Currently you need to manually install GTK 3 libraries, because they are dynamically loaded from the OS (we need help in using static linking). Installation in the terminal:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install gtk+3

After that, go to the location where you installed this and add the executable permission.

chmod +x mac_czkawka_gui

Execute in the same folder with:

./mac_czkawka_gui

Appimage

Appimage files are available in release page - GitHub releases There is a problem with this currently, as it doesn't allow you to open two images/files at once.

Cargo

The easiest method to install Czkawka is using the cargo command. For compiling it, you need to get all the requirements from the compilation section.

cargo install czkawka_gui
cargo install czkawka_cli

You can update the package with the same command.

Snap

sudo snap install czkawka

By default, Snap can only access to the files in your home directory. You have to allow czkawka to access to all the drives:

sudo snap connect czkawka:removable-media

The Snap store entry can be found here.

Fresh builds are available in edge branch, but they may be a little unstable, although that happens very rarely because I don't push untested code.

Flatpak

flatpak install flathub com.github.qarmin.czkawka

Flathub page with Czkawka can be found here

Unofficial packages, which may not always provide the latest version of Czkawka.

PPA - Debian/Ubuntu (unofficial)

sudo add-apt-repository ppa:xtradeb/apps
sudo apt-get update
sudo apt-get install czkawka

AUR - Arch Linux Package (unofficial)

Czkawka is also available in Arch Linux's AUR from which it can be easily installed.

yay -Syu czkawka-git

or

yay -Syu czkawka-gui-bin
yay -Syu czkawka-cli-bin

Package info's - https://aur.archlinux.org/packages/?O=0&SeB=nd&K=czkawka&outdated=&SB=n&SO=a&PP=50&do_Search=Go

Docker image (unofficial)

Czkawka docker image is available here

Development versions

Artifacts from each commit can be downloaded here

Compilation

The compilation section is generally not recommended, because you have multiple better sources of this app than compiling it yourself.

Requirements

Program Min What for
Rust 1.48 Czkawka aims to support only the latest stable Rust version
GTK 3.22 Only for the GTK backend

If you only want the terminal version without a GUI, just skip all lines about gtk.

Debian / Ubuntu

sudo apt install -y curl  # Needed by Rust update tool
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust
sudo apt install -y libgtk-3-dev libasound2-dev

Fedora / CentOS / Rocky Linux

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # Download the latest stable Rust
sudo yum install gtk3-devel glib2-devel alsa-lib-devel

macOS

You need to install Homebrew and GTK Libraries

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install rust gtk+3

Windows

Will be available in the future

Compilation from source

  • Download the source
git clone https://github.com/qarmin/czkawka.git
cd czkawka
  • Compile and run GTK GUI
cargo run --bin czkawka_gui

For Linux-to-Windows cross-building instruction look at the CI. GUI

  • Compile and run CLI (this will print help with a lot of examples)
cargo run --bin czkawka_cli

CLI

Additional features

For now, finding broken audio files is temporary disabled by default, because it crash when not found audio libraries on computer.
I'm waiting for ability to disable audio playback feature, so after that I will be able to re-enable by default this feature (https://github.com/RustAudio/rodio/issues/349)

To enable checking for broken audio files, just add at the end --all-features

cargo run --all-features --bin czkawka_cli -- broken  -d /home/rafal/ -f "results.txt"

Benchmarks

Since Czkawka is written in Rust and it aims to be a faster alternative to FSlint (which is written in Python), we need to compare the speed of these tools.

I tested it on a 256 GB SSD and a i7-4770 CPU.

I prepared a directory and performed a test without any folder exceptions (I removed all directories from FSlint and Czkawka from other tabs than Include Directory) which contained 229 868 files, took 203.7 GB and had 13 708 duplicate files in 9117 groups which took 7.90 GB.

Minimum file size to check I set to 1 KB on all programs.

App Executing Time
FSlint 2.4.7 (Second Run) 86s
Czkawka 1.4.0 (Second Run) 12s
DupeGuru 4.0.4 (Second Run) 28s

I used Mprof for checking memory usage FSlint and DupeGuru, for Czkawka I used Heaptrack. To not get a crash from DupeGuru I checked a smaller directory with 217 986 files and 41 883 folders.

App Idle Ram Max Operational Ram Usage Stabilized after search
FSlint 2.4.7 62 MB 84 MB 84 MB
Czkawka 1.4.0 9 MB 66 MB 32 MB
DupeGuru 4.0.4 80 MB 210 MB 155 MB

Similar images which check 332 files which took 1.7 GB

App Scan time
Czkawka 1.4.0 58s
DupeGuru 4.0.4 51s

Similar images which check 1421 image files which took 110.1 MB

App Scan time
Czkawka 1.4.0 25s
DupeGuru 4.0.4 92s

So there is still is a lot of room for improvements.

Comparison to other tools

Czkawka FSlint DupeGuru
Language Rust Python Python/Obj-C
OS All Linux only All
Framework GTK 3 PyGTK Qt 5 (PyQt)/Cocoa
Duplicate finder
Empty files
Empty folders
Temporary files
Big files
Similar images
Zeroed Files
Music duplicates(tags)
Invalid symlinks
Broken Files
Installed packages
Invalid names
Names conflict
Bad ID
Non stripped binaries
Redundant whitespace
Multiple languages(po)
Cache support
Project Activity High Very Low High

Contributions

Contributions to this repository are welcome.

You can help by creating a:

  • Bug report - memory leaks, unexpected behavior, crashes
  • Feature proposals - proposal to change/add/delete some features
  • Pull Requests - implementing a new feature yourself or fixing bugs, but you have to pay attention to code quality. If the change is bigger, then it's a good idea to open a new issue to discuss changes.
  • Documentation - There is an instruction which you can improve.

The code should be clean and well formatted (Clippy and fmt are required in each PR).

Name

Czkawka is a Polish word which means hiccup.

I chose this name because I wanted to hear people speaking other languages pronounce it.

This name is not as bad as it seems, because I was also thinking about using words like żółć, gżegżółka or żołądź, but I gave up on these ideas because they contained Polish characters, which would cause difficulty in searching for the project.

At the beginning of the program creation, if the response concerning the name was unanimously negative, I prepared myself for a possible change of the name of the program, and the opinions were extremely mixed.

License

Code is distributed under MIT license.

Icon is created by jannuary and licensed CC-BY-4.0.

Windows dark theme is used from AdMin repo with MIT license.

The program is completely free to use.

"Gratis to uczciwa cena" - "Free is a fair price"

Donations

If you are using the app, I would appreciate a donation for its further development, which can be done here.

Comments
  • Hang at the end of a scan

    Hang at the end of a scan

    With current HEAD I am seeing a hang after a multi-hour scan on two different machines (both Ubuntu 21.10). It gets to 100% (but the two numbers are not yet the same '494286/494336' for example). Even if I hit 'Stop', it never does. It is just sitting there using 3-4% CPU and never shows the list. If I stop it sooner (before it gets to 100%, it shows the found duplicates.

    If I do an 'lsof' on the process, there are no images open and an 'strace' shows a bunch of 'Resource temporarily unavailable' but it doesn't seem to be an image that is unavailable.

    Example strace output - recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{iov_base="5\30\4\0m\354\342\3,1\340\3\372\1\202\0\213\4\6\0n\354\342\3m\354\342\3*\0\0\0"..., iov_len=9432}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 9432 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, -1) = 1 ([{fd=3, revents=POLLIN}]) recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\241 \n\200,1\340\3\22\2\0\0`"\4\0\0\0\0\0.\212\246\377\22\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 64 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}]) read(4, "\1\0\0\0\0\0\0\0", 16) = 8 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{iov_base="5\30\4\0o\354\342\3,1\340\3\372\1\202\0\213\4\6\0p\354\342\3o\354\342\3*\0\0\0"..., iov_len=9432}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 9432 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, -1) = 1 ([{fd=3, revents=POLLIN}]) recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\241 \200,1\340\3\22\2\0\0d"\4\0\0\0\0\0\306\251\251\377\22\0\0\0\0\0\0\0"..., iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 64 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, -1) = 1 ([{fd=4, revents=POLLIN}]) read(4, "\1\0\0\0\0\0\0\0", 16) = 8 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, 0) = 0 (Timeout) poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{iov_base="5\30\4\0q\354\342\3,1\340\3\372\1\202\0\213\4\6\0r\354\342\3q\354\342\3*\0\0\0"..., iov_len=9432}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 9

    opened by jasontitus 18
  • Cannot symlink or hardlink: can only delete dupes

    Cannot symlink or hardlink: can only delete dupes

    Scanned 2 directories, clicked "select all except oldest", then clicked hardlink: nothing happened. Symlink didn't do anything either. Delete works, but I don't want to delete.

    opened by Rings4 14
  • Improve code quality.

    Improve code quality.

    Fix clippy lints -Wclippy::nursery, decrease verbose constructs in the code, and generally attempt to decrease the complexity of functions and structs.

    enhancement 
    opened by Caduser2020 13
  • Hanging near the end of the similar images scan

    Hanging near the end of the similar images scan

    Running from master (after 2.3.2), I am seeing a hang near the end of image processing. It hangs most of the way through and doesn't seem to be doing any processing. I was seeing the same issue with 2.3 and upgraded to HEAD to see if that resolved the issue.

    The lsof & strace reports no open images and seemingly an 'Resource temporarily unavailable' issue. Is there some way progress is lost when an issue pops up?

    Current stage - 100% All stages - 100% Hashing 448883/449109 image

    lsof -p 551982
    COMMAND      PID       USER   FD      TYPE             DEVICE SIZE/OFF     NODE NAME
    czkawka_g 551982 jasontitus  cwd       DIR              259,3     4096 83374985 /home/jasontitus/experiments/czkawka
    czkawka_g 551982 jasontitus  rtd       DIR              259,3     4096        2 /
    czkawka_g 551982 jasontitus  txt       REG              259,3  8763360  5639131 /home/jasontitus/experiments/czkawka/target/release/czkawka_gui (deleted)
    czkawka_g 551982 jasontitus  DEL       REG                0,1               145 /memfd:pulseaudio
    czkawka_g 551982 jasontitus  DEL       REG                0,1              3074 /memfd:pulseaudio
    czkawka_g 551982 jasontitus  DEL       REG                0,1              5272 /memfd:pulseaudio
    czkawka_g 551982 jasontitus  mem       REG              259,3   694408 54529730 /usr/lib/x86_64-linux-gnu/libvorbisenc.so.2.0.12
    czkawka_g 551982 jasontitus  mem       REG              259,3   247896 54532588 /usr/lib/x86_64-linux-gnu/libFLAC.so.8.3.0
    czkawka_g 551982 jasontitus  mem       REG              259,3   101416 54535737 /usr/lib/x86_64-linux-gnu/libnsl-2.32.so
    czkawka_g 551982 jasontitus  mem       REG              259,3    22368 54532709 /usr/lib/x86_64-linux-gnu/libasyncns.so.0.3.1
    czkawka_g 551982 jasontitus  mem       REG              259,3   499952 54533864 /usr/lib/x86_64-linux-gnu/libsndfile.so.1.0.28
    czkawka_g 551982 jasontitus  mem       REG              259,3   518496 55050902 /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-13.99.so
    czkawka_g 551982 jasontitus  mem       REG              259,3   343240 54529322 /usr/lib/x86_64-linux-gnu/libpulse.so.0.22.0
    czkawka_g 551982 jasontitus  mem       REG              259,3   340712 55707276 /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf
    czkawka_g 551982 jasontitus  mem       REG              259,3   333612 55708803 /usr/share/fonts/truetype/ubuntu/Ubuntu-B.ttf
    czkawka_g 551982 jasontitus  mem       REG              259,3  1952928 54526079 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.28
    czkawka_g 551982 jasontitus  mem       REG              259,3 28407424 54526081 /usr/lib/x86_64-linux-gnu/libicudata.so.67.1
    czkawka_g 551982 jasontitus  mem       REG              259,3  2001224 54527347 /usr/lib/x86_64-linux-gnu/libicuuc.so.67.1
    czkawka_g 551982 jasontitus  mem       REG              259,3 10119832 54528320 /usr/lib/x86_64-linux-gnu/librsvg-2.so.2.47.0
    czkawka_g 551982 jasontitus  mem       REG              259,3    80768 54527715 /usr/lib/x86_64-linux-gnu/libapparmor.so.1.7.0
    czkawka_g 551982 jasontitus  mem       REG              259,3    44848 54533919 /usr/lib/x86_64-linux-gnu/libwrap.so.0.7.6
    czkawka_g 551982 jasontitus  DEL       REG                0,1             98355 /SYSV00000000
    czkawka_g 551982 jasontitus  mem       REG              259,3  1754352 54527354 /usr/lib/x86_64-linux-gnu/libxml2.so.2.9.10
    czkawka_g 551982 jasontitus  mem       REG              259,3   150792 55181811 /usr/share/mime/mime.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3   497800 54527819 /usr/lib/x86_64-linux-gnu/libibus-1.0.so.5.0.523
    czkawka_g 551982 jasontitus  mem       REG              259,3    39104 55050260 /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
    czkawka_g 551982 jasontitus  mem       REG              259,3   353824 55708810 /usr/share/fonts/truetype/ubuntu/Ubuntu-R.ttf
    czkawka_g 551982 jasontitus  mem       REG              259,3    44064 97255516 /var/cache/fontconfig/73ab8bd7-ae47-44c4-91da-1d011a828c89-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    46128 97264026 /var/cache/fontconfig/702409fa-51a0-473e-a46c-8b7446140385-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    22960 97255481 /var/cache/fontconfig/012e7a83-636f-4282-9de3-3e5b5e6263d2-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     3520 97255551 /var/cache/fontconfig/eba5ec45-6807-4243-b4a0-e2561c9be4c1-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    87624 97258018 /var/cache/fontconfig/a1279070-b502-4ac3-b75c-67c97f396bfa-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     3200 97255534 /var/cache/fontconfig/b42b07cf-b399-44f2-9b76-db43cbdd6f72-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     4688 97255535 /var/cache/fontconfig/4b13f06a-d05f-4530-a513-8b6dff8dedd7-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1688 97255545 /var/cache/fontconfig/da1565d1-1692-4ffd-a8d6-70f55a209242-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     4792 97258014 /var/cache/fontconfig/ba7c7733-c2fe-4958-b1ef-e34b7180ccb8-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1792 97257895 /var/cache/fontconfig/58cfc00f-1117-4ef6-93f4-9a36e9085503-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     4224 97257892 /var/cache/fontconfig/87604215-dd77-481c-a823-428c33b8b45d-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     6560 97255543 /var/cache/fontconfig/d7a895e5-310f-4529-872f-68db77674011-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     4808 97255495 /var/cache/fontconfig/d3cc2086-37cf-4adb-b15f-4e8e866dc6ec-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3   241256 97267637 /var/cache/fontconfig/fd0d17ef-6fe5-4ffe-a987-8cb4fabf1370-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    16784 97257852 /var/cache/fontconfig/2acd3df5-0b0d-445a-92c2-09595fd02b07-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1864 97255496 /var/cache/fontconfig/2706ff19-0535-42b2-92fe-b892293d32d6-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1904 97257851 /var/cache/fontconfig/380e8ee4-bcd5-466e-a7e8-01f9d37b0cf3-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1968 97255538 /var/cache/fontconfig/d82192f9-dcbf-4314-a58f-38cde0e6ed5c-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1872 97255484 /var/cache/fontconfig/be251a26-066f-4667-84e2-f165d221dea3-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1784 97255546 /var/cache/fontconfig/05838aea-267b-424d-bb75-dfcc9bb0cb40-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1800 97257847 /var/cache/fontconfig/def29145-6e90-4b5b-af75-4d19d7878940-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1792 97257846 /var/cache/fontconfig/a5327250-68f6-473a-9c15-fd90745effd5-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1880 97255525 /var/cache/fontconfig/9a20f3de-0e41-4fed-9942-e94204135fd9-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     2128 97255507 /var/cache/fontconfig/574e2dea-5f8a-4ad1-ac94-d32d4c69944a-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1792 97255509 /var/cache/fontconfig/0b60badb-5d1f-402f-9ac1-eab8710017c1-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1800 97257844 /var/cache/fontconfig/59a46644-1341-4a3c-a60c-21a3544dfcff-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     2416 97264249 /var/cache/fontconfig/8fb6bc4f-a241-4cd3-9312-6847570d8a24-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    20264 97255486 /var/cache/fontconfig/eb2ce3ea-d505-43b5-843f-cb700b2f3549-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    24856 97255512 /var/cache/fontconfig/5f946e51-7b71-4cf7-bb32-fc88804633da-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    29512 97259004 /var/cache/fontconfig/3ffe5c15-953f-48c4-8acb-e12bd49a866a-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     3008 97255489 /var/cache/fontconfig/16b7e412-d836-4b56-bd1a-aa9852aca83b-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     3288 97255494 /var/cache/fontconfig/2a76cf8c-8748-420c-81c5-b8177cd03bee-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    22280 97257803 /var/cache/fontconfig/074a17ca-fa3b-4208-bc4d-e3192cc76348-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    77200 97255503 /var/cache/fontconfig/45f5ca17-9910-46ab-913a-69ff25568b45-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    16312 97257796 /var/cache/fontconfig/3ccfc32d-9479-4878-9061-07abb4440af5-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     3224 97255511 /var/cache/fontconfig/3b4fd1a7-259a-40af-b40e-a9455fd6e07a-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1968 97255547 /var/cache/fontconfig/e178efc9-da72-462d-9e3b-251d53947792-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1824 97257787 /var/cache/fontconfig/5dbf6d1d-a823-40e7-b52f-447ac6bfb017-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1872 97255526 /var/cache/fontconfig/9dbf1bec-d6d4-49a5-b207-497b61bb71b2-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     9208 97255482 /var/cache/fontconfig/02154c88-9cb2-4b45-938a-21dadf2c3f51-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    10128 97255510 /var/cache/fontconfig/5b5257c8-8532-4e3f-b20d-2107262190ad-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    47336 97255515 /var/cache/fontconfig/83d9aab9-957a-4cf5-8dfb-d49c145fd10c-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    17064 97255490 /var/cache/fontconfig/1983798c-1458-451f-8c77-8f2736a4abb9-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    55112 97255540 /var/cache/fontconfig/c1f20350-1f85-48b6-84c7-51db54991d32-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    62456 97255522 /var/cache/fontconfig/92f9b729-ef32-4dfb-ab91-c16667aba1a5-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    51576 55967872 /usr/share/icons/Adwaita/icon-theme.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3     5360 97255548 /var/cache/fontconfig/e8223115-f2e3-4885-ae94-707ae378cc38-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     3368 97255541 /var/cache/fontconfig/cffd670c-e3ee-4231-9f19-68245886a288-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     2360 97255501 /var/cache/fontconfig/41327b06-b564-4c12-952c-6bb78edd3753-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1728 97255532 /var/cache/fontconfig/67186d75-6cde-4c77-b006-c1ccd7d614c0-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     2144 97255497 /var/cache/fontconfig/b20986e5-3a66-475a-a83e-f609b5f50815-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1688 97255521 /var/cache/fontconfig/38e87b6e-889b-4b2d-9c04-0a08e332591b-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    11360 97257764 /var/cache/fontconfig/a6ee3b88-e624-456a-8fc6-86c6e583b0bd-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3   327184 55979030 /usr/share/icons/Humanity/icon-theme.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3    27002 55056418 /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3    34808 55050869 /usr/lib/x86_64-linux-gnu/libcanberra-0.30/libcanberra-pulse.so
    czkawka_g 551982 jasontitus  mem       REG              259,3    31000 55050451 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so
    czkawka_g 551982 jasontitus  mem       REG              259,3    14360 55051433 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so
    czkawka_g 551982 jasontitus  mem       REG              259,3    47064 54533507 /usr/lib/x86_64-linux-gnu/libogg.so.0.8.4
    czkawka_g 551982 jasontitus  mem       REG              259,3   182344 54531300 /usr/lib/x86_64-linux-gnu/libvorbis.so.0.4.9
    czkawka_g 551982 jasontitus  mem       REG              259,3     2120 97255506 /var/cache/fontconfig/925ddbd3-1027-4ab6-8401-658c11cd0e4b-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3     1696 97255500 /var/cache/fontconfig/5338f395-a59a-4c5f-ae16-23c3173f05f3-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    10336 97259007 /var/cache/fontconfig/42ca8757-a181-45b1-a036-4a0d2e0b2ec6-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3    22328 55968118 /usr/share/icons/hicolor/icon-theme.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3    39368 54533368 /usr/lib/x86_64-linux-gnu/libltdl.so.7.3.1
    czkawka_g 551982 jasontitus  mem       REG              259,3   100520 54533156 /usr/lib/x86_64-linux-gnu/libtdb.so.1.4.3
    czkawka_g 551982 jasontitus  mem       REG              259,3    71832 54526072 /usr/lib/x86_64-linux-gnu/libcanberra.so.0.2.5
    czkawka_g 551982 jasontitus  mem       REG              259,3     1872 97255530 /var/cache/fontconfig/0924959f-018b-4aa1-80b2-5428c0c2b823-le64.cache-7
    czkawka_g 551982 jasontitus  mem       REG              259,3      312 98828289 /var/lib/flatpak/exports/share/icons/hicolor/icon-theme.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3   116392 55967870 /usr/share/icons/Yaru/icon-theme.cache
    czkawka_g 551982 jasontitus  mem       REG              259,3   264424 55051898 /usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so
    czkawka_g 551982 jasontitus  mem       REG              259,3   236024 55051445 /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so
    czkawka_g 551982 jasontitus  mem       REG              259,3   974232 56493497 /usr/share/themes/Yaru/gtk-3.20/gtk.gresource
    czkawka_g 551982 jasontitus  mem       REG              259,3  5704352 54528216 /usr/lib/locale/locale-archive
    czkawka_g 551982 jasontitus  mem       REG              259,3   153824 54531431 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.29.0
    czkawka_g 551982 jasontitus  mem       REG              259,3  1168208 54531434 /usr/lib/x86_64-linux-gnu/libgcrypt.so.20.2.5
    czkawka_g 551982 jasontitus  mem       REG              259,3   129248 54533371 /usr/lib/x86_64-linux-gnu/liblz4.so.1.9.2
    czkawka_g 551982 jasontitus  mem       REG              259,3   938768 55184839 /usr/local/lib/libzstd.so.1.4.7
    czkawka_g 551982 jasontitus  mem       REG              259,3   162264 54529612 /usr/lib/x86_64-linux-gnu/liblzma.so.5.2.4
    czkawka_g 551982 jasontitus  mem       REG              259,3    96728 54532785 /usr/lib/x86_64-linux-gnu/libbsd.so.0.10.0
    czkawka_g 551982 jasontitus  mem       REG              259,3   137560 54527358 /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1.0.9
    czkawka_g 551982 jasontitus  mem       REG              259,3   730032 54526655 /usr/lib/x86_64-linux-gnu/libsystemd.so.0.29.0
    czkawka_g 551982 jasontitus  mem       REG              259,3   584392 54533561 /usr/lib/x86_64-linux-gnu/libpcre2-8.so.0.9.0
    czkawka_g 551982 jasontitus  mem       REG              259,3   334976 54529349 /usr/lib/x86_64-linux-gnu/libblkid.so.1.1.0
    czkawka_g 551982 jasontitus  mem       REG              259,3    26800 54532632 /usr/lib/x86_64-linux-gnu/libXdmcp.so.6.0.0
    czkawka_g 551982 jasontitus  mem       REG              259,3    18688 54532621 /usr/lib/x86_64-linux-gnu/libXau.so.6.0.0
    czkawka_g 551982 jasontitus  mem       REG              259,3    34888 54532877 /usr/lib/x86_64-linux-gnu/libdatrie.so.1.3.5
    czkawka_g 551982 jasontitus  mem       REG              259,3    51520 54527359 /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1.0.9
    czka
    
    --------------------
    Strace - 
    
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, -1) = 1 ([{fd=4, revents=POLLIN}])
    read(4, "\1\0\0\0\0\0\0\0", 16)         = 8
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, 0) = 0 (Timeout)
    poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
    writev(3, [{iov_base="5\30\4\0\247\275\202\2H\22\200\2\372\1\202\0\213\4\6\0\250\275\202\2\247\275\202\2*\0\0\0"..., iov_len=9432}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 9432
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, -1) = 1 ([{fd=3, revents=POLLIN}])
    recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\241 c\312H\22\200\2\7\2\0\0\244\276\4\0\0\0\0\0>\3454\332:\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, -1) = 1 ([{fd=3, revents=POLLIN}])
    recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\241 c\312H\22\200\2\10\2\0\0\244\276\4\0\0\0\0\0\0\0\0\0cQ\0\0\320\7\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, -1) = 1 ([{fd=4, revents=POLLIN}])
    read(4, "\1\0\0\0\0\0\0\0", 16)         = 8
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, 0) = 0 (Timeout)
    poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
    writev(3, [{iov_base="5\30\4\0\251\275\202\2H\22\200\2\372\1\202\0\213\4\6\0\252\275\202\2\251\275\202\2*\0\0\0"..., iov_len=9432}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 9432
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, -1) = 1 ([{fd=3, revents=POLLIN}])
    recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\241 y\312H\22\200\2\7\2\0\0\250\276\4\0\0\0\0\0\351\3457\332:\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=5, events=POLLIN}], 3, -1) = 1 ([{fd=3, revents=POLLIN}])
    recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\241 y\312H\22\200\2\10\2\0\0\250\276\4\0\0\0\0\0\0\0\0\0cQ\0\0\320\7\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    
    bug 
    opened by jasontitus 11
  • Add Flatpak support

    Add Flatpak support

    Related to https://github.com/qarmin/czkawka/issues/15

    I managed to make the GUI work, ~~but I don't think it deletes the files when I tell it to.~~ it works!

    This is just an initial flatpak. I'll try to get it to work if others are willing to help.

    If you want to test out the flatpak, make sure you have flatpak-builder installed, and run the following commands:

    git clone https://github.com/TheEvilSkeleton/czkawka
    cd czkawka/flatpak
    flatpak-builder --force-clean --install-deps-from=flathub --install build-dir com.github.qarmin.Czkawka.yaml
    

    P.S. if you have any suggestions, feel free to comment.

    enhancement 
    opened by TheEvilSkeleton 11
  • GUI segmentation fault

    GUI segmentation fault

    With the latest 3.2.0 version, the GUI is crashing with segmentation fault:

    • The crash happen very early in the startup process.
    • No issue with previous versions.
    • Czkawka is compiled under Alpine Linux.
    • It is run a Docker container (see https://github.com/jlesage/docker-czkawka).
    • The CLI is working fine.

    I'm wondering if you have any hint/idea on how to debug this crash.

    Thanks!

    opened by jlesage 10
  • Error while loading shared libraries: libheif.so.1

    Error while loading shared libraries: libheif.so.1

    I am trying to run linux_czkawka_cli on Linux, but I get the following error:

    ./linux_czkawka_cli: error while loading shared libraries: libheif.so.1: cannot open shared object file: No such file or directory
    

    Do you know what I need to run it?


    In the documentation there is written:

    You don't need to have any additional libraries for CLI Czkawka.

    But this seems to be false.

    And the funniest part is that I do not even need to run it on images! (I only need the "Empty Directories" functionality and probably the "Duplicate Finder" one)

    opened by daniporr 9
  • Music Duplicates - length field isn't populated if length is not selected as a matching option

    Music Duplicates - length field isn't populated if length is not selected as a matching option

    Running 4.1.0 on Windows Server 2k19. If I don't select length as a matching option, the length isn't shown in the results. It would be nice to have that as a means of comparison

    image

    opened by kaysond 9
  • Music Duplicates search gets stuck on

    Music Duplicates search gets stuck on "Reading Tags" phase

    I'm doing an Approximate Comparison search by Title, Artist, and Length. Each time, a few seconds after starting the search, it gets stuck at 98% through while reading the tags. I've let it run for upwards of 30 minutes with no change. The "Stop" button doesn't work, I have to end it through task manager. I've tried this several times, with the same result.

    opened by sleepwakecycle 8
  • Changed to StructOpt for CLI argument parser.

    Changed to StructOpt for CLI argument parser.

    I finished the task of this issue #2 with the crate StructOpt.

    Some changes from the previous parser

    • I used subcommands: $ czkawka --d is now $ czkawka dup and so on.
    • I changed some option short names: -E for excluded items instead of -k to be closer to the option name (you can change it back if you want to).
    • I removed the -f option because you can achieve the same result with the > operator. example: $ czkawka dup -d ~ > results.txt it will create the file results.txt and put stdout buffer in it. note: In order to print the messages into the console you can use the stderr with eprintln! macro.
    enhancement 
    opened by MeirKlemp 8
  • Custom selection doesn't do anything.

    Custom selection doesn't do anything.

    It's very fast and from what I can tell accurate even though the files were missing a lot of information; so good job!

    A couple of days ago I tried v3.3.1. and custom selection didn't do anything.
    I just tried out this version (4.0.0) and unfortunately it's still not working no matter what folder depth or setting I try.

    The file structure is:
    Drive X> Folder A> Multiple Folders>Multiple Folders>Files. And Drive Y> Folder A> Multiple Folders>Multiple Folders>Files

    The other selections (newest, smallest, etc.) work fine.

    I just tested it with: X:\Folder>Files Y:\Folder>Files Still doesn't select anything.

    How do I select all the files from one drive, or one folder with all the subfolders included?

    opened by Misaria 7
  • Add sort button

    Add sort button

    Fixes https://github.com/qarmin/czkawka/issues/866

    This will be only available when groups of results are visible, because in simple view, everything works

    enhancement 
    opened by qarmin 0
  • [feature request] enhanced grouping/selection of duplicates (GUI)

    [feature request] enhanced grouping/selection of duplicates (GUI)

    ok, now we have our list of duplicates grouped by file.

    Would be extremely practical if we could:

    • compare group of files that have duplicates in 2 or more directories (let's say A, B, C) and select all duplicates that exist in A/B/C without having to go through them one by one. A grid view (one file per each row, one directory per each column, one select button in the "cells", possibility to click on the row/column header to select all of that row's/column's items)
    • group duplicates by directory instead of same file: (dir1 would show all duplicates existing in dir1, dir2 same, and so far so on)

    I have multiple instances of same photos I shot due to backups, moving to new PC, etc. and going through all the files one by one with thousands of items requires a lot of time. I'm sure similar scenarios exist for other type of files.

    opened by Paruccone 0
  • [feature request] Pause/save scan

    [feature request] Pause/save scan

    Scans can sometimes take hours if not days: would be useful to be able to pause/resume them.

    Usage scenario:

    • network changes (laptop getting undocked, loosing network mapping to scanned folder because it switches from ethernet to WiFi)
    • temporary need to remove a USB hard drive to another machine and then connect it back.

    Even better if we can save the scan (while paused or when done) and resume/load them.

    opened by Paruccone 0
  • [feature request] managing collisions

    [feature request] managing collisions

    within my ARW (RAW photo) files, I have multiple HASH collisions (files tagged as same but not same at all).

    I'm now in the process to try CRC32 instead of blake3 to see what happens but would be useful to do a full content comparison when a collision happens (with an option to to do if file name is different).

    opened by Paruccone 1
  • Feature Request: Keyboard Shortcut - Compare View

    Feature Request: Keyboard Shortcut - Compare View

    It would be great if the left/right arrow would go previous/forward in groups. It would be great if the numbers 1 and 2 would check the box above the respective image.

    I'm happy to sponsor you $25 for this feature @qarmin

    opened by jjshoe 0
Releases(5.0.2)
Owner
Rafał Mikrut
Rafał Mikrut
Build your service-server fast, easy (and without hosting!)

service-io is a library to build servers that offering services with really little effort. Choose an input connector. Choose an output connector. Choo

Luis Enrique Muñoz Martín 34 Jan 4, 2023
A simple, fast, easy README generator

Welcome to Readme Generator A simple, fast, easy README generator. Never worry about READMEs again! What it does: Run the command in your project's di

Dhravya Shah 41 Nov 13, 2022
How to use libtor in a Rust app

libtor example Uses libtor crate to run a Tor daemon in process. This example spawns the Tor daemon using Tokio's spawn_blocking, and then spawns othe

Byron Hambly 1 Nov 28, 2021
Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion is a cross-platform App Dev ToolKit build on Rust . Fusion lets you create Beautiful and Fast apps for mobile and desktop platform.

Fusion 1 Oct 19, 2021
Easy to use Rust i18n library based on code generation

rosetta-i18n rosetta-i18n is an easy-to-use and opinionated Rust internationalization (i18n) library powered by code generation. rosetta_i18n::include

null 38 Dec 18, 2022
Manage self-hosted Supabase instances with an easy to use API & Web Portal (soon)

SupaManager A project by Harry Bairstow; Manage self-hosted Supabase instances with an easy to use API & Web Portal (soon) ⚠️ Note: The project is in

Harry Bairstow 11 Sep 15, 2022
Give folders & files keywords for easy lookup

Give folders & files keywords for easy lookup

char* 16 Dec 27, 2022
DIP20: A fungible token standard for the DFINITY Internet Computer.

DIP20 - Introduction Token standards are essential for the Internet Computer ecosystem, especially for the decentralized finance ecosystem (DeFi) syst

Psychedelic 48 Nov 5, 2022
Easily sync your clipboard between devices. This is a work in progress app.

Clipboard Sync Description Easily sync your clipboard between devices. This is a work in progress app. Stack Frontend: React Tauri isomorphic-ws TSX,

Steveplays 2 Mar 2, 2022
A stupidly simple and easy to self-host, personal server for file hosting on the web

Grasswave CDN A stupidly simple and easy to self-host, personal server for file hosting on the web. Written in Rust. Thanks, @Maciejowski, for the sty

Rafał Baran 3 Jan 3, 2023
Concrete is a simple programming language specifically crafted for creating highly scalable systems that are reliable, efficient, and easy to maintain.

The Concrete Programming Language Most ideas come from previous ideas - Alan C. Kay, The Early History Of Smalltalk In the realm of low-level programm

Lambdaclass 126 Nov 22, 2024
Simple comparison app for iRacing car setups.

CarTunes Simple comparison app for iRacing car setups. About Export a setup in the iRacing garage and CarTunes will let you compare it with other setu

Jay Oster 31 Jan 7, 2023
A simple web-app allowing you to batch archive groups of repositories from a given organization

ice-repos My goal here is to build a simple web-app allowing you to batch archive groups of repositories from a given organization, using Rust+Yew. As

Nic McPhee 6 Nov 5, 2022
A Rust framework to develop and use plugins within your project, without worrying about the low-level details.

VPlugin: A plugin framework for Rust. Website | Issues | Documentation VPlugin is a Rust framework to develop and use plugins on applications and libr

VPlugin 11 Dec 31, 2022
Automatically transform your Next.js Pages to use SuperJSON with SWC

?? NEXT SUPERJSON PLUGIN export default function Page({ date }) { return ( <div> Today is {date.toDateString()} </div> ) } // You c

⚡️Blitz 92 Jan 4, 2023
Clean up the lines of files in your code repository

lineman Clean up the lines of files in your code repository NOTE: While lineman does have tests in place to ensure it operates in a specific way, I st

Joseph T. Lyons 4 Nov 25, 2021
UnlimCloud provides unlimited cloud storage for your files, utilizing Telegram as the storage solution

UnlimCloud provides unlimited cloud storage for your files, utilizing Telegram as the storage solution. Simply log in using your Telegram ID, and you are good to go.

inulute 5 Nov 27, 2023
A flexible, simple to use, immutable, clone-efficient String replacement for Rust

A flexible, simple to use, immutable, clone-efficient String replacement for Rust. It unifies literals, inlined, and heap allocated strings into a single type.

Scott Meeuwsen 119 Dec 12, 2022
A simple to use rust package to generate or parse Twitter snowflake IDs,generate time sortable 64 bits unique ids for distributed systems

A simple to use rust package to generate or parse Twitter snowflake IDs,generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)

houseme 5 Oct 6, 2022