For fixed size memory buffers, the first results are mattconte/tlsf (TLSF is a dynamic memory allocator designed for real-time systems, which differs from fixed-size pools but still provides bounded response times suitable for high-performance use), rust-embedded/heapless (This Rust library provides static, heapless data structures designed for embedded systems and memory-constrained environments, aligning well with your search for pre-allocated, zero-allocation components even though it focuses on data structures rather than pure allocators) and teslamotors/fixed-containers (This C++ library provides fixed-capacity data structures designed to avoid dynamic memory allocation, fitting the systems programming use case though lacking explicit concurrency primitives). foonathan/memory and openhft/chronicle-queue round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
Explore top open-source fixed-size memory buffer libraries for C and C++. Compare performance, features, and active repositories to pick the best fit.
Two-Level Segregated Fit memory allocator implementation.
TLSF is a dynamic memory allocator designed for real-time systems, which differs from fixed-size pools but still provides bounded response times suitable for high-performance use.
Heapless is an embedded Rust data structure library that provides statically allocated, fixed-capacity collections for memory-constrained systems. It implements a zero-allocation runtime model where all collection elements are stored inline within their own value structure, completely removing the need for operating system interaction, global allocators, or runtime heap allocation. Capacity is specified at compile time through generic type parameters, ensuring every collection has a fixed upper bound known before execution. The library implements core language traits to provide standard coll
This Rust library provides static, heapless data structures designed for embedded systems and memory-constrained environments, aligning well with your search for pre-allocated, zero-allocation components even though it focuses on data structures rather than pure allocators.
C++ Fixed Containers
This C++ library provides fixed-capacity data structures designed to avoid dynamic memory allocation, fitting the systems programming use case though lacking explicit concurrency primitives.
STL compatible C++ memory allocator library using a new RawAllocator concept that is similar to an Allocator but easier to use and write.
This repository provides a C++ memory allocator library that supports custom allocation strategies like pools and fixed-size blocks for systems programming, though it is a general-purpose allocator library rather than strictly a compile-time fixed-size buffer tool.
Chronicle Queue is a high-performance data handling system featuring off-heap message queues, memory-mapped file stores, and replicated message stores. It provides a binary compatible memory layout that enables different programming languages to share data without serialization overhead. The system utilizes a replicated message store to synchronize data across multiple nodes, ensuring high availability and instant failover. Its memory-mapped architecture supports deterministic replay from disk and low-latency data recording. The project implements off-heap memory management and zero-allocati
Chronicle Queue provides off-heap storage and zero-allocation features suited for low-latency Java applications, but it is an append-only message queue rather than a general-purpose fixed-size memory allocator or pool library.
The Disruptor is a lock-free inter-thread messaging library and high-performance event bus. It implements a concurrent ring buffer designed for high-concurrency and low-latency message sequencing. The project utilizes a specific messaging architecture to eliminate lock contention, enabling high-throughput event routing and the exchange of continuous event streams between threads. It ensures strict first-in-first-out ordering and immediate data visibility across processing threads. The library provides capabilities for lock-free data streaming, sequential data ordering, and sequence-based eve
The Disruptor is a high-performance ring buffer and event messaging library for inter-thread communication rather than a general-purpose fixed-size memory pool allocator for systems programming.
Zig is a low-level systems programming language designed for writing high-performance software that interacts directly with hardware. It focuses on the transformation of source code into machine binaries for the execution of low-level operations. The project is distinguished by its native support for cross-compilation, allowing binaries for various operating systems and CPU architectures to be built from a single host. It provides direct interoperability with the C language, enabling the import of headers and function calls without a foreign function interface. The language utilizes manual m
Zig is a low-level systems programming language that provides manual memory management primitives rather than a dedicated fixed-size memory pool library.
FLAnimatedImage is a high-performance rendering engine and library for playing animated GIF images on iOS. It functions as an animation engine and image memory manager designed to ensure smooth frame transitions and consistent playback timing across different device environments. The project focuses on maintaining consistent animation speed through variable frame delay support and optimizes rendering efficiency to sustain high frame rates on mobile devices. It includes a memory management system to prevent application crashes and performance degradation during the playback of large or numerou
This repository is an iOS animation and image rendering engine rather than a general-purpose systems programming memory pool or fixed-size buffer library.
rpi4-osdev is a project for bare metal operating system development targeting the Raspberry Pi 4. It focuses on creating a custom operating system that runs directly on the hardware without an underlying kernel or abstraction layer. The project provides a codebase and instructional guide for developing a low-level system from scratch. This process involves transitioning from early boot code to kernel execution on the ARM64 architecture. The technical scope covers embedded system bootstrapping and low-level hardware interfacing. This includes managing memory-mapped I/O, physical address mappi
This repository is a bare-metal operating system development project for the Raspberry Pi 4 rather than a reusable low-level memory allocation or buffer pool library.
Bigcache is a thread-safe, in-memory key-value store for Go designed to minimize garbage collection pauses. It functions as a memory-optimized cache capable of storing gigabytes of data while maintaining low latency during high-volume operations. The system avoids garbage collection overhead by managing memory through large byte arrays and manual allocation. It utilizes a circular-buffer layout to reuse space and lock-striped sharding to reduce contention during concurrent read and write access. The project provides capabilities for high-volume in-memory caching and low-latency data retrieva
Bigcache is an in-memory key-value cache designed to minimize garbage collection pauses in Go, which makes it a neighbouring caching solution rather than a low-level fixed-size memory allocator library for systems programming.
ConcurrentQueue is a header-only C++ template library that provides a lock-free data structure for multi-producer multi-consumer thread communication. It functions as a synchronization primitive designed to coordinate data flow between concurrent execution units using atomic operations rather than traditional mutex locking. The library distinguishes itself through a design that minimizes contention and synchronization overhead. It utilizes sub-queue token mapping to distribute workloads across partitioned internal queues and supports bulk operations to transfer multiple data elements in singl
ConcurrentQueue is a lock-free queue library rather than a general-purpose fixed-size memory pool, making it a neighbouring concurrency building block rather than the specific allocator requested.
This project is an educational implementation of a relational database engine written in C. It functions as a SQLite clone, demonstrating the internal mechanics of a database system through a C-based systems project that focuses on manual memory management and file I/O. The engine is distinguished by its use of a bytecode virtual machine, which executes database operations by compiling SQL statements into low-level instructions. It utilizes a B-tree database engine to organize records in a balanced tree structure, ensuring efficient insertion, search, and range scanning. The system covers co
This project is an educational relational database implementation rather than a standalone memory pool library, making it the wrong category for your search.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| mattconte/tlsf | 1.6K | C | — | |
| rust-embedded/heapless | 2K | Rust | Apache-2.0 | |
| teslamotors/fixed-containers |
| 447 |
| C++ |
| MIT |
| foonathan/memory | 1.6K | C++ | Zlib |
| openhft/chronicle-queue | 3.7K | Java | apache-2.0 |
| lmax-exchange/disruptor | 18.4K | Java | Apache-2.0 |
| zig-lang/zig | 43.2K | Zig | MIT |
| flipboard/flanimatedimage | 8K | Objective-C | MIT |
| babbleberry/rpi4-osdev | 3.8K | C | CC0-1.0 |
| allegro/bigcache | 8.1K | Go | Apache-2.0 |