0.0.6-beta1 (#15)
Mime-Detective 0.0.6-beta1 includes numerous changes and improvements.
Analyzer Abstraction (IFileAnalyzer) for allowing extensibility
Static extension method extensibility through the static MimeAnalyzer class
Various improvements and additions to the underlying file header definitions
Significantly faster file header matching algorithms
Seekable Streams are now reset to position 0 by default for extension methods that accept streams
Secondary Analyzer for MS Document Type matching the MSDoc header (aka MS_Office)
More test coverage
Tries (prefix trees) and Analyzers
This release now includes 3 different file header matching implementations:
ArrayBasedTrie
-- Fastest implementation by far
-- Consumes the most amount of memory
DictionaryBasedTrie
-- Significantly slower than ArrayBasedTrie
-- Significantly faster than LinearCountingAnalyzer
-- Consumes significantly less memory than ArrayBasedTrie
-- This is the default
LinearCountingAnalyzer
-- A simple linear Algorithm, iterates through a list
-- Significantly slower than all other implementations
-- Consumes the least memory
Default header matching algorithm is now the DictionaryBasedTrie, constructed from MimeType.Types, and can be manipulated via the static MimeAnalzyer.PrimaryAnalzyer property. The Linear Algorithm now has the same behavior as tries. It will try to find the highest completely matching definition.