{"id":22108473,"url":"https://github.com/julesgrc0/ffs","last_synced_at":"2025-09-19T17:38:24.496Z","repository":{"id":186730504,"uuid":"658443645","full_name":"julesgrc0/FFS","owner":"julesgrc0","description":"FFS (FastFileSearch) python extension and C++ library, for searching files using different algorithms","archived":false,"fork":false,"pushed_at":"2023-06-25T19:00:45.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-29T09:48:36.408Z","etag":null,"topics":["dfs-search","file-search","file-search-engine","file-searcher","files","python-extension"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/julesgrc0.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-06-25T18:55:56.000Z","updated_at":"2024-01-08T19:21:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"e9c4902c-102e-4555-bf9b-fc5cab5783f3","html_url":"https://github.com/julesgrc0/FFS","commit_stats":null,"previous_names":["julesgrc0/ffs"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julesgrc0%2FFFS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julesgrc0%2FFFS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julesgrc0%2FFFS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/julesgrc0%2FFFS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/julesgrc0","download_url":"https://codeload.github.com/julesgrc0/FFS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245206458,"owners_count":20577578,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dfs-search","file-search","file-search-engine","file-searcher","files","python-extension"],"created_at":"2024-12-01T09:15:49.652Z","updated_at":"2025-09-19T17:38:19.449Z","avatar_url":"https://github.com/julesgrc0.png","language":"C++","readme":"# FFS (Fast File Search)\n\n## Building Solution C/C++\n\n\u003e Install brotli using vcpkg\n\n```cmd\nvcpkg install brotli:x64-windows brotli:x86-windows\n```\n\n\u003e Informations\n\n- C++20\n- main.cpp is the test file\n- file structure\n  - cache\n  - index\n  - tree\n  - lienar\n  - dfs\n\n## Building Python Extension\n\n\u003e if you don't have VSCode\n\n```cmd\npython setup.py build\n```\n\n\u003e else\n\nPress CTRL+MAJ+B to run the build command.\n\n## How it works\n\n### Linear Search\n\n\u003e Linear search consists of reading folders recursively until there are no more files.\n\u003e The parallel mode makes it possible to carry out research in several thread simulator. The child folders of the input folder (root) are distributed in threads according to the number of cores available on the processor.\n\n### DFS (Depth First Search)\n\n\u003e Uses the Depth First Search algorithm to search through the file. the parallel version does the same thing as for the linear search.\n\n### Tree\n\n\u003e Created a folder and file tree. the tree is then compressed with brotli and saved in a cache file. The cache file can then be read to be able to search quickly.\n\n### Indexer\n\n\u003e Indexing it creates a hash table that keeps all files and folders. the hash table is then compressed and saved in a cache file. the cache file can then be read to perform quick searches.\n\n### Average speed for the same search\n\n| Methods           | Average Speed |\n| ----------------- | :-----------: |\n| DFS               |   2s 500ms    |\n| Linear            |   2s 450ms    |\n| DFS (Parallel)    |   2s 100ms    |\n| Linear (Parallel) |    2s 50ms    |\n| Tree (cache)      |    200 ms     |\n| Index (cache)     |     15 ms     |\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulesgrc0%2Fffs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulesgrc0%2Fffs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulesgrc0%2Fffs/lists"}