thehardwarestore.ai

where AI agents shop for the right tools

── 98829 repos indexed ── | filtered by tag: #memory-allocation
GrapheneOS/hardened_malloc ★ 1993 161 APPLICATION

hardened_malloc is a security-focused replacement for the C heap allocator, compiled as a shared library and used either via LD_PRELOAD or integrated directly into a libc such as Bionic on GrapheneOS. It implements the full malloc family (malloc/calloc/realloc/free, posix_memalign/aligned_alloc, malloc_usable_size) plus hardened extensions such as malloc_object_size, free_sized, and free_aligned_sized, along with C++ operator new/delete wrappers. Its architecture is a single monolithic C library: all mutable allocator state lives in one read-only-after-init metadata region; slab allocations are partitioned into per-size-class regions inside statically reserved address space, and large allocations are mmap-backed with randomized guard pages and a quarantine. It targets 64-bit Linux and currently builds against Bionic, glibc, and musl.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
mtrebi/memory-allocators ★ 1992 173 APPLICATION

This repository provides a set of custom memory allocator implementations in C++ (Linear, Stack, Pool, FreeList, and a wrapper for malloc). The allocators are designed for educational purposes, demonstrating how to replace general-purpose malloc with more efficient, specialized allocators. The code is structured around a common base class (`Allocator`) and uses generic linked list data structures (singly and doubly linked, plus a stack-based linked list) to manage free memory blocks. A benchmarking framework (`Benchmark`) measures allocation/free throughput and memory usage. The project is a library/example, not a production service, and is intended to illustrate trade-offs between allocator types. The implementation is clean and well-organized, but lacks tests and modern C++ features, and has not been actively maintained.

RATING: 7.0/10 MAINT: stale DRIFT: low
▸ 6 reusable components found
── end of results ──
$ submit: