CodoMetis.ValueRanges
In-memory range and multirange types for .NET 10, mirroring PostgreSQL's six built-in range domains (int4range, int8range, numrange, daterange, tsrange, tstzrange) plus TimeRange over TimeOnly โ the time-of-day range PostgreSQL users conventionally add as CREATE TYPE timerange AS RANGE (subtype = time). Each type is a discriminated union of five sealed variants (Finite, UnboundedStart, UnboundedEnd, EmptyRange, Infinity) with invalid states unrepresentable at compile time. Includes the full PostgreSQL interval algebra โ Contains, Overlaps, IsAdjacentTo, Intersect, Union, Except, Complement, Merge (range_merge), bound accessors (lower/upper/lower_inc/upper_inc), and the RangeAgg/RangeIntersectAgg aggregates โ plus RangeSet<TRange, T> as an immutable, always-normalized multirange with the complete multirange operator matrix. v6 adds value sets: immutable, canonical (deduplicated, sorted, null-free) sets of scalar values whose PostgreSQL storage shape is a native array โ StringSet (text[]), GuidSet (uuid[]), Int16Set/Int32Set/Int64Set, DecimalSet, DateSet, TimeSet, DateTimeSet, DateTimeOffsetSet โ plus validated-wrapper arities (StringSet<T>, GuidSet<T>, Int32Set<T>, Int64Set<T>) for Vogen/Metalama/StronglyTypedId-style domain values, constrained only on BCL interfaces. Membership algebra (Contains, Overlaps, IsSubsetOf, IsSupersetOf, Union), PostgreSQL array literals, and collection expressions included. All types implement IParsable<T> and IFormattable using PostgreSQL literal syntax, and ship with System.Text.Json converters for direct use in ASP.NET Core APIs. No database dependency.
Install
dotnet add package CodoMetis.ValueRanges --version 6.1.0
Install-Package CodoMetis.ValueRanges -Version 6.1.0
<PackageReference Include="CodoMetis.ValueRanges" Version="6.1.0" />
Frameworks
Dependencies
No declared dependencies.
Adoption guide
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Compatibility metadata lists 1 target framework; confirm the exact target used by your application.
How to read this guidance
Sources: published NuGet v3 registry metadata and explicit NuBrowse editorial guides. Refresh: package metadata is refreshed from NuGet when the page loads. Limit: this is not a security, legal or compatibility guarantee; validate the selected version in your project.
Useful next steps
Move from package metadata to a concrete selection or review workflow.