{"id":20226403,"url":"https://github.com/nueluzoma/asynchronous-file-search-server","last_synced_at":"2026-03-05T03:31:58.687Z","repository":{"id":246305646,"uuid":"811602436","full_name":"NuelUzoma/asynchronous-file-search-server","owner":"NuelUzoma","description":"This project implements an asynchronous Python server designed to handle concurrent file search requests efficiently, and also supports multiple file search algorithms.","archived":false,"fork":false,"pushed_at":"2024-06-27T22:56:38.000Z","size":3100,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-22T04:44:21.097Z","etag":null,"topics":["asyncio","linux","pytest","python3","ssl"],"latest_commit_sha":null,"homepage":"","language":"Python","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/NuelUzoma.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-06T23:37:20.000Z","updated_at":"2024-08-25T18:11:18.000Z","dependencies_parsed_at":"2025-01-13T23:31:45.445Z","dependency_job_id":"3c276147-0335-4e28-bcee-97b60d5fb4b9","html_url":"https://github.com/NuelUzoma/asynchronous-file-search-server","commit_stats":null,"previous_names":["nueluzoma/asynchronous-file-search-server"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NuelUzoma/asynchronous-file-search-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuelUzoma%2Fasynchronous-file-search-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuelUzoma%2Fasynchronous-file-search-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuelUzoma%2Fasynchronous-file-search-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuelUzoma%2Fasynchronous-file-search-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NuelUzoma","download_url":"https://codeload.github.com/NuelUzoma/asynchronous-file-search-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NuelUzoma%2Fasynchronous-file-search-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30108627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T01:39:18.192Z","status":"online","status_checked_at":"2026-03-05T02:00:06.710Z","response_time":93,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["asyncio","linux","pytest","python3","ssl"],"created_at":"2024-11-14T07:18:02.675Z","updated_at":"2026-03-05T03:31:58.651Z","avatar_url":"https://github.com/NuelUzoma.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Asynchronous File Search Server\n\n## Project Scope\n\nThis project implements an asynchronous Python server designed to handle concurrent file search requests efficiently. The server supports multiple search algorithms, allowing performance comparison across various file sizes and query rates.\n\n## Features\n\n- Asynchronous server to handle multiple clients concurrently.\n- Support for different file search algorithms:\n  - Asynchronous aiofiles search\n  - Linear Search (Standard I/O)\n  - Jump Search Algorithm\n  - Binary Search Algorithm\n  - Exponential Search Algorithm\n  - Knuth-Morris-Pratt (KMP) Algorithm\n  - Multi-threaded search (concurrent.futures)\n- SSL/TLS support for secure connections.\n- Detailed logging and error handling.\n- Performance testing script to benchmark search algorithms.\n\n## Prerequisites\n\n- Python 3.8+\n- Virtualenv\n- Linux environment\n\n## Setup Instructions\n\n### 1. Clone or Unzip the Repository\n\n```bash\ngit clone \u003crepository_url\u003e\ncd asynchronous-file-search-server\n```\n\n### 2. Create and Activate Virtual Environment\n```bash\npython3 -m venv venv\nsource venv/bin/activate\n```\n\n### 3. Install Dependencies\n```bash\npip install -r requirements.txt\n```\n\n### 4. Configure Environment Variables\nCreate a .env file in the root directory with the following content:\n\n```makefile\nHOST=127.0.0.1\nPORT=8888\nREREAD_ON_QUERY=True\n```\n\n### 5. Configure SSL (Optional)\nIf you want to enable SSL, update the config/config.cfg file:\n\n```bash\nlinuxpath=/path/to/200k.txt\nuse_ssl=true\ncertfile=path/to/certfile.pem\nkeyfile=path/to/keyfile.pem\n```\n\n### 6. Configure Systemd Service\nCreate a systemd service file at /etc/systemd/system/async_server.service with the following content:\n\n```ini\n[Unit]\nDescription=Async Python Server\nAfter=network.target\n\n[Service]\nType=simple\nUser=\u003cyour_username\u003e\nWorkingDirectory=/path/to/asynchronous-file-search-server\nExecStart=/path/to/venv/bin/python3 /path/to/asynchronous-file-search-server/async_server.py\nRestart=always\nRestartSec=15\n\n[Install]\nWantedBy=multi-user.target\n```\n\nReplace \u003cyour_username\u003e with your Linux username and /path/to/async-file-search-server with the full path to the project directory.\n\n### 7. Enable and Start the Service\n```bash\nsudo systemctl daemon-reload\nsudo systemctl enable async_server.service\nsudo systemctl start async_server.service\n```\n\n### 8. Check Service Status\n```bash\nsudo systemctl status async_server.service\n```\n\n## Running Performance Tests\n\n### 1. Configure Performance Test Environment\nUpdate the performance_test.py script with appropriate file paths and queries.\n\n### 2. Run Performance Tests\n```bash\npython performance_test.py\n```\n\n### 3. Analyze Performance Results\nCollect and analyze the results generated by the performance tests to compare the execution times of different search algorithms.\n\n## Running Unit Tests\n\n### 1. Install Test Dependencies\n```bash\npip install -r requirements-test.txt\n```\n\n### 2. Run Tests\n```bash\npytest tests/\n```\n\n## Logging Configuration\nThe logging configuration is set up in config/logging_config.py. Adjust the logging settings as needed for your environment.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnueluzoma%2Fasynchronous-file-search-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnueluzoma%2Fasynchronous-file-search-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnueluzoma%2Fasynchronous-file-search-server/lists"}