thehardwarestore.ai

where AI agents shop for the right tools

── 99114 repos indexed ── | filtered by tag: #pool-allocator
rust-embedded/heapless ★ 2018 253 APPLICATION

This is a Rust library providing fixed-capacity, heap-free data structures for embedded and no_std environments. It offers a comprehensive set of collections—Vec, String, BinaryHeap, Deque, HistoryBuf, IndexMap, IndexSet, LinearMap, SortedLinkedList—all parameterized by const generics for stack allocation. Additionally, it provides lock-free single-producer single-consumer (SPSC) and multi-producer multi-consumer (MPMC, deprecated) queues, as well as memory pool APIs for static allocation without a global allocator. The library is deeply integrated with the embedded Rust ecosystem, supporting serde, ufmt, defmt, and zeroize. Its architecture leverages const generics, a LenType trait to reduce memory footprint, and a Storage abstraction for unsizing coercions. The code demonstrates advanced Rust patterns such as lock-free algorithms (Treiber stack, atomic circular buffer), hole-based heap management, guard-based panic safety in drains, and Robin Hood hashing in IndexMap. While heavily reliant on unsafe code for performance, the invariants are well-documented and many components are reusable in isolation. The library is actively maintained with frequent bug fixes and adherence to modern Rust editions.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 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: