[ANN] ManualMemory.jl

ManualMemory.jl makes it easy to lay out complex data-structures within a single memory region. Data-structures built using this library:

  • are relocatable - internal pointers are converted to offsets, so the entire memory region can be moved to/from disk or sent over the network without pointer patching
  • require no deserialization - they can be directly read/written without first copying the data into a Julia-native data-structure
  • require no heap allocation - field access is just pointer arithmetic and every field read/write returns an isbits type which can stored on the stack

This makes them ideal for implementing out-of-core data-structures or for DMA to co-processors.

15 Likes