<img align="right" src="img/gemstone-wide-600.png" alt="gemstone logo">

# Common
### GPA Gemstone Library

The Gemstone Common Library organizes all Gemstone functionality for most any .NET coding.

[![GitHub license](https://img.shields.io/github/license/gemstone/common?color=4CC61E)](https://github.com/gemstone/common/blob/master/LICENSE)
[![Build status](https://ci.appveyor.com/api/projects/status/lar65enrk8b7aqu2?svg=true)](https://ci.appveyor.com/project/ritchiecarroll/common)
![CodeQL](https://github.com/gemstone/common/workflows/CodeQL/badge.svg)
[![NuGet](https://img.shields.io/nuget/vpre/Gemstone.Common)](https://www.nuget.org/packages/Gemstone.Common#readme-body-tab)

This library includes helpful common classes like the following:

* [BigEndian](https://gemstone.github.io/common/help/html/T_Gemstone_BigEndian.htm):
  * Defines a set of big-endian byte order interoperability functions.

* [Bits](https://gemstone.github.io/common/help/html/T_Gemstone_Bits.htm):
  * Enum that represents bits in a signed or unsigned integer value.

* [Encoding7Bit](https://gemstone.github.io/common/help/html/T_Gemstone_Encoding7Bit.htm):
  * Defines 7-bit encoding functions.

* [EventArgs&lt;T&gt;](https://gemstone.github.io/common/help/html/T_Gemstone_EventArgs_1.htm):
  * Represents a generic event arguments class.

* [LittleEndian](https://gemstone.github.io/common/help/html/T_Gemstone_LittleEndian.htm):
  * Defines a set of little-endian byte order interoperability functions.

* [NtpTimeTag](https://gemstone.github.io/common/help/html/T_Gemstone_NtpTimeTag.htm):
  * Represents a standard Network Time Protocol (NTP) timetag.

* [Word](https://gemstone.github.io/common/help/html/T_Gemstone_Word.htm):
  * Defines functions related to 16-bit words, 32-bit double-words and 64-bit quad-words.

* [Units](https://gemstone.github.io/common/help/html/N_Gemstone_Units.htm)
  * Namesspace defines units, e.g., [Angle](https://gemstone.github.io/common/help/html/T_Gemstone_Units_Angle.htm), useful for common unit and [SI](https://gemstone.github.io/common/help/html/T_Gemstone_Units_SI.htm) conversions.

* [UnixTimeTag](https://gemstone.github.io/common/help/html/T_Gemstone_UnixTimeTag.htm):
  * Represents a standard Unix timetag.
 
* Many Extension Functions (all opt-in only by specific extension namespace):
  * [ActionExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_ActionExtensions_ActionExtensions.htm)
  * [ArrayExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_ArrayExtensions_ArrayExtensions.htm)
  * [BitExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_BitExtensions_BitExtensions.htm)
  * [CharExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_CharExtensions_CharExtensions.htm)
  * [Collections](https://gemstone.github.io/common/help/html/N_Gemstone_Collections.htm)
    * [CollectionExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Collections_CollectionExtensions_CollectionExtensions.htm)
  * [DateTimeExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_DateTimeExtensions_DateTimeExtensions.htm)
  * [EnumExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_EnumExtensions_EnumExtensions.htm)
  * [EventHandlerExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_EventHandlerExtensions_EventHandlerExtensions.htm)
  * [GuidExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_GuidExtensions_GuidExtensions.htm)
  * [IO](https://gemstone.github.io/common/help/html/N_Gemstone_IO.htm)
    * [StreamExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_IO_StreamExtensions_StreamExtensions.htm)
  * [Reflection](https://gemstone.github.io/common/help/html/N_Gemstone_Reflection.htm)
    * [AssemblyExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Reflection_AssemblyExtensions_AssemblyExtensions.htm)
    * [MemberInfoExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Reflection_MemberInfoExtensions_MemberInfoExtensions.htm)
    * [MethodBaseExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Reflection_MethodBaseExtensions_MethodBaseExtensions.htm)
    * [MethodInfoExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Reflection_MethodInfoExtensions_MethodInfoExtensions.htm)
  * [Security.Cryptography](https://gemstone.github.io/common/help/html/N_Gemstone_Security_Cryptography.htm)
    * [HashAlgorithmExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Security_Cryptography_HashAlgorithmExtensions_HashAlgorithmExtensions.htm)
    * [SymmetricAlgorithmExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_Security_Cryptography_SymmetricAlgorithmExtensions_SymmetricAlgorithmExtensions.htm)
  * [StringExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_StringExtensions_StringExtensions.htm)
  * [TimeSpanExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_TimeSpanExtensions_TimeSpanExtensions.htm)
  * [TypeExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_TypeExtensions_TypeExtensions.htm)
  * [WordExtensions](https://gemstone.github.io/common/help/html/T_Gemstone_WordExtensions_WordExtensions.htm)

Among others

### Documentation
[Full Library Documentation](https://gemstone.github.io/common/help)
