Lyo.Diff
1.0.2
See the version list below for details.
dotnet add package Lyo.Diff --version 1.0.2
NuGet\Install-Package Lyo.Diff -Version 1.0.2
<PackageReference Include="Lyo.Diff" Version="1.0.2" />
<PackageVersion Include="Lyo.Diff" Version="1.0.2" />
<PackageReference Include="Lyo.Diff" />
paket add Lyo.Diff --version 1.0.2
#r "nuget: Lyo.Diff, 1.0.2"
#:package Lyo.Diff@1.0.2
#addin nuget:?package=Lyo.Diff&version=1.0.2
#tool nuget:?package=Lyo.Diff&version=1.0.2
Lyo.Diff
Side-by-side comparison utilities for human-readable text and arbitrary object graphs. The package exposes a small IDiffService façade backed by two subsystems you can also inject independently.
Examples
Register services
using Lyo.Diff;
builder.Services.AddLyoDiff(); // ITextTokenizer, ITextDiffService, IObjectGraphDiffService, IDiffService
Components — Text diffing (Lyo.Diff.Text)
ITextTokenizer(TextTokenizer) — splits input intoTextToken[]usingTextDiffOptions(line vs word vs character modes inTextTokenizeMode, ignore case, ignore whitespace,MaxTokensPerSidesafety cap—exceeding the cap throws to avoid runaway memory on pathological input).ITextDiffService(TextDiffService) — runs a Myers diff over parallel token streams, returnsTextDiffResultwith orderedTextDiffChunksegments taggedTextDiffKind(equal, insert, delete).MyersDiffCalculator— core algorithm implementation over pre-tokenized spans.
Components — Object graph diffing (Lyo.Diff.ObjectGraph)
IObjectGraphDiffService(ObjectGraphDiffService) — walks two object instances of the same nominal type (or compatible graphs), compares reachable properties and nested objects according toObjectGraphDiffOptions, and yields a list ofObjectGraphDifferenceentries (path/context + old/new values at leaves).ObjectGraphLeafContextcaptures where in the graph the change occurred for UI or logging.
Components — Facade
IDiffServiceaggregatesTextandObjectsso a single injectable service suffices for mixed workflows.
Registration
All defaults are singletons (stateless services except options you pass per call).
Design notes
- No dependency on EF or JSON—inputs are
stringor CLR objects you already hydrated. - No automatic persistence—callers snapshot “before” states if needed.
- Security: diffing arbitrary user text can leak secrets in logs—sanitize
TextDiffResultbefore exposing externally (same caution as storing raw payloads).
See also
Lyo.Diagnostic— stack/metadata enrichment when diff output feeds triage tooling.
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Exceptions— (direct, lyo)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5— (direct, microsoft)System.Buffers4.6.1— (direct, microsoft, netstandard2.0)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Lyo.Exceptions (>= 1.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- System.Buffers (>= 4.6.1)
-
net10.0
- Lyo.Exceptions (>= 1.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Lyo.Diff:
| Package | Downloads |
|---|---|
|
Lyo.Api
Core API library for building RESTful APIs with Entity Framework Core, caching, and mapping support. |
|
|
Lyo.Discord.Bot
DSharpPlus bot host that syncs Discord guild data to the Lyo API (DI, configuration, extensible base class). |
GitHub repositories
This package is not used by any popular GitHub repositories.