Getting started with omy.Utils
Use this guide to select the right package, install it quickly, and confirm supported target frameworks.
Target framework values in this document are derived from the corresponding project (
*.csproj) files in this repository.
1) Choose a package
Pick the smallest package that matches your use case.
| Package | Purpose | TFM |
|---|---|---|
omy.Utils |
Shared foundation helpers used across the ecosystem. | net8.0 |
omy.Utils.Collections |
Collection structures and helpers (including skip list). Provisional 0.0.x version, temporarily outside the product train and packaged/published independently — see provisional versioning. |
net8.0 |
omy.Utils.Data |
Map IDataRecord / IDataReader to typed objects. |
net8.0 |
omy.Utils.DependencyInjection |
Attribute-driven DI registration helpers. | net9.0 |
omy.Utils.Expressions.CSyntax |
C-like expression compiler targeting LINQ expression trees. | net8.0 |
omy.Utils.Expressions.VBSyntax |
VB-like expression compiler targeting LINQ expression trees. | net8.0 |
omy.Utils.Fonts |
Font parsing and glyph/encoding helpers. | net8.0 |
omy.Utils.Geography |
Coordinates, projections, and map/tile helpers. | net8.0 |
omy.Utils.IO |
Streams, conversion helpers, and serialization primitives. | net8.0 |
omy.Utils.Imaging |
Imaging and drawing utilities. Windows only (System.Drawing.Common). |
net8.0 |
omy.Utils.Mathematics |
Math helpers, FFT, and algebra-related types. | net8.0 |
omy.Utils.Net |
Networking helpers (DNS, ICMP, WOL, URI tooling). | net9.0 |
omy.Utils.NumberToString |
Number-to-string conversion helpers. | net8.0 |
omy.Utils.OData |
OData client and metadata utilities. | net9.0 |
omy.Utils.Parser |
Runtime parsing infrastructure for ANTLR4 grammars. | net8.0 |
omy.Utils.Parser.Diagnostics |
Shared diagnostics contracts used by parser runtime and generators. | netstandard2.0 |
omy.Utils.Parser.Source |
Shared source-location contracts for parser runtime, diagnostics, generators, and tooling. | netstandard2.0 |
omy.Utils.Reflection |
Reflection wrappers and invocation helpers. | net8.0 |
omy.Utils.VirtualMachine |
Attribute-based byte-code interpreter support. | net8.0 |
omy.Utils.XML |
XML mapping and processing helpers. | net8.0 |
omy.Utils.DependencyInjection.Generators |
Source generators for DI. | netstandard2.0 |
omy.Utils.IO.Serialization.Generators |
Source generators for stream serializers. | netstandard2.0 |
omy.Utils.OData.Generators |
Source generators for OData metadata. | netstandard2.0 |
omy.Utils.Parser.Generators |
Parser/grammar source generator utilities. | netstandard2.0 |
2) Install
Most packages already have a published stable release, so a plain dotnet add package installs
that stable version, not the 2.0.0-rc.1 release candidate this repository's docs describe:
# Latest stable
dotnet add package omy.Utils
# or
dotnet add package omy.Utils.IO
To try the 2.0.0-rc.1 candidate itself, pin it explicitly:
# 2.0 release candidate
dotnet add package omy.Utils --version 2.0.0-rc.1
# or
dotnet add package omy.Utils.IO --version 2.0.0-rc.1
For source-generator packages:
dotnet add package omy.Utils.DependencyInjection.Generators --version 2.0.0-rc.1
omy.Utils.NumberToString, the omy.Utils.Parser* family, and
omy.Utils.Expressions.CSyntax/Expressions.VBSyntax have no published stable release yet -
2.0.0-rc.1 is their first publication, so --version 2.0.0-rc.1 is required for those (NuGet does
not install a prerelease by default), not just a way to get the newer candidate.
3) Minimal usage snippet
using Utils.Arrays;
int[] values = [0, 1, 2, 0];
int[] trimmed = values.Trim(0);
Versioning policy
The repository uses semantic versioning per package. Patch and minor updates should remain non-breaking for existing public APIs.
Track release notes in CHANGELOG.md.
Feedback and issues
Open issues and feature requests in the GitHub repository:
Note for contributors
Consuming packages and building the repository are different concerns:
- Consumers: use the package TFM listed above.
- Contributors: build/test via
Utils.sln, which includes .NET 9 development/test projects.