panoradix 0.3.3

A generic map and a set, both backed by a Radix tree.
Documentation

panoradix

Travis badge crates.io badge

My take on implementing a Radix tree, for usage when large data mappings with strings as indices.

Note: this is currently a work in progress, expect unannounced brutal API changes every time the version is bumped.

What's in this repo?

  • RadixMap, a key-value map where the key is necessarily a string.
  • RadixSet, a set of strings.

Both are backed by a Radix tree.

What's being worked on?

A lot is missing right now, here's a wishlist sorted by difficulty/want:

  • map iterators: values_mut()
  • faster edge search: currently linear, should probably be binary search
  • erasing a key: should be straightforward
  • intersection: should be straightforward
  • union: since there can't be multiple values, merging two values with the same key should be annoying
  • take arbitrary keys instead of strings: had a go trying to implement this early on, but the API transparency between &str and String is so damn gorgeous that I've postponed this indefinitely

What's just been finished?

  • set iterators: keys()
  • map iterators: keys(), values()