#StackBounty: #library #software-development #c++ #c #memory-management 'abstract' slab/arena memory management/allocation libr…

Bounty: 50

I’m interested in a library for managing allocation and de-allocation of memory within an abstract slab. That is, a library which doesn’t use malloc()/operator new/sbrk, but initially gets a contiguous range of addresses (maybe I’ve malloc()ed for it, or maybe it’s managing space on some remote device), but takes allocation and de-allocation requests and returns regions within the slab. The memory managing code does also not access the memory it manages; it doesn’t know what that memory is, so it can’t do things like write to it, or move parts of it elsewhere etc.

Requirements:

  • Gratis
  • Free and Open Source
  • Has some documentation
  • Note that the allocation mechanism cannot use the slab/arena to store any state (counters, pointers etc.); it can use the default allocator (e.g. malloc()/new) or some other mechanism for that.

Preferences:

  • C or C++ bindings
  • Written in modern C++
  • Supports prospective/time-based allocation (“I need X bytes between abstract time point t_1 and abstract time point t_2”; this allows for over-allocation over all time units, as long as there is no over-allocation at an individual time unit.)
  • Supports specifying alignment requirements
  • Supports resizing better than allocating a new segment and deallocating the old one
  • Actively maintained


Get this bounty!!!