memorypool: basic memory pool outside of haskell heap/GC

[ bsd3, library, system ] [ Propose Tags ]

See Readme

[Skip to Readme]
Change log
Dependencies base (>=4.7 && <4.11), containers (>= && <0.6), transformers (>= && <0.6), unsafe (==0.0.*), vector (>= && <0.13), void (>=0.7.1 && <0.8) [details]
License BSD-3-Clause
Copyright Copyright (C) 2016 Lennart Spitzner
Author Lennart Spitzner
Maintainer Lennart Spitzner <>
Revised Revision 1 made by lspitzner at Tue Aug 1 22:26:49 UTC 2017
Category System
Home page
Source repo head: git clone
Uploaded by lspitzner at Fri Aug 26 14:31:30 UTC 2016
Distributions NixOS:
Downloads 359 total (9 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]
Hackage Matrix CI




Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Readme for memorypool-

[back to package description]


A very basic memory pool imlemented in haskell.

The core idea is that the pool allocates large chunks of memory that are some power-of-two factor (e.g. 256) of some base size (e.g. 10k). The user of the pool allocates chunks of a power-of-two factor of the base size (i.e. 10k, 20k, 40k, ..). This scheme avoids fragmentation due to weirdly-sized holes, but keep in mind that no compaction takes place, so this kind of fragmentation must be worked around manually if necessary.

The pool internally allocates memory on the C heap, i.e. outside of any haskell/GC heap.

Uses a buddy allocation strategy internally.