Lyo.Diff
1.0.6
dotnet add package Lyo.Diff --version 1.0.6
NuGet\Install-Package Lyo.Diff -Version 1.0.6
<PackageReference Include="Lyo.Diff" Version="1.0.6" />
<PackageVersion Include="Lyo.Diff" Version="1.0.6" />
<PackageReference Include="Lyo.Diff" />
paket add Lyo.Diff --version 1.0.6
#r "nuget: Lyo.Diff, 1.0.6"
#:package Lyo.Diff@1.0.6
#addin nuget:?package=Lyo.Diff&version=1.0.6
#tool nuget:?package=Lyo.Diff&version=1.0.6
Lyo.Diff
Side-by-side comparison for human-readable text and object graphs. IDiffService is backed by two subsystems you can also inject independently.
Examples
Register services
using Lyo.Diff;
builder.Services.AddLyoDiff(); // ITextTokenizer, ITextDiffService, IObjectGraphDiffService, IDiffService
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. Algorithm implementation over pre-tokenized spans.
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).ObjectGraphLeafContext. Captures where in the graph the change occurred for UI or logging.
Facade
IDiffService. ExposesTextandObjectsso one injection covers both.
Registration
All defaults are singletons. Services are stateless 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 it, 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.6)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
- System.Buffers (>= 4.6.1)
-
net10.0
- Lyo.Exceptions (>= 1.0.6)
- 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.