#linked-list #slab #deque #queue #allocation #memory-management

slabigator

A linked list that doesn't do dynamic memory allocations

10 releases

0.9.2 Mar 17, 2024
0.9.1 Sep 8, 2023
0.2.0 Aug 9, 2022
0.1.6 Aug 9, 2022
0.1.4 Jun 30, 2022

#423 in Data structures

Download history 544/week @ 2024-07-21 462/week @ 2024-07-28 229/week @ 2024-08-04 381/week @ 2024-08-11 442/week @ 2024-08-18 591/week @ 2024-08-25 343/week @ 2024-09-01 598/week @ 2024-09-08 858/week @ 2024-09-15 500/week @ 2024-09-22 650/week @ 2024-09-29 470/week @ 2024-10-06 123/week @ 2024-10-13 340/week @ 2024-10-20 351/week @ 2024-10-27 185/week @ 2024-11-03

1,002 downloads per month
Used in 2 crates

MIT/Apache

19KB
451 lines

CI

Slabigator

A linked list that doesn't do dynamic memory allocations.

Things it was designed to do:

  • Add to the head of the list in O(1) - What you get back is a stable slot number
  • Pop from the tail of the list in O(1)
  • Delete an element given its slot number in O(1)
  • And nothing else.

Dumb, small, maintainable, zero dependencies.

Cargo features:

  • releasefast: assume that remove() will always be called with a valid index. This saves some memory, but has to be used with extreme caution. That feature is not set by default.
  • slot_u32: use u32 as the slot type (default)
  • slot_u64: use u64 as the slot type
  • slot_usize: use usize as the slot type

No runtime deps