Lyo.PackageMetadata
1.0.1
dotnet add package Lyo.PackageMetadata --version 1.0.1
NuGet\Install-Package Lyo.PackageMetadata -Version 1.0.1
<PackageReference Include="Lyo.PackageMetadata" Version="1.0.1" />
<PackageVersion Include="Lyo.PackageMetadata" Version="1.0.1" />
<PackageReference Include="Lyo.PackageMetadata" />
paket add Lyo.PackageMetadata --version 1.0.1
#r "nuget: Lyo.PackageMetadata, 1.0.1"
#:package Lyo.PackageMetadata@1.0.1
#addin nuget:?package=Lyo.PackageMetadata&version=1.0.1
#tool nuget:?package=Lyo.PackageMetadata&version=1.0.1
Lyo.PackageMetadata
Multi-ecosystem PackageMetadata rows, PackageMetadataRegistration, IPackageMetadataStore, and PackageArtifactDigest helpers for correlating stack-trace namespaces with persisted package/catalog data.
Public surface
PackageMetadata—sealed recordcarrying ecosystem, name/version, optionalArtifactDigestAlgorithm/ArtifactDigestHex, project/repository/license URLs, SPDXLicenseExpression(+ parsedLicenseExpressionSyntax),CreatedAt/UpdatedAttimestamps.PackageEcosystemenum —Unknown,NuGet,Maven,Gradle,Conan,Vcpkg,Debian,Rpm,Msi,Other.ArtifactDigestAlgorithmenum —None,Sha512,Sha256,Sha1.PackageMetadataRegistration— pair of namespace prefixes and thePackageMetadatato register.IPackageMetadataStore—TryGetForFrameAsync,TryGetManyForStrippedMethodPrefixesAsync,RegisterManyAsync.InMemoryPackageMetadataStore— thread-safe store; build withnew InMemoryPackageMetadataStore(), then callRegister(prefixes, package)orRegisterManyAsync(registrations). No DI extension ships in this package (a Postgres-backed store with its own DI extensions lives inLyo.PackageMetadata.Postgres).PackageArtifactDigest—ComputeHex(algorithm, byte[]|Stream)andComputeHexSha512(...)convenience overloads for canonical artifact bytes.PackageLicenseExpression—TryParseSyntax(expression)andTryGetSpdxLicenseIdentifiers(expression)over SPDX 2.x (AND,OR,WITH).SpdxLicenseExpressionSyntax— JSON-friendly parsed tree (license,exception,and,or,with).
Implementing IPackageMetadataStore
- Honour longest registered namespace-prefix wins (
normalizedPrefix.+strippedMethodPrefix.StartsWith(prefix, Ordinal)) forTryGetForFrameAsyncand * *TryGetManyForStrippedMethodPrefixesAsync**. - Return a map from
TryGetManyForStrippedMethodPrefixesAsyncthat includes one entry per distinct requested key, withnullwhen no prefix matches. Empty input ⇒ empty map.
namespacePrefix parameter
Both lookup methods expose a namespacePrefix argument (frame namespace). Matching currently ignores this value — it is reserved for possible future narrowing. Passing any value does not affect results today.
PostgresPackageMetadataStore scalability
PostgresPackageMetadataOptions.PrefixCatalogCaching(seePostgresPrefixCatalogCachingMode) can skip re-querying the database on repeatedTryGetMany(InvalidateOnRegisterManyOrClear) orDisabledwhen you wrap the store with your own cache.PostgresPackageMetadataStore.ClearPrefixCatalogCache()drops the in-process snapshot. The cache is per process. AfterRegisterManyAsyncon that instance the snapshot is cleared. Other DB writers won't invalidate automatically — disable in-process caching or clear explicitly when imports finish off-process.
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Common— (direct, lyo)Lyo.Exceptions— (direct, lyo)Lyo.Hashing— (direct, lyo)System.Threading.Tasks.Extensions4.6.3— (direct, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5— (transitive, microsoft)Microsoft.Extensions.Logging.Abstractions10.0.5— (transitive, microsoft)System.IO.Hashing10.0.5— (transitive, microsoft, net10.0)System.Memory4.6.3— (transitive, microsoft, netstandard2.0)System.Text.Json10.0.5— (transitive, 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.Common (>= 1.0.1)
- Lyo.Exceptions (>= 1.0.1)
- Lyo.Hashing (>= 1.0.1)
- System.Threading.Tasks.Extensions (>= 4.6.3)
-
net10.0
- Lyo.Common (>= 1.0.1)
- Lyo.Exceptions (>= 1.0.1)
- Lyo.Hashing (>= 1.0.1)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Lyo.PackageMetadata:
| Package | Downloads |
|---|---|
|
Lyo.Diagnostic
Diagnostic utilities for classifying exceptions, decoding and sanitising stack traces, and enriching structured logs for observability. |
|
|
Lyo.PackageMetadata.Postgres
PostgreSQL implementation of IPackageMetadataStore for NuGet-style package rows and stack-frame namespace prefixes. |
GitHub repositories
This package is not used by any popular GitHub repositories.