﻿<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>equadrat.Framework.Core.Serializer.Protobuf</id>
    <version>8.3.2-prerelease-00067</version>
    <authors>equadrat</authors>
    <requireLicenseAcceptance>true</requireLicenseAcceptance>
    <license type="file">equadrat.Framework.Core.License.md</license>
    <licenseUrl>https://aka.ms/deprecateLicenseUrl</licenseUrl>
    <icon>images/equadrat-oss.Icon.png</icon>
    <readme>README.md</readme>
    <projectUrl>https://www.equadrat.net/</projectUrl>
    <iconUrl>https://www.equadrat.net/wp-content/uploads/equadrat-oss.Icon.png</iconUrl>
    <description>A framework to extend the Microsoft .net framework with extra core functionality.</description>
    <releaseNotes># Release notes
## v8.3.2
- Added cache for CoreEventHandlerInterruptInvocators.
- Replaced null-equality checks with null-reference checks.
## v8.3.1
- Disabled trimming.
## v8.3.0
- Removed .net Framework versions (v4.x) from target frameworks.
## v8.2.0
- Added support for .net 10.
## v8.1.8
- Added single-parameter overloads of Convert[Object] and Convert[Object]Back methods to ICoreValueConverter.
## v8.1.7
- Improved detection of logging event related attributes in CoreLoggerBase to support attributes declared in implemented interfaces.
## v8.1.6
- Excluded SDK related files from equadrat.Framework.Core.CodeGenerator.
## v8.1.5
- Included missing files to equadrat.Framework.Core.CodeGenerator.
## v8.1.4
- Added code generator triggered by CoreGenerateLoggerAttribute to generate the implementation for loggers based on CoreLoggerBase.
- Added code generator triggered by CoreGenerateInjectorAttribute to generate a constructor to initialize all members of a specified interface and all read-only members (properties and fields).
- Removed invalid path/methods from ICoreCommandFactory fluent API.
## v8.1.3
- Added type check to CoreCustomModelBinderProvider to try serialize outbound-content only if the object matches the declared type of the ProducesAttribute.
## v8.1.2
- Added [Try]GetLifetime methods to ICoreIOCRegistry and ICoreIOCFactory.
- Added TryGetLifetime extension methods for IServiceCollection to get the lifetime of a service.
- Added content type and file extension mapping for serializers.
- Added support to serialize models as HTTP content.
- Added fluent API to ICoreCommandFactory to simplify creating commands. Marked old factory methods as obsolete.
## v8.1.1
- Added support for ProducesAttribute when using ASP.net MVC to select the correct serializer based on the type of model.
## v8.1.0
- Added methods to ICoreEditableLoggingLevelFilter to set the minimum logging level in an easier way.
- Changed behavior of CoreAppSettingsLoggingLevelFilter to use partial match of the product name with the logging category to support parent/child categories.
- Added ICoreDispatcher.CanDispatch property to indicate whether a dispatcher can actually dispatch at that time. This affects primarily CoreWebAssemblyDispatcher.
- Changed the behavior of CoreWebAssemblyDispatcher to simply pass-through calls if the dispatcher currently can't dispatch. This is usually the case when the webassembly application starts but no render has been created.
- Added CoreReadOnlyArrayList as a read-only version of CoreArrayList.
- Added ICoreBootstrapperModule.GetRegisterSteps and .GetInitializeSteps to support IServiceCollection and IServiceProvider (or any custom register/initialize logic).
- Marked ICoreBootstrapperModule.GetRegisterMethods and .GetInitializeMethods as obsolete. Use the new step-based methods with "this.Step(...)" to wrap the register/initialize callbacks as steps. Add equadrat.Framework.Core.Microsoft.Extensions.DependencyInjection to your project to have an overload for register methods using IServiceCollection.
- Added AsTransient[Of] and AsScoped[Of] overloads for IOC registrations.
- Marked AsInstancePerCall[Of] and AsInstancePerScope[Of] methods (and related enums etc.) as obsolete.
- Added fluent API to ICoreOwnerTokenFactory to simplify creating tokens. Marked old factory methods as obsolete.
- Added overloads for ICoreReflectionHelper.IsNullable.
- Added ICoreExpressionHelper.ToString to translate an expression tree into a JSON text.
- Added CoreReferenceExceptionEqualityComparer to compare instances of CoreReferenceException.
- Fixed bug in glob-pattern to regex-pattern transformation.
- Removed class restriction from ICorePolymorphList.
## v8.0.0
- Removed Xamarin support.
- Removed obsolete code.
## v7.6.1
- Added CoreFolderConfigurationSource to represent all config files of a folder as a single IConfiguration object. It updates when files are added/updated/deleted. Use extension methods AddJsonConfigFolder (equadrat.Framework.Core.Microsoft.Extensions.Configuration.Json) and AddXmlConfigFolder (equadrat.Framework.Core.Microsoft.Extensions.Configuration.Xml) for simpler access.
- Added ICoreDebouncerFactory (CoreDebouncer) to create debouncer objects for callbacks.
## v7.6.0
- Added nullable support for ICoreEvent add/remove handler.
- Added nullable support for property names when using ICorePropertyChangedObserver.
- Minor fixes.
- Updated NuGet package references.
## v7.5.0
- Added ICoreLockFactory.CreateReaderWriterLock to create a read-write lock which support async/await.
- Added CoreArrayEqualityComparer, CoreDictionaryEqualityComparer, CoreItemEqualityComparer, CoreListEqualityComparer, CoreItemComparer.
- Added parse methods to ICoreDataSizeHelper.
- Added CoreDisposableExtensions.ConfigureAwait, extension method for IAsyncDisposable to inline async using statements.
- Changed eCoreDataSizeFormat.Format to separate eCoreDataSizeFormat.Scientific.
- Updated NuGet package references.
## v7.4.0
- Changed CoreTimeFormatProvider to let DefaultMaxDecimalPlaces not override FixedDecimalPlaces when MaxDecimalPlaces is not defined.
- Added CoreMicrosoftExtensionsHostBuilderHelper.InitBootstrapperModules to force initializing the bootstrapper modules.
- Added CoreMultiPointerQueue.
- Added queue support for serializers.
- Added CoreInterlockedEnumFlags as helper to use enums with Interlocked.
- Added CoreObserverFactory.
- Included similar information to CoreMicrosoftExtensionsLoggingTarget as for other logging targets.
- Minor optimizations for the regular CoreQueue.
- Updated NuGet package references.
## v7.3.0
- Added support for .net 9.
- Updated NuGet package references.
- Fixed bug in CoreLogger (Microsoft.Extensions.Logging) ignoring late changes to ICoreLoggingCategoryNameSubstitutionRegistry.
- Added serializer for System.Text.Json (FormatName: JSON/TEXT).
- Added extension method for easier integration of bootstrapper modules when using Microsoft.Extensions.Hosting.
## v7.2.1
- Fixed CoreCustomModelBinderProvider to handle complex types only.
- Fixed CoreMicrosoftExtensionsAspNetCoreMvcHelper to enlist instances of CoreCustomModelBinderProvider at a later position in the sequence of model binder providers but before ComplexTypeModelBinderProvider.
- Updated ValueConverterChain to provide the target type(s) to the value converters of the chain.
- Updated NuGet package references.
## v7.2.0
- Added support for asynchronous events using ICoreEventFactory.
- Refactored CoreRuntimeInformation to support OS-platforms WEBASSEMBLY, WASM, WASI and BROWSER.
- Refactored ICoreAsyncObservable.SubscribeAsync to return ValueTask&lt;IAsyncDisposable&gt;.
- Updated NuGet package references.
## v7.1.0
- Removed CoreTplThreadPool and CoreTplTaskScheduler.
- Moved CoreHashCode from Framework.Core to Framework.Core.Interfaces.
- Added missing NotNullIfNotNullAttribute to CoreEnumerableExtensions.AsCollection.
## v7.0.1
- Maintenance release
## v7.0.0
- Initial Release</releaseNotes>
    <copyright>Copyright © equadrat 2004 - 2026</copyright>
    <tags>equadrat framework core protobuf serializer</tags>
    <repository type="git" url="https://git.equadrat.net/equadrat-oss/Framework.Core" branch="refs/heads/test" commit="7a9a6e2e8b496bd8c24e852f41106d33867c7d8d" />
    <dependencies>
      <group targetFramework="net5.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net6.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net7.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net8.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net9.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework="net10.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework=".NETStandard2.0">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Bcl.AsyncInterfaces" version="10.0.2" exclude="Build,Analyzers" />
        <dependency id="Microsoft.Bcl.HashCode" version="6.0.0" exclude="Build,Analyzers" />
        <dependency id="System.Buffers" version="4.6.1" exclude="Build,Analyzers" />
        <dependency id="System.Memory" version="4.6.3" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
      <group targetFramework=".NETStandard2.1">
        <dependency id="equadrat.Framework.Core.Interfaces" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="equadrat.Framework.Core" version="8.3.2-prerelease-00067" exclude="Build,Analyzers" />
        <dependency id="protobuf-net" version="3.2.56" exclude="Build,Analyzers" />
      </group>
    </dependencies>
  </metadata>
</package>