August 2014
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 have been built into the .NET framework, but aren't".
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,Symbol
s, localization,Pair<A,B>
, "message sinks" and more. - Loyc.Collections.dll: a library of sophisticated data structures including ALists, VLists, and my favorite, the hash tree types
Set<T>
,MSet<T>
,Map<T>
andMMap<T>
. - 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.
You can find more detailed descriptions in the Wiki.
Low-level libraries on top:
Loyc.Essentials
|
Loyc.Collections
^ ^
| |
| +----------------+
| |
| |
Loyc.Utilities Loyc.Syntax
These projects use couple of tricks to support .NET 3.5, .NET 4 and .NET 4.5 in a single solution file. The tricks are documented here: http://stackoverflow.com/questions/5006397/targetting-multiple-net-framework-versions-by-using-different-project-configura/23705790#23705790
TODO: Add portable class library version. I may wait until PCLs are supported by Visual Studio Express Edition.
Note: the versions of these libraries for .NET 3.5 depend on the compatibility library Theraot.Core.dll.