| Basic Allocation | The basic allocation interface |
| Extended Functions | Extended functionality |
| Aligned Allocation | Allocating aligned memory blocks |
| Heap Allocation | First-class heaps that can be destroyed in one go |
| Zero initialized re-allocation | The zero-initialized re-allocations are only valid on memory that was originally allocated with zero initialization too |
| Typed Macros | Typed allocation macros |
| Heap Introspection | Inspect the heap at runtime |
| Runtime Options | Set runtime behavior |
| Posix | mi_ prefixed implementations of various Posix, Unix, and C++ allocation functions |
| C++ wrappers | mi_ prefixed implementations of various allocation functions that use C++ semantics on out-of-memory, generally calling std::get_new_handler and raising a std::bad_alloc exception on failure |