JustCRC32C 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package JustCRC32C --version 1.0.2
NuGet\Install-Package JustCRC32C -Version 1.0.2
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="JustCRC32C" Version="1.0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add JustCRC32C --version 1.0.2
#r "nuget: JustCRC32C, 1.0.2"
#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 JustCRC32C as a Cake Addin
#addin nuget:?package=JustCRC32C&version=1.0.2

// Install JustCRC32C as a Cake Tool
#tool nuget:?package=JustCRC32C&version=1.0.2

Just-CRC32C

License: LGPL nuget

Just a simple and fast CRC32C Wrapper with hardware acceleration.

The library overall is licensed under LGPLv3, so you can use it in a propriatary project, as long as you do not change the library itsef!

Software-fallback is taken from: here and Licensed under MIT License and improved by a tiny bit.

Benchmark results:


BenchmarkDotNet=v0.13.5, OS=Windows 10 (10.0.19045.3086/22H2/2022Update)
AMD Ryzen 5 5600X, 1 CPU, 12 logical and 6 physical cores
.NET SDK=8.0.100-preview.1.23115.2
  [Host]     : .NET 6.0.18 (6.0.1823.26907), X64 RyuJIT AVX2
  Job-LBWJTK : .NET 8.0.0 (8.0.23.11008), X64 RyuJIT AVX2

Runtime=.NET 8.0  RunStrategy=Throughput  

Method Arrays Mean Error StdDev Median Ratio RatioSD
JustCrc32C_HardwareX64 big a(...)ytes) [41] 318,356.546 μs 959.0297 μs 748.7473 μs 318,351.500 μs 1.00 0.00
JustCrc32C_Hardware big a(...)ytes) [41] 614,984.617 μs 1,256.5669 μs 981.0448 μs 614,961.000 μs 1.93 0.01
JustCrc32C_Software big a(...)ytes) [41] 1,203,940.725 μs 8,988.4146 μs 7,017.5629 μs 1,201,179.900 μs 3.78 0.03
Crc32_dot_NET big a(...)ytes) [41] 1,404,042.087 μs 8,606.4555 μs 8,050.4838 μs 1,403,310.000 μs 4.41 0.03
JustCrc32C_HardwareX64 mediu(...)ytes) [44] 25,509.060 μs 308.8947 μs 288.9403 μs 25,313.297 μs 1.00 0.00
JustCrc32C_Hardware mediu(...)ytes) [44] 48,946.426 μs 47.9768 μs 40.0628 μs 48,952.936 μs 1.92 0.02
JustCrc32C_Software mediu(...)ytes) [44] 96,605.061 μs 1,044.4672 μs 925.8930 μs 96,954.150 μs 3.79 0.05
Crc32_dot_NET mediu(...)ytes) [44] 112,126.815 μs 1,285.5934 μs 1,202.5449 μs 111,274.080 μs 4.40 0.07
JustCrc32C_HardwareX64 small(...)ytes) [37] 243.729 μs 0.2736 μs 0.2285 μs 243.614 μs 1.00 0.00
JustCrc32C_Hardware small(...)ytes) [37] 486.916 μs 0.5105 μs 0.4263 μs 486.761 μs 2.00 0.00
JustCrc32C_Software small(...)ytes) [37] 961.411 μs 4.4316 μs 4.1454 μs 961.110 μs 3.94 0.02
Crc32_dot_NET small(...)ytes) [37] 1,121.784 μs 10.2630 μs 9.6001 μs 1,121.731 μs 4.60 0.04
JustCrc32C_HardwareX64 small(...)ytes) [49] 2,519.386 μs 28.7737 μs 26.9149 μs 2,502.841 μs 1.00 0.00
JustCrc32C_Hardware small(...)ytes) [49] 4,980.498 μs 89.1571 μs 83.3976 μs 4,947.656 μs 1.98 0.05
JustCrc32C_Software small(...)ytes) [49] 9,880.705 μs 194.7273 μs 182.1480 μs 9,932.087 μs 3.92 0.09
Crc32_dot_NET small(...)ytes) [49] 11,428.893 μs 227.2975 μs 287.4585 μs 11,432.837 μs 4.53 0.13
JustCrc32C_HardwareX64 small(...)ytes) [38] 24.642 μs 0.4474 μs 0.4185 μs 24.575 μs 1.00 0.00
JustCrc32C_Hardware small(...)ytes) [38] 49.555 μs 0.9786 μs 1.1269 μs 49.009 μs 2.02 0.06
JustCrc32C_Software small(...)ytes) [38] 99.483 μs 1.9473 μs 2.9147 μs 100.555 μs 4.07 0.14
Crc32_dot_NET small(...)ytes) [38] 113.458 μs 2.2429 μs 3.4919 μs 111.205 μs 4.64 0.16
JustCrc32C_HardwareX64 tiny (...)ytes) [27] 1.903 μs 0.0293 μs 0.0274 μs 1.911 μs 1.00 0.00
JustCrc32C_Hardware tiny (...)ytes) [27] 3.530 μs 0.0283 μs 0.0265 μs 3.518 μs 1.86 0.04
JustCrc32C_Software tiny (...)ytes) [27] 11.966 μs 0.2357 μs 0.2205 μs 11.943 μs 6.29 0.14
Crc32_dot_NET tiny (...)ytes) [27] 13.929 μs 0.1878 μs 0.1757 μs 13.931 μs 7.32 0.13
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  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. 
.NET Core netcoreapp3.1 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 3.1

    • No dependencies.
  • net5.0

    • No dependencies.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on JustCRC32C:

Package Downloads
TonSdk.Core

Core library with types and structures for TON Blockchain

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 774 7/29/2023
1.1.0 3,869 6/24/2023
1.0.2 137 6/23/2023
1.0.1 294 1/22/2023
1.0.0 297 1/7/2023