{"id":19390183,"url":"https://github.com/thomas-chqt/libft","last_synced_at":"2026-04-18T10:32:34.724Z","repository":{"id":190108259,"uuid":"641278619","full_name":"Thomas-Chqt/Libft","owner":"Thomas-Chqt","description":"C library containing common utility functions","archived":false,"fork":false,"pushed_at":"2024-10-09T10:45:46.000Z","size":1894,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-03T20:55:14.152Z","etag":null,"topics":["42","algorithms","data-structures","library","utility"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Thomas-Chqt.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-16T06:34:21.000Z","updated_at":"2024-10-09T10:45:50.000Z","dependencies_parsed_at":"2025-01-07T09:35:02.596Z","dependency_job_id":"b6263ea7-abe4-4af4-b9d6-28ccba7d592c","html_url":"https://github.com/Thomas-Chqt/Libft","commit_stats":null,"previous_names":["thomas-chqt/libft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Thomas-Chqt/Libft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-Chqt%2FLibft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-Chqt%2FLibft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-Chqt%2FLibft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-Chqt%2FLibft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Thomas-Chqt","download_url":"https://codeload.github.com/Thomas-Chqt/Libft/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Thomas-Chqt%2FLibft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31965810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"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":["42","algorithms","data-structures","library","utility"],"created_at":"2024-11-10T10:19:19.016Z","updated_at":"2026-04-18T10:32:34.708Z","avatar_url":"https://github.com/Thomas-Chqt.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"Libft\n===\n\nLibft is a C library containing common utility functions, data structures, and algorithms used in all my C projects at 42 Tokyo.  \nIt is the first project of the common core curriculum.\n\nMost of the functions in this library mirror the standard C library, such as `ft_memcpy` or `ft_strlcpy`, but there are also original functions like `ft_split`.\n\nTo see the code that I pushed to the school repo, please look at the 42-Repo branch.\n\nThis branch consists of the original mandatory part of the Libft, plus many functions that I created during my journey at 42 Tokyo.  \nThe most important are all the data structure-related functions (starting with `arr_` for array, `lst_` for linked list, `dic_` for hash map, and `btr_` for binary tree), `ft_printf`, and `get_next_line`.\n\nLearning\n---\n\nWriting this library was a valuable experience in improving my interface design skills.  \nTo ensure these functions could be used across all my projects, All my data structures and algorithms are designed with void pointers to support any type, along with specializations for common types. Given the large number of functions in the library, I adhered to strict naming conventions. For example, `arr_qcksort` sorts a type-erased array using the quicksort algorithm, and `lst_qcksort` sorts a type-erased linked list.\n\nChallenges\n---\n\nThe mandatory part of the Libft was not very challenging since I had already implemented almost all the functions during the piscine.  \nHowever, designing data structures in plain C was a bit difficult, especially with respect to the coding norms of 42.\n\nBuild\n---\n\nThe Libft was not really meant to be used by anyone other than me, so it has never been tested on Windows or Linux. CMake is used to build the library.\n\n```sh\nmkdir build\ncd build\ncmake ..\ncmake --build .\n```\n\nTo link the library to an existing CMake project, just use `add_subdirectory` and `target_link_libraries`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomas-chqt%2Flibft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomas-chqt%2Flibft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomas-chqt%2Flibft/lists"}