Skip to content

Repository files navigation

FastMap

An simple alternative to 2D arrays, with comparative performance.

Benefits:

  • Memory Efficient

    • Built on a 1d array; Uses a single contiguous block of memory
    • Fewer object allocations = less garbage collection overhead
    • Better memory layout for very large maps
  • Cleaner API and Type Safety

    • Single generic type: FastMap<T> vs T[][]
    • No need to manage nested array initialization
    • Consistent bounds checking across all operations (with safe Get/Set methods)

Usage:

Let's be honest: If you're just storing simple data and don't need safety guarantees, a 2D array is simpler.

FastMap is best used for:

  • Game dev (tile maps, grids where safety + performance matter)
  • Image processing (pixel buffers)
  • Large grid simulations
  • Other cases where you want built-in bounds checking without manual if statements

How to use:

npm install "@speakingsoftware/fastmap"

import{FastMap}from'@speakingsoftware/fastmap';interfaceRGB{r: number;g: number;b: number;}constimage=newFastMap<RGB>(100,100);// Draw a simple gradientfor(lety=0;y<100;y++){for(letx=0;x<100;x++){image.Set(x,y,{r: Math.floor(255*(x/100)),g: Math.floor(255*(y/100)),b: 128});}}

Inspired by the CImage class in Vladimir Kovalevsky's book "Modern Algorithms for Image Processing"

About

A simple 2D map that is optimized for speed.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Used by

Contributors

Languages