A collection of production-ready .NET utility libraries published as the omy.Utils package family. Each package focuses on a specific area (networking, I/O, data, imaging, etc.) and is built to be consumed directly from NuGet without preview SDKs.
- omy.Utils – foundational helpers used across the other packages (arrays, collections, expressions, strings, streams, security).
- omy.Utils.Net – DNS, ICMP, network discovery, Wake-on-LAN, and URI builder helpers.
- omy.Utils.IO – stream utilities, base16/base32/base64 converters, and binary serialization helpers.
- omy.Utils.Data – attributes and mappers for
IDataRecord/IDataReaderto typed objects. - omy.Utils.Imaging – bitmap accessors, vector drawing primitives, and color helpers.
- omy.Utils.Fonts – TrueType/PostScript parsing, encoding tables, and glyph metrics utilities.
- omy.Utils.Geography – coordinate models, map projections, and tile helpers.
- omy.Utils.Mathematics – advanced math helpers (FFT, derivation/integration, SI conversions, linear algebra).
- omy.Utils.Reflection – reflection extensions such as
PropertyOrFieldInfoand dynamic delegate invocation. - omy.Utils.Xml – attribute-driven XML processing and
XmlDataProcessorhelpers. - omy.Utils.VirtualMachine – minimal VM framework with attribute-defined instructions and configurable endianness.
- omy.Utils.OData – OData client helpers and metadata utilities.
- omy.Utils.OData.Generators – Roslyn source generator for OData models from EDMX metadata.
- omy.Utils.DependencyInjection – attribute-based dependency injection helpers.
- omy.Utils.DependencyInjection.Generators – Roslyn source generator that emits DI registrations.
- omy.Utils.IO.Serialization.Generators – Roslyn source generator for stream serializers.
Additional project-level READMEs provide deeper details for specialized packages like serialization or generators.
Use the package that matches your scenario. Examples:
dotnet add package omy.Utils
# or
dotnet add package omy.Utils.NetAll packages target stable TFMs (primarily
net8.0andnet9.0). Only building the repository may require the latest SDK.
using Utils.Net;
var builder = new UriBuilderEx("http://example.com");
builder.QueryString["key"].Add("value");
Console.WriteLine(builder.ToString());More examples are available inside each package README (see Utils/README.md for the base library).
The solution targets .NET 9 for development. To build locally:
dotnet buildUnit tests live in the UtilsTest project and can be run with dotnet test.
This project is distributed under the Apache 2.0 license (see LICENSE-apache-2.0.txt).