NuGet Gallery Feed for DawgSharpDAWG (Directed Acyclic Word Graph) is a data structure for storing and searching large word lists while keeping your memory footprint small and lookups fast. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algorithm and out-of-the-box persistence support.
The Dawg class is nearly as fast as a HashSet for lookups and is much, much more memory-efficient (factors of 30x - 40x are not uncommon). In a benchmark application it held two million words while consuming only 2Mbytes of RAM. That's only one byte per word! And it's even less on disk.
The Dawg class can be thought of as a read-only Dictionary<string, Value>: it has a ["string"] indexer and implements IEnumerable<KeyValuePair<string, Value>>. One other very useful feature of Dawg (not found in Dictionary) is the ability to quickly find all words that start with a particular prefix: dawg.MatchPrefix("star") could possibly yield "star", "starch", "start", "starting", etc.
This package is provided under the terms of the GNU GPL v3. Source code and documentation are available on GitHub: https://github.com/bzaar/DawgSharp. Commercial licenses are also available at http://morpher.co.ukhttps://www-1.nuget.org/packages/DawgSharp/2018-11-24T19:02:08Zhttps://api.nuget.org/v3-flatcontainer/dawgsharp/1.3.0/iconhttps://www-1.nuget.org/packages/DawgSharp/1.3.0DawgSharp 1.3.02018-06-23T06:09:31Z2018-11-24T19:02:06Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG (Directed Acyclic Word Graph) is a data structure for storing and searching large word lists while keeping your memory footprint small and lookups fast. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algorithm and out-of-the-box persistence support.
The Dawg class is nearly as fast as a HashSet for lookups and is much, much more memory-efficient (factors of 30x - 40x are not uncommon). In a benchmark application it held two million words while consuming only 2Mbytes of RAM. That's only one byte per word! And it's even less on disk.
The Dawg class can be thought of as a read-only Dictionary<string, Value>: it has a ["string"] indexer and implements IEnumerable<KeyValuePair<string, Value>>. One other very useful feature of Dawg (not found in Dictionary) is the ability to quickly find all words that start with a particular prefix: dawg.MatchPrefix("star") could possibly yield "star", "starch", "start", "starting", etc.
This package is provided under the terms of the GNU GPL v3. Source code and documentation are available on GitHub: https://github.com/bzaar/DawgSharp. Commercial licenses are also available at http://morpher.co.ukhttps://www-1.nuget.org/packages/DawgSharp/1.2.0DawgSharp 1.2.02015-10-08T10:04:56Z2018-11-24T19:02:05Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG (Directed Acyclic Word Graph) is a data structure for storing and searching large word lists while keeping your memory footprint small and lookups fast. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algorithm and out-of-the-box persistence support.
The two main objects in the library are Dawg and DawgBuilder. Dawg is immutable, you must use DawgBuilder to build a Dawg and then save it to a stream. Then use Dawg.Load to rehydrate the data. Once reloaded, Dawg re-emerges as a completely different data structure (but, oddly, the same class) that is nearly as fast as a HashSet for lookups and is much, much more memory-efficient (factors of 30x - 40x are not uncommon). Please note that the Save/Load step is necessary to get the full potential out of the Dawg object. Use a MemoryStream if disk interaction is not desired.
The Dawg class can be thought of as a read-only Dictionary <string, Value> type. It has the [""] indexer and implements IEnumerable <KeyValuePair <string, Value>>.
One other very useful feature of Dawg (not found in Dictionary) is the ability to quickly find all words that start with a particular substring: dawg.MatchPrefix ("star") could possibly yield "star", "starch", "start", "starting", etc.
This package is provided under the terms of the GNU GPL v3. Source code and documentation are available on GitHub: https://github.com/bzaar/DawgSharp. Commercial licenses are also available.https://www-1.nuget.org/packages/DawgSharp/1.1.1DawgSharp 1.1.12015-07-10T15:06:06Z2018-11-24T19:02:04Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algorithm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.1.0DawgSharp 1.1.02015-07-10T15:01:31Z2018-11-24T19:02:08Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algorithm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.0.7DawgSharp 1.0.72015-01-02T23:24:17Z2018-11-24T19:02:07Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algoritm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.0.6DawgSharp 1.0.62014-10-31T13:17:51Z2018-11-24T19:02:03Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algoritm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.0.5DawgSharp 1.0.52014-06-02T18:39:25Z2018-11-24T19:02:03Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algoritm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.0.4DawgSharp 1.0.42014-05-05T15:34:23Z2018-11-24T19:02:08Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algoritm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.0.3DawgSharp 1.0.32014-05-04T18:38:48Z2018-11-24T19:02:02Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algoritm and persistence support.https://www-1.nuget.org/packages/DawgSharp/1.0.2DawgSharp 1.0.22014-04-27T14:12:23Z2018-11-24T19:02:07Zmorpherhttps://www-1.nuget.org/profiles/morpherDAWG is a data structure for effectively storing and searching large word lists. DawgSharp is an open-source C# implementation featuring a linear time graph reduction algoritm and persistence support.