{"id":19813827,"url":"https://github.com/azer0s/pogmalloc","last_synced_at":"2025-08-21T01:14:38.412Z","repository":{"id":46265157,"uuid":"422991473","full_name":"Azer0s/pogmalloc","owner":"Azer0s","description":"A poggers malloc implementation","archived":false,"fork":false,"pushed_at":"2021-11-03T19:15:53.000Z","size":45,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-11T07:35:24.362Z","etag":null,"topics":["garbage-collection","garbage-collector","malloc-free","memory","memory-allocation","memory-allocator"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Azer0s.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":"2021-10-30T21:10:49.000Z","updated_at":"2022-06-12T19:26:45.000Z","dependencies_parsed_at":"2022-09-09T03:01:18.394Z","dependency_job_id":null,"html_url":"https://github.com/Azer0s/pogmalloc","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/Azer0s%2Fpogmalloc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azer0s%2Fpogmalloc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azer0s%2Fpogmalloc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Azer0s%2Fpogmalloc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Azer0s","download_url":"https://codeload.github.com/Azer0s/pogmalloc/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241162461,"owners_count":19920410,"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":["garbage-collection","garbage-collector","malloc-free","memory","memory-allocation","memory-allocator"],"created_at":"2024-11-12T09:37:25.675Z","updated_at":"2025-02-28T13:59:13.961Z","avatar_url":"https://github.com/Azer0s.png","language":"C","readme":"# pogmalloc(3)\n\nA poggers malloc implementation\n\n### Features\n\n* Static allocator\n* Real heap allocator (via `sbrk(2)`)\n* Builtin GC\n  * Can also mark static memory\n  * Can be enabled via define\n* Debug and trace logs\n  * Can be enabled via define\n* Works on ARM \u0026 x86_64\n* Works with GCC and clang \n\n### Limitations\n\n* Doesn't work on Windows\n* Kinda flimsy tbh (it's cool and all but don't use it in prod lmao)\n* GC doesn't work for packed structs or obfuscated pointers\n\n### Credits\n\nCredits to Tsoding and his amazing malloc series, this allocator was heavily inspired by his:\n* https://github.com/tsoding/memalloc\n* https://www.youtube.com/watch?v=sZ8GJ1TiMdk\u0026ab_channel=TsodingDaily\n\n#### Differences to memalloc\n\nWhile pogmalloc was inspired by Tsodings memalloc, there are a couple of key differences. memalloc focuses on garbage collection, while \npogmalloc aims to be as dynamic as possible, providing just a barebones malloc algorithm with specific memory model implementations built \non top (I originally built pogmalloc as a bare metal OS allocator for an OSDev project). Furthermore, pogmalloc can allocate memory on the actual heap (thus is not limited to static data) and, from what I've gathered\nin my quick (and truth be told, probably very inaccurate) testing, is faster than memalloc (but is also way less memory efficient than memalloc because \nchunks are only squashed as a method of last resort).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazer0s%2Fpogmalloc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazer0s%2Fpogmalloc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazer0s%2Fpogmalloc/lists"}