Wordlists

Fundamentally, word lists are just that: lists of words. In addition to storing the words, Passgen also accepts a frequency indicator.

There are two options for data structures to represent these. The tradeoffs that need to be made are in the memory usage of the loaded wordlist, and the time it takes to load it into memory.

When parsing wordlists, a BTree or a HashMap are convenient, as they typically allow for fast $O(n log n)$ insertion times.

  • BTreeMap
  • HashMap
  • Vec<()>
  • Trie

// insertion time graph

// memory usage graph

With these results, the best option