Skip to content
Nathan Ridley edited this page Feb 11, 2017 · 20 revisions

Road Map

1.0

  • Five primary collection types: list, map, set, and sorted variants of the latter two
  • Optimisation of the list structure as per #9
  • Proper performance testing setup

Beyond 1.0

  • Reactive functional projections, allowing a stack of data structures, each of which are a transformation on the layer above them. Only the top data structure will be modified directly; lower layers will be controlled by transformation functions that can be hot-swapped in-place in order to modify the projected output.

Ideas for additional collection types, mostly able to be backed by other underlying data structures in Collectable.js (some as analogs to Immutable.js, for completeness):

  • Range (sequential vs random)
  • Lazy sequences (relation to the original projections idea?)
  • Queue (standard vs priority)
  • Stack
  • Repeat
  • Record

Other raw data structures for advanced use as needed:

  • AVL tree for when reads are much more frequent than writes
  • Finger tree for more interesting BST-based scenarios
  • Cuckoo filter
  • Suffix tree
  • B-tree
  • B+ tree

More ideas for data structures can be found here.

WASM may offer some great opportunities for creating much faster versions of the above, without the warts of JavaScript needing to be worked around just to maintain high performance.

I'd love to see Collectable not only become a drop-in alternative to Immutable.js, but even eventually become one of the main players in that space, with functionality that is not available anywhere else.

Clone this wiki locally