An application to efficiently find words in a dictionary from a multiset of letters.
$ mkdir bld $ cd bld $ cmake .. $ make
$ ./bigword linkedlists > instilled > kindliest > niellists > slinkiest $ ./bigword abcdefghij > bighead > jibhead $ ./bigword aeioubsdlinux > unoxidisable
Data is serialized after processing in order to speed up subsequent runs.
Human-readable formats are preferred.
Most of the data is plain text, storing it as binary does not improve performance significantly.
When a string may have spaces, it is dumped after a 32-bit unsigned integer value which represents the string size. When it is safe to assume that the string does not have spaces, it is dumped in a new line all by itself.