lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Hello all,

The Sano framework contains pure-Lua implementations of several common
(and a few not-so-common) data structures and related algorithms. It
runs under both Lua 5.0 and 5.1, and is MIT-licensed.

Among the highlights are: Several sequence types, including the humble
Tuple (a lightweight, hashable table wrapper), Vector (slightly more
industrial strength table wrapper, including negative indexing),
QueueVector (random access + efficient inserts at head OR tail), a
basic LinkedList, and SkipVector (a skip-list based random access
sequence with efficient inserts or removals at ANY position).

The library also includes several map implementations: HashMap (a
table-based map with plenty of convenience methods and support for
user-defined hashing functions), an ordered, mergeable, spliceable
SkipMap, and a LinkedMap (iteration order same as insertion order).
For each of these map types, Sano also has the parallel set type -
HashSet, SkipSet, LinkedSet.

In addition, the library contains a PairingHeap (constant-time
mergeable heap), Multimap (implements one to many mappings), Multiset
(ordered or unordered), and numerous algorithms and utility functions
for working with all the data structures in the library.

See for download link, some (brief) code
samples and links to the API documentation.