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.