datrie is an implementation of double-array structure for representing trie, as proposed by Junichi Aoe.
Trie is a kind of digital search tree, an efficient indexing method with O(1) time complexity for searching. Comparably as efficient as hashing, trie also provides flexibility on incremental matching and key spelling manipulation. This makes it ideal for lexical analyzers, as well as spelling dictionaries.
See the details of the implementation at: http://linux.thai.net/~thep/datrie/datrie.html
Historically, this was first implemented as C++ classes in a library called midatrie, but later simplified and rewritten from scratch in C.