{"id":16776312,"url":"https://github.com/darkarp/c-dictionary","last_synced_at":"2026-02-12T17:34:37.860Z","repository":{"id":41110173,"uuid":"502184411","full_name":"darkarp/c-dictionary","owner":"darkarp","description":"Dictionary implementation in C","archived":false,"fork":false,"pushed_at":"2022-08-22T16:30:22.000Z","size":66,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-14T03:01:55.075Z","etag":null,"topics":["c","dict","dictionary"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/darkarp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-10T21:23:26.000Z","updated_at":"2023-07-13T14:01:18.000Z","dependencies_parsed_at":"2022-07-16T05:30:49.488Z","dependency_job_id":null,"html_url":"https://github.com/darkarp/c-dictionary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/darkarp/c-dictionary","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkarp%2Fc-dictionary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkarp%2Fc-dictionary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkarp%2Fc-dictionary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkarp%2Fc-dictionary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darkarp","download_url":"https://codeload.github.com/darkarp/c-dictionary/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darkarp%2Fc-dictionary/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29374114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-12T08:51:36.827Z","status":"ssl_error","status_checked_at":"2026-02-12T08:51:26.849Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["c","dict","dictionary"],"created_at":"2024-10-13T07:09:31.280Z","updated_at":"2026-02-12T17:34:37.845Z","avatar_url":"https://github.com/darkarp.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple dictionary in C\n\n\u003cp align=\"center\"\u003e\t\n    \u003cimg src=\"https://img.shields.io/maintenance/yes/2022\" /\u003e\n    \u003ca href=\"https://github.com/darkarp/c-dictionary/commits/master\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/darkarp/c-dictionary\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/darkarp/c-dictionary/issues?q=is%3Aopen+is%3Aissue\"\u003e\n\t\u003cimg alt=\"GitHub issues\" src=\"https://img.shields.io/github/issues/darkarp/c-dictionary\" /\u003e\n\u003c/a\u003e\n\t\u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-Windows%20%7C%20MacOS%20%7C%20Linux-green\" /\u003e\n  \u003c/br\u003e\n  \u003ca href=\"https://discord.gg/beczNYP\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord\u0026longCache=true\u0026style=flat\" /\u003e\n  \u003c/a\u003e\n\u003ca href=\"https://twitch.tv/infosecguy\"\u003e\n\t\u003cimg alt=\"Twitch Status\" src=\"https://img.shields.io/twitch/status/infosecguy?style=flat\"\u003e\n\u003c/a\u003e\n\u003c/br\u003e\n\u003ca href=\"https://www.whitehathacking.tech\"\u003e\n\t\u003cimg alt=\"Twitch Status\" src=\"https://img.shields.io/badge/Website-visit-blue\"\u003e\n\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n## Table of Contents\n\n* [About the Project](#about-the-project)  \n* [Getting started](#getting-started)\n  * [Requirements](#requirements)\n  * [Usage](#usage)\n* [Statistics Module (*optional*)](#statistics-module-optional)\n* [TODO](#todo)\n* [Learn More](#learn-more)\n* [License](#license)\n---\n## About the project  \nThis is an implementation and usage example of a dictionary in C.  \nIt supports:\n  * Hashing\n  * Collisions (keys must be different)\n  * String-like keys\n  * Some utility functions as shown in `src/main.c`\n\nThis works both on Windows, Linux and MacOS\n\n---\n## Getting started\n### Requirements\n  * [Git](https://git-scm.com/downloads) for cloning the repo. Choose the correct installation for your OS.\n  * Windows\n    * [Visual Studio](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community\u0026channel=Release\u0026version=VS2022\u0026source=VSLandingPage\u0026cid=2030\u0026passive=false): Install Visual Studio with `Desktop development with C++` selected\n    * [GCC for windows](https://github.com/mstorsjo/llvm-mingw/releases) *(if don't have one already)*\n      * Download and unzip the correct file for your platform (probably `msvcrt-x86_64`)\n      * Add the `bin` directory in the unzipped folder to the `PATH` environment variable. [Here](https://stackoverflow.com/questions/44272416/how-to-add-a-folder-to-path-environment-variable-in-windows-10-with-screensho) is a tutorial on how to add items to `PATH`\n    * [Python 3.10.5](https://www.python.org/ftp/python/3.10.5/python-3.10.5-amd64.exe): Any Python version above `3.8` works but make sure you check the box `add to path` on the last screen of the installation\n  * Linux *(update the installation for your distro if different)*:\n      * `Build essentials` (should be installed by default) and `python3` dependencies\n        ```bash\n        apt update; apt install build-essential python3 python3-venv -y\n        ```\n\n### Usage\nEvery time you see a code block, you should run it in a:  \n  * `Terminal`: if you are on *Linux / MacOS*   \n  * `Developer: PowerShell for VS`: if you're on *Windows* (this is installed with Visual Studio, search for it)\n\n  1. ### Clone the repo and go into it:\n        ```\n        git clone https://github.com/darkarp/c-dictionary\n        cd c-dictionary\n        ```\n  2. Create python virtual environment and activate it\n        * Windows: \n            ```powershell \n            py -m venv venv\n            .\\venv\\Scripts\\activate\n            ```\n        * Linux / MacOS: \n            ```bash\n            python3 -m venv venv\n            source venv/bin/activate\n            ```\n\n  3. Generate Makefile\n        ```powershell\n        python makefile_gen.py\n        ```\n  4. Running the makefile\n        * Windows  \n            * If cleanup is required: `nmake clean`\n            * Then run this: `nmake all`\n        * Linux / MacOS\n            * If cleanup is required: `make clean`\n            * Then run this: `make all`  \n            * For a comprehensive help screen:\n                `make help`\n  5. Running the example `main.exe`\n        * Windows: `.\\bin\\main.exe`\n        * Linux / MacOS: `./bin/main`\n---\n## Statistics Module (*optional*)\nThis project comes with a python statistics script, located in: `statistics/collisions.py`. This is an educational script which computes the ratio of collisions for this dictionary for a particular predefined size of the dict. \n\nIt makes use of a C library for python. If you wish to run the `statistics/collisions.py`, the procedure is as follows:  \n\n  ### 1. Install the C module:\n```bash\npython statistics/setup.py install\n```\n  ### 2. Run `statistics/collisions.py`\n```bash\npython statistics/collisions.py\n```  \n---\n## TODO\n  * Better documentation\n  * Utility functions\n  * Better stability check\n  * Multiple hash support\n  * File \u0026 membuffer I/O for saving/loading (pickle)\n  * Testing\n  ---\n## Learn More\n\nFor access to a community full of aspiring computer security experts, ranging from the complete beginner to the seasoned veteran,\njoin our:\n  * Discord Server: [WhiteHat Hacking discord](https://discord.gg/beczNYP)\n  * Website: [Whitehat Hacking Website](https://www.whitehathacking.tech)\n\nIf you wish to contact me, you can do so via: `mario@whitehathacking.tech`  \n\n---\n## License\n\u003ca href=\"https://github.com/darkarp/c-dictionary/blob/master/LICENSE\"\u003e AGPL-3.0 \u003c/a\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkarp%2Fc-dictionary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarkarp%2Fc-dictionary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkarp%2Fc-dictionary/lists"}