Skip to main content
CodoMetis.ValueRanges package icon

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.

Total Downloads
2.1K
2,129
Published
Aug 14, 2026
Latest stable version

Install

.NET CLI
dotnet add package CodoMetis.ValueRanges --version 6.0.0
Package Manager Console
Install-Package CodoMetis.ValueRanges -Version 6.0.0
PackageReference
<PackageReference Include="CodoMetis.ValueRanges" Version="6.0.0" />

Frameworks

net10.0

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.