Skip to content

Arena allocator for Deno/TypeScript with persistent unique keys via generational indices

License

Notifications You must be signed in to change notification settings

mmstick/deno-slotmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TypeScript SlotMap for Deno

An arena allocator with persistent unique keys via generational indices. This type of allocator is perfect for constructing complex graphs, or even an entity-component system.

A SlotMap is a vector where each element is a reusable slot. Slots are considered to be vacant when the generation of that slot is odd-numbered. Components added to the map increment the generation, and the generation is stored in the returned key along with the indice of the slot. When accessing a slot via the key, the generation of the key and slot is compared to determine if the key is stale.

Effectively identical to a slab, with similar performance to accessing an element in an array via its indice. There is a version check to compare if the key is valid for the component it is fetching.

Examples

Reference

Based on the excellent work in the Rust implementation which this is based on: orlp/slotmap

About

Arena allocator for Deno/TypeScript with persistent unique keys via generational indices

Resources

License

Stars

Watchers

Forks

Packages

No packages published