faststack

Dynamically resizable data structure optimized for fast iteration.

Pure Nim score 15/100 · tests present · no docs generated

Summary

Latest Version 1.0.0
License MIT
CI Status Failing
Downloads 0
Last Indexed 2026-07-24 13:04

Tags

Authors

  • Vladar4

Installation

nimble install faststack
choosenim install faststack
git clone https://github.com/Vladar4/FastStack

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
faststack - - - - - - -

Dependencies

Package Version Optional
nim >= 0.14.3 No

Source

Repository https://github.com/Vladar4/FastStack
Homepage https://github.com/Vladar4/FastStack
Registry Source nimble_official

README

FastStack

FastStack is dynamically resizable data structure optimized for fast iteration over the large arrays of similar elements avoiding memory fragmentation (e.g., update and rendering cycles of a game scene).

Tools

bench_int - Benchmark with int elements (low memory fragmentation case)

bench_ptr - Benchmark with ptr elements (high memory fragmentation case)

(using nimbench)

test - Unit testing suite (using unittest)

Benchmark (int)

type
  Elem = ref object of RootObj
    data: int

Comparing to seq and DoublyLinkedList on i5-2500K @ 4000MHz:

============================================================================
GlobalBenchmark                                 relative  time/iter  iters/s
============================================================================
GlobalBenchmark                                            249.31ps    4.01G
============================================================================
bench_int.nim                                   relative  time/iter  iters/s
============================================================================
Sequence                                                   108.55us    9.21K
List                                                       545.62us    1.83K
FastStack                                                  115.65us    8.65K
  • Seq: 100.00%
  • List: 19.87%
  • FastStack: 93.92%

chart_bench_int

Benchmark (ptr)

type
  Elem = ref object of RootObj
    data: pointer

Comparing to seq and DoublyLinkedList on i5-2500K @ 4000MHz:

============================================================================
GlobalBenchmark                                 relative  time/iter  iters/s
============================================================================
GlobalBenchmark                                            249.31ps    4.01G
============================================================================
bench_ptr.nim                                   relative  time/iter  iters/s
============================================================================
Sequence                                                     1.65ms   607.54
List                                                         2.21ms   452.28
FastStack                                                    1.38ms   724.24
  • Seq: 100.00%
  • List: 74.44%
  • FastStack: 119.21%

chart_bench_ptr