The bytestring-trie package provides an efficient implementation of tries mapping ByteString to values. Actually, it provides two implementations:

The old implementation (prior to version 0.3) is based on Okasaki's big-endian patricia trees, à la IntMap. We first trie on the elements of ByteString and then trie on the big-endian bit representation of those elements. Patricia trees have efficient algorithms for union and other merging operations, but they're also quick for lookups and insertions.

The new implementation (since version 0.3) replaces the big-endian patricia trees with Bagwell's AMTs (array mapped tries), which are the precursor to the HAMTs used by the hashmap library. This implementation is still a work in progress, but once completed will replace the old implementation.

If you are only interested in being able to associate individual ByteStrings to values, then you may prefer the hashmap package which is faster for those only needing a map-like structure. This package is intended for those who need the extra capabilities that a trie-like structure can offer (e.g., structure sharing to reduce memory costs for highly redundant keys, taking the submap of all keys with a given prefix, contextual mapping, extracting the minimum and maximum keys, etc.)

Note that the GitHub repository is just a clone of the Darcs repo. I'm testing out whether to switch things over to GitHub in order to use TravisCI, and an official ticket tracker, etc.

Programming language: Haskell
Tags: Data Structures     ByteString     Map     Trie    

bytestring-trie alternatives and similar packages

Based on the "map" category

Do you think we are missing an alternative of bytestring-trie or a related project?

Add another 'map' Package