The Loyc Core project is a set of general-purpose .NET libraries. LoycCore is especially focused on collections: classes, interfaces, adapters, and extension methods.
Contributors are welcome: more unit tests, code reviews, and new features are desired, anything relatively small (under about 3000 lines of code) that fits the theme "things that should be built into the .NET framework, but aren't".
I strive to meet any 4 of the following 5 criteria for all code in these libraries: well-designed, well-documented, well-tested, well-written (concise/beautiful), and high-performance.
The libraries are:
- Loyc.Essentials.dll: a library of interfaces, extension methods, and small bits of functionality that are useful in virtually any software project. About half of Loyc.Essentials is devoted to collections: collection interfaces, collection adapters, collection extension methods and even a couple of collection implementations (most notably
DList<T>). The other half includes a variety of things including math, geometry,
Pair<A,B>, "message sinks", a miniature NUnit and more.
- Loyc.Collections.dll: a library of sophisticated data structures including ALists, VLists, and my favorite, the hash tree types
MMap<T>. Learn more.
- Loyc.Syntax.dll: Contains a parser for Loyc Expression Syntax (LES), and various interfaces and base classes for Loyc Languages and for users of LLLPG.
- Loyc.Utilities.dll: Additional functionality that is either (A) not important enough to be placed in Loyc.Essentials.dll or (B) takes Loyc.Collections.dll as a dependency.
They are available as a NuGet package.
Low-level libraries on top:
Loyc.Essentials | Loyc.Collections ^ ^ | | | +----------------+ | | | | Loyc.Utilities Loyc.Syntax
Note: the .NET 3.5 versions of these libraries depend on the compatibility library Theraot.Core.dll.