• Stars
    star
    266
  • Rank 150,756 (Top 4 %)
  • Language
    C#
  • License
    GNU General Publi...
  • Created about 5 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Search files without indexing, but fast crawling

Drill

Nightly Financial Contributors on Open Collective GitHub issues GitHub forks GitHub stars GitHub license Twitter

Sorry for abandoning the project for so long but I was busy with life.

sad

Finally decided to drop D as a programming language (cmon guys it's dead) and moved to dotnet7

BUT I NEED YOUR HELP

I need people skilled in making a good UI, Avalonia, WinForms... I am not a UI gal.

THANK YOU 🙇

Requirements

Install dotnet SDK 7.0

Using the terminal

Windows / Chocolatey

choco install dotnet-7.0-sdk

Mac

brew install dotnet@7

How to run directly from source code

dotnet run --configuration Release --project CLI "search string"

Create portable folder

dotnet publish Drill.sln --maxCpuCount --configuration Release --self-contained --output DrillPortable

Todo

  • Thread safety
  • Sign executables
  • Configs/arguments for search
  • Set root folder / mountpoints
  • Clean docs
  • automatically generate docs
  • EXTENSIONS!!!
  • PKGBUILD
  • Windows Installer?
  • ncurses?
  • Flatpak
  • Threadpool or something similar
  • Snap
  • UI for Windows
  • exe icon
  • UI For Mac
  • .app
  • .dmg
  • UI for Linux
  • .AppImage
  • Regex lists
  • Docker
  • Shadow CI
  • Telegram Bot for new releases?
  • Release executables automatically
  • Pull request checker
  • Heuristics

Get notified for latest releases Telegram

What is this

I was stressed on Linux because I couldn't find the files I needed, file searchers based on system indexing (updatedb) are prone to breaking and hard to configure for the average user, so did an all nighter and started this.

Drill is a modern file searcher for Linux that tries to fix the old problem of slow searching and indexing. Nowadays even some SSDs are used for storage and every PC has nearly a minimum of 8GB of RAM and quad-core; knowing this it's time to design a future-proof file searcher that doesn't care about weak systems and uses the full multithreaded power in a clever way to find your files in the fastest possible way.

  • Heuristics: The first change was the algorithm, a lot of file searchers use depth-first algorithms, this is a very stupid choice and everyone that implemented it is a moron, why? You see, normal humans don't create nested folders too much and you will probably get lost inside "black hole folders" or artificial archives (created by software); a breadth-first algorithm that scans your hard disks by depth has a higher chance to find the files you need. Second change is excluding some obvious folders while crawling like Windows and node_modules, the average user doesn't care about .dlls and all the system files, and generally even devs too don't care, and if you need to find a system file you already know what you are doing and you should not use a UI tool.

  • Clever multithreading: The second change is clever multithreading, I've never seen a file searcher that starts a thread per disk and it's 2019. The limitation for file searchers is 99% of the time just the disk speed, not the CPU or RAM, then why everyone just scans the disks sequentially????

  • Use your goddamn RAM: The third change is caching everything, I don't care about your RAM, I will use even 8GB of your RAM if this provides me a faster way to find your files, unused RAM is wasted RAM, even truer the more time passes.

Donate

monero:8B5UK4znA6h67sfRK1eCjdUEry8BKseAF1qmKAVhAF5u1zeWiNFfgW9VaARLFh5VZKUQJC346K7wpH7aT17v62DC9igXw3y

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

More Repositories

1

UE4Logger

Advanced Print String plugin in C++ for Blueprint with Log levels
C++
19
star
2

CGLMath

Simple C library for OpenGL math aimed at readability
C
14
star
3

Match3

Game demo with SDL2, C++11 with as much as functional programming as possible
C++
10
star
4

Dhanos

Universal D binds for webview UI library running on Windows, Linux and OSX
C
8
star
5

Windows-Docker-Images

Collection of useful Windows Docker Images with Build Tools
Dockerfile
7
star
6

GTK-Windows

GTK3 binaries built for Windows daily
6
star
7

AStar

Fast C++17 A* pathfinding implementation
C++
6
star
8

Atari-Groovy-Posting

All the Atari Groovy memes
6
star
9

Linux-Usability-Problems

A curated list of all the problems Linux still has for the average user
4
star
10

Bingo

Bingo casino game demo with SDL2 and C++17
C++
4
star
11

HRT

HRT Wiki
HTML
3
star
12

draph

Dlang Facebook Graph API (under development)
D
3
star
13

LowOrbitWOLCannon

Wake On Lan Tool
C#
3
star
14

STEM-RSS

Programming and technologies news
3
star
15

Mandelbrot

Mandelbrot drawn in SDL2 with C11
C
2
star
16

TableAndChairs

C++ Archviz procedural geometry demo in Unreal Engine 4.22
C++
2
star
17

RecursivelyRotateMatrixMIPS

Utility to rotate recursively a matrix using MIPS RISC assembler
Assembly
1
star
18

KaminaOld2

IPFS-based decentralized imageboard
Python
1
star
19

DAppImage

1
star
20

GTK3-Windows-Binaries

Latest binaries built for Windows 10 using vcpkg
Batchfile
1
star
21

CMemoryTest

Benchmarks RAM speed
C
1
star
22

yatima1460.github.io

HTML
1
star
23

Tree-Comparer

Python
1
star
24

UEFireBase

this is a firebase basic plugin for unreal engine 4 mobile developer, both c++ and blueprint supported.
C++
1
star