Skip to content

The Loyc Core Libraries. Loyc.Essentials fills in gaps in the .NET Base Class Library; Loyc.Collections adds sophisticated data structures; and Loyc.Syntax contains the LES parser and other parsing-related services including base classes for LLLPG.

License

default0/LoycCore

 
 

Repository files navigation

README

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, Symbols, 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> and MMap<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.

Dependency tree

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.

Links

About

The Loyc Core Libraries. Loyc.Essentials fills in gaps in the .NET Base Class Library; Loyc.Collections adds sophisticated data structures; and Loyc.Syntax contains the LES parser and other parsing-related services including base classes for LLLPG.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%