{"id":16209307,"url":"https://github.com/gilzoide/c-allocators","last_synced_at":"2025-10-28T23:31:58.804Z","repository":{"id":70590141,"uuid":"200508803","full_name":"gilzoide/c-allocators","owner":"gilzoide","description":"A collection of public domain single-file custom allocators for C/C++","archived":false,"fork":false,"pushed_at":"2021-02-18T19:38:31.000Z","size":42,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-21T11:10:03.136Z","etag":null,"topics":["allocator","header-only","single-file","single-header","stack","stack-allocator"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gilzoide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"gilzoide","tidelift":null,"community_bridge":null,"liberapay":"gilzoide","issuehunt":null,"otechie":null,"custom":["https://www.buymeacoffee.com/gilzoide"]}},"created_at":"2019-08-04T15:22:14.000Z","updated_at":"2024-11-25T14:59:03.000Z","dependencies_parsed_at":"2023-06-09T21:45:13.719Z","dependency_job_id":null,"html_url":"https://github.com/gilzoide/c-allocators","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilzoide%2Fc-allocators","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilzoide%2Fc-allocators/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilzoide%2Fc-allocators/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gilzoide%2Fc-allocators/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gilzoide","download_url":"https://codeload.github.com/gilzoide/c-allocators/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238741583,"owners_count":19522802,"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":["allocator","header-only","single-file","single-header","stack","stack-allocator"],"created_at":"2024-10-10T10:29:07.828Z","updated_at":"2025-10-28T23:31:53.498Z","avatar_url":"https://github.com/gilzoide.png","language":"C","funding_links":["https://ko-fi.com/gilzoide","https://liberapay.com/gilzoide","https://www.buymeacoffee.com/gilzoide"],"categories":[],"sub_categories":[],"readme":"# c-allocators\n[![Build Status](https://travis-ci.org/gilzoide/c-allocators.svg?branch=master)](https://travis-ci.org/gilzoide/c-allocators)\n\nA collection of public domain single-file custom allocators for C/C++.\n\n\n## Using\nCopy the desired source file to your project, include it wherever necessary and\nadd a `#define \u003cALLOCATOR_NAME\u003e_IMPLEMENTATION` before including it in exactly\n**one** C/C++ file to create the implementation.\n\n\n## [stack_allocator.h](stack_allocator.h)\nA Stack (Bump) Allocator implementation, maintaining a memory buffer and the current allocation marker.\n\nAllocation markers can be used to free allocator up to some point, instead of clearing the entire stack.\nIn particular, when allocating elements of a single type, this becomes a generic stack implementation.\n\nThere are typed macros for functions that expect `size` values, to help in readability.\nThere are also `FOREACH` macros for iterating stack in allocation order or reversed allocation order,\nassuming that all values are of the same type.\n\n\n## [double_stack_allocator.h](double_stack_allocator.h)\nA Double Ended Stack (Bump) Allocator implementation, maintaining a memory buffer and current allocation\nmarkers for both ends.\n\nAllocation markers can be used to free allocator up to some point, instead of clearing the entire stack\non either end.\nIn particular, when allocating elements of a single type, this becomes a generic double ended stack\nimplementation, possibly with different types for each side.\n\nThere are typed macros for functions that expect `size` values, to help in readability.\nThere are also `FOREACH` macros for iterating stack in allocation order or reversed allocation order,\nassuming that all values are of the same type.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgilzoide%2Fc-allocators","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgilzoide%2Fc-allocators","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgilzoide%2Fc-allocators/lists"}