WMA.IOExtensions 2.0.0

dotnet add package WMA.IOExtensions --version 2.0.0                
NuGet\Install-Package WMA.IOExtensions -Version 2.0.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WMA.IOExtensions" Version="2.0.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add WMA.IOExtensions --version 2.0.0                
#r "nuget: WMA.IOExtensions, 2.0.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install WMA.IOExtensions as a Cake Addin
#addin nuget:?package=WMA.IOExtensions&version=2.0.0

// Install WMA.IOExtensions as a Cake Tool
#tool nuget:?package=WMA.IOExtensions&version=2.0.0                

io_extensions

Project contains extensions to standard .net implementation, which provide the following functionalities:

  • MultiContentJsonReader provides reading idepedent json object from stream which is not a valid json array. It can be new line delimited or not delimited at all.

How to use it

Please include the package https://www.nuget.org/packages/WMA.IOExtensions in csproj

then use in the code:

  await foreach(var element in MultiContentJsonReader.DeserializeAsyncEnumerable<TModel>(stream))
  {
    if(element != null)
    {
      #TODO: do something
    }
  }

How to run

run unit tests

dotnet test

run Benchmark.Net

cd WMA.IOExtensions.Test
dotnet run -c Release -- --job short --runtimes net7.0 --filter "*"

Benchmark resukts

  • WMA.IOExtensions.Json namespace
Method Mean Error StdDev Ratio RatioSD Allocated Alloc Ratio
Baseline 182.30 us 191.87 us 10.517 us 1.00 0.00 24.02 KB 1.00
Should_DeserializeAsyncEnumerable 75.92 us 36.34 us 1.992 us 0.42 0.02 11.65 KB 0.49
Should_DeserializeAsync 79.42 us 55.98 us 3.069 us 0.44 0.04 11.61 KB 0.48
Should_DeserializeAsync_NewLine 55.59 us 69.33 us 3.800 us 0.31 0.03 11.61 KB 0.48
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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 is compatible.  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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 337 9/27/2024
1.0.0 208 3/7/2023

Baseline functionalities (check readme)