{"id":26202463,"url":"https://github.com/f-corvaro/libft","last_synced_at":"2026-04-16T02:32:38.044Z","repository":{"id":221959965,"uuid":"755883615","full_name":"f-corvaro/LIBFT","owner":"f-corvaro","description":"\"A solid foundation for system programming in C.\"","archived":false,"fork":false,"pushed_at":"2025-04-10T08:26:59.000Z","size":8915,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T07:38:05.896Z","etag":null,"topics":["125","42project","42rome","42school","c","cprogramming","libft","makefile"],"latest_commit_sha":null,"homepage":"https://github.com/f-corvaro","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/f-corvaro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"github":"f-corvaro","ko_fi":"fcorvaro"}},"created_at":"2024-02-11T11:30:05.000Z","updated_at":"2025-08-05T16:41:34.000Z","dependencies_parsed_at":"2024-04-08T17:46:27.884Z","dependency_job_id":"f56f3ca5-3f42-432c-9c0c-28efe355027a","html_url":"https://github.com/f-corvaro/LIBFT","commit_stats":null,"previous_names":["f-corvaro/libft"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/f-corvaro/LIBFT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-corvaro%2FLIBFT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-corvaro%2FLIBFT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-corvaro%2FLIBFT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-corvaro%2FLIBFT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/f-corvaro","download_url":"https://codeload.github.com/f-corvaro/LIBFT/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/f-corvaro%2FLIBFT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31868522,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"online","status_checked_at":"2026-04-16T02:00:06.042Z","response_time":69,"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":["125","42project","42rome","42school","c","cprogramming","libft","makefile"],"created_at":"2025-03-12T03:37:21.947Z","updated_at":"2026-04-16T02:32:38.029Z","avatar_url":"https://github.com/f-corvaro.png","language":"C","funding_links":["https://github.com/sponsors/f-corvaro","https://ko-fi.com/fcorvaro"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\u003ca href=\"https://github.com/f-corvaro/LIBFT/tree/main\"\u003e\n\t\u003cimg src=\"https://github.com/f-corvaro/LIBFT/blob/main/.extra/libft.png\" alt=\"Libft\"\u003e\n  \u003c/a\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003cb\u003e\u003ci\u003e\"A solid foundation for system programming in C.\"\u003c/i\u003e\u003c/b\u003e\u003cbr\u003e\n\u003c/p\u003e\n\u003cp align=\"center\" style=\"text-decoration: none;\"\u003e\n    \u003ca href=\"https://github.com/f-corvaro/LIBFT\"\u003e\u003cimg alt=\"GitHub code size in bytes\" src=\"https://img.shields.io/github/languages/code-size/f-corvaro/LIBFT?color=blueviolet\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/f-corvaro/LIBFT\"\u003e\u003cimg alt=\"Code language count\" src=\"https://img.shields.io/github/languages/count/f-corvaro/LIBFT?color=yellow\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/f-corvaro/LIBFT\"\u003e\u003cimg alt=\"GitHub top language\" src=\"https://img.shields.io/github/languages/top/f-corvaro/LIBFT?color=blueviolet\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/f-corvaro/LIBFT\"\u003e\u003cimg alt=\"GitHub last commit\" src=\"https://img.shields.io/github/last-commit/f-corvaro/LIBFT?color=yellow\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003eIndex\u003c/h3\u003e\n\u003cp align=\"center\"\u003e\n \u003ca href=\"#introduction\"\u003eIntroduction\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#folder-structure\"\u003eFolder Structure\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#contents-overview\"\u003eContents Overview\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#building-the-library\"\u003eBuilding the Library\u003c/a\u003e\u003cbr\u003e\n \u0026nbsp;\u0026nbsp;\u003ca href=\"#visual-guide-to-running-tests\"\u003eVisual Guide to Running Tests\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#evaluation-process\"\u003eEvaluation Process\u003c/a\u003e\u003cbr\u003e\n \u0026nbsp;\u0026nbsp;\u003ca href=\"#pre-submission-testing\"\u003ePre-Submission Testing\u003c/a\u003e\u003cbr\u003e\n \u0026nbsp;\u0026nbsp;\u003ca href=\"#moulinette-feedback\"\u003eMoulinette Feedback\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#acknowledgments\"\u003eAcknowledgments\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#developed-skills\"\u003eDeveloped Skills\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#support-and-contributions\"\u003eSupport and Contributions\u003c/a\u003e\u003cbr\u003e\n \u003ca href=\"#author\"\u003eAuthor\u003c/a\u003e\u003cbr\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Introduction\n\n\u003cp align=\"justify\"\u003e\n\nThe journey at 42 Schools begins with this foundational project. It challenges students to reimplement certain standard C library functions, along with other utility functions, and compile them into a static library. This serves as a crucial resource for future projects. Adherence to the Norminette coding standards and passing the Moulinette tests are key aspects of this project, ensuring that both peers and automated systems will evaluate your work.\n\nExplore my complete static C library [here](https://github.com/f-corvaro/my_static_C_library).\n\nThis project demands a solid understanding of the C programming language, including data types, loops, conditionals, functions, and memory management. Students must also develop proficiency in debugging, testing, and documentation to ensure their code is reliable and understandable. Mastery of these skills is essential for tackling the complexities of software development and contributes significantly to the success in the Libft project and beyond.\n\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Folder Structure\n\n```\n.\n├── 00-libft\n│   ├── libft\n│   │   ├── ft_atoi.c\n│   │   ├── ft_bzero.c\n│   │   ├── ft_calloc.c\n│   │   ├── ft_isalnum.c\n│   │   ├── ft_isalpha.c\n│   │   ├── ft_isascii.c\n│   │   ├── ft_isdigit.c\n│   │   ├── ft_isprint.c\n│   │   ├── ft_itoa.c\n│   │   ├── ft_lstadd_back.c\n│   │   ├── ft_lstadd_front.c\n│   │   ├── ft_lstclear.c\n│   │   ├── ft_lstdelone.c\n│   │   ├── ft_lstiter.c\n│   │   ├── ft_lstlast.c\n│   │   ├── ft_lstmap.c\n│   │   ├── ft_lstnew.c\n│   │   ├── ft_lstsize.c\n│   │   ├── ft_memchr.c\n│   │   ├── ft_memcmp.c\n│   │   ├── ft_memcpy.c\n│   │   ├── ft_memmove.c\n│   │   ├── ft_memset.c\n│   │   ├── ft_putchar_fd.c\n│   │   ├── ft_putendl_fd.c\n│   │   ├── ft_putnbr_fd.c\n│   │   ├── ft_putstr_fd.c\n│   │   ├── ft_split.c\n│   │   ├── ft_strchr.c\n│   │   ├── ft_strdup.c\n│   │   ├── ft_striteri.c\n│   │   ├── ft_strjoin.c\n│   │   ├── ft_strlcat.c\n│   │   ├── ft_strlcpy.c\n│   │   ├── ft_strlen.c\n│   │   ├── ft_strmapi.c\n│   │   ├── ft_strncmp.c\n│   │   ├── ft_strnstr.c\n│   │   ├── ft_strrchr.c\n│   │   ├── ft_strtrim.c\n│   │   ├── ft_substr.c\n│   │   ├── ft_tolower.c\n│   │   ├── ft_toupper.c\n│   │   ├── libft.h\n│   │   └── Makefile\n```\n\n## Contents Overview\n\n\u003cp align=\"justify\"\u003e\n\nThis section is divided into four categories:\n\n1. **Libc Functions:** Standard C library functions reimplemented.\n2. **Additional Functions:** Useful functions for future projects.\n3. **Bonus Functions:** Functions specifically designed for linked list manipulation.\n4. **Other Components:** Includes the Makefile and libft.h header file.\n\nCompiling the library generates object `.o` files and the static library file `libft.a`.\n\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n| Libc Functions  | Additional Functions | Bonus Functions |  other Components |\n| ------------- | ------------- | ------------- |  ------------- |\n| [ft_atoi.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_atoi.c)| [ft_itoa.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_itoa.c)  | [ft_lstadd_back.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstadd_back.c)  | [libft.h](https://github.com/f-corvaro/LIBFT/blob/main/libft/libft.h) |\n| [ft_bzero.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_bzero.c) | [ft_putchar_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putchar_fd.c)  | [ft_lstadd_front.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstadd_front.c)  | [makefile](https://github.com/f-corvaro/LIBFT/blob/main/libft/Makefile)  |\n| [ft_calloc.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_calloc.c)  | [ft_putendl_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putendl_fd.c)  | [ft_lstclear.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstclear.c)  |\n| [ft_isalnum.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isalnum.c) | [ft_putnbr_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putnbr_fd.c)  | [ft_lstdelone.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstdelone.c)  |\n| [ft_isalpha.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isalpha.c)  | [ft_putstr_fd.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_putstr_fd.c)  | [ft_lstiter.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstiter.c)  |\n| [ft_isascii.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isascii.c)  | [ft_split.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_split.c)  | [ft_lstlast.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstlast.c)  |\n| [ft_isdigit.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isdigit.c)  | [ft_striteri.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_striteri.c)  | [ft_lstmap.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstmap.c)  |\n| [ft_isprint.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_isprint.c)  | [ft_strjoin.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strjoin.c)  | [ft_lstnew.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstnew.c)  |\n| [ft_memchr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memchr.c)  | [ft_strmapi.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strmapi.c)  | [ft_lstsize.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_lstsize.c)  |\n| [ft_memcmp.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memcmp.c)  | [ft_strtrim.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strtrim.c)  |\n| [ft_memcpy.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memcpy.c) | [ft_substr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_substr.c)  |\n| [ft_memmove.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memmove.c)  |\n| [ft_memset.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_memset.c) |\n| [ft_strchr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strchr.c)  |\n| [ft_strdup.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strdup.c)  |\n| [ft_strlcat.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strlcat.c)  |\n| [ft_strlcpy.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strlcpy.c)  |\n| [ft_strlen.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strlen.c)  |\n| [ft_strncmp.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strncmp.c)  |\n| [ft_strnstr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strnstr.c)  |\n| [ft_strrchr.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_strrchr.c)  |\n| [ft_tolower.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_tolower.c)  |\n| [ft_toupper.c](https://github.com/f-corvaro/LIBFT/blob/main/libft/ft_toupper.c)  |\n\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Building the Library\n\n\u003cp align=\"justify\"\u003e\n\nTo compile the library, utilize the following command:\n\n```bash\nmake\n```\n\nFor a detailed list of commands available within the `make` utility, execute:\n\n```bash\nmake info\n```\n\n### Visual Guide to Running Tests\n\n\u003cp align=\"center\"\u003e\n \u003ca href=\"https://github.com/f-corvaro/LIBFT\"\u003e\n  \u003cimg width=\"650\" src=\"https://github.com/f-corvaro/LIBFT/blob/main/.extra/make.gif\"\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Evaluation Process\n\n### Pre-Submission Testing\n\n\u003cp align=\"justify\"\u003e \n\nTo ensure your project is ready for submission and peer reviews, it's recommended to test it using the [Supreme Tester](https://github.com/FranFrau/Supreme-Tester-Libft) provided by [@FranFrau](https://github.com/FranFrau).\n\n\u003c/p\u003e\n\n### Moulinette Feedback\n\n\u003cp align=\"justify\"\u003e \n\nAfter submission, the Moulinette (an automated grading system) will evaluate your project. You can view the results and feedback here:\n\n\u003c/p\u003e\n\n \u003ca href=\"https://projects.intra.42.fr/projects/42cursus-libft/projects_users/3049229\"\u003e\n  \u003cimg align=\"center\" img src=\"https://github.com/f-corvaro/LIBFT/blob/main/.extra/moulinette_libft.png\"\u003e\n \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Acknowledgments\n\n\u003cp align=\"justify\"\u003e\n\n- **[@dieremy](https://github.com/dieremy)**: Helped with testing and resolving leaks in functions. Additionally, provided an introduction to the project, explaining various functions and theoretical aspects.\n- **[@MirkokriM](https://github.com/MirkokriM)**: Inspired the idea for the GIF.\n\n\u003c/p\u003e\n\u003cbr\u003e\n\n## Developed Skills\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://skillicons.dev\"\u003e\n    \u003cimg src=\"https://skillicons.dev/icons?i=git,c,vim,vscode\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\u003cbr\u003e\n\n## Support and Contributions\n\n\u003cp align=\"center\"\u003e\nIf you find this repository helpful, please consider starring it to show your support. Your support is greatly appreciated!\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://ko-fi.com/fcorvaro\"\u003e\u003cimg width=\"180\" img align=\"center\" src=\"https://github.com/f-corvaro/42.common_core/blob/main/.extra/support-me-ko-fi.svg\"\u003e\u003calt=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/sponsors/f-corvaro\"\u003e\u003cimg width=\"180\" img align=\"center\" src=\"https://github.com/f-corvaro/42.common_core/blob/main/.extra/support-me-github.svg\"\u003e\u003calt=\"\"\u003e\u003c/a\u003e\n\n\u003cbr\u003e\n\n## Author\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://profile.intra.42.fr/users/fcorvaro\"\u003e\u003cimg style=\"height:auto;\" src=\"https://avatars.githubusercontent.com/u/102758065?v=4\" width=\"100\" height=\"100\"alt=\"\"\u003e\u003c/a\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"mailto:fcorvaro@student.42roma.it\"\u003e\u003ckbd\u003eEmail\u003c/kbd\u003e\u003calt=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/f-corvaro\"\u003e\u003ckbd\u003eGithub\u003c/kbd\u003e\u003calt=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.linkedin.com/in/f-corvaro/\"\u003e\u003ckbd\u003eLinkedin\u003c/kbd\u003e\u003calt=\"\"\u003e\u003c/a\u003e\n\u003ca href=\"https://42born2code.slack.com/team/U050L8XAFLK\"\u003e\u003ckbd\u003eSlack\u003c/kbd\u003e\u003calt=\"\"\u003e\u003c/a\u003e\n\n\u003chr/\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff-corvaro%2Flibft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ff-corvaro%2Flibft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ff-corvaro%2Flibft/lists"}