JustCRC32C 1.0.1

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

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

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.3, OS=Windows 10 (10.0.19044.2364/21H2/November2021Update)
AMD Ryzen 5 5600X, 1 CPU, 12 logical and 6 physical cores
.NET SDK=6.0.402
  [Host]     : .NET 6.0.12 (6.0.1222.56807), X64 RyuJIT AVX2
  Job-BYMXXN : .NET 6.0.12 (6.0.1222.56807), X64 RyuJIT AVX2

Runtime=.NET 6.0  RunStrategy=Throughput  
Method Arrays Mean Error StdDev Ratio RatioSD
JustCrc32C_HardwareX64 big a(...)ytes) [41] 330,226.069 μs 5,736.6919 μs 4,790.3975 μs 1.00 0.00
JustCrc32C_Hardware big a(...)ytes) [41] 629,052.193 μs 9,892.7473 μs 9,253.6820 μs 1.90 0.05
JustCrc32C_Software big a(...)ytes) [41] 1,668,792.867 μs 22,200.8505 μs 20,766.6893 μs 5.04 0.11
Crc32_dot_NET big a(...)ytes) [41] 1,671,624.007 μs 15,321.7433 μs 14,331.9682 μs 5.05 0.09
JustCrc32C_HardwareX64 mediu(...)ytes) [44] 26,340.056 μs 430.1118 μs 402.3269 μs 1.00 0.00
JustCrc32C_Hardware mediu(...)ytes) [44] 50,136.805 μs 807.4380 μs 674.2473 μs 1.91 0.05
JustCrc32C_Software mediu(...)ytes) [44] 133,309.879 μs 1,613.7295 μs 1,430.5292 μs 5.07 0.10
Crc32_dot_NET mediu(...)ytes) [44] 133,926.738 μs 1,478.0324 μs 1,382.5524 μs 5.09 0.11
JustCrc32C_HardwareX64 small(...)ytes) [37] 248.442 μs 4.0474 μs 3.7860 μs 1.00 0.00
JustCrc32C_Hardware small(...)ytes) [37] 493.948 μs 7.9443 μs 7.4311 μs 1.99 0.03
JustCrc32C_Software small(...)ytes) [37] 1,327.410 μs 13.9663 μs 13.0641 μs 5.34 0.10
Crc32_dot_NET small(...)ytes) [37] 1,336.333 μs 20.3987 μs 19.0809 μs 5.38 0.12
JustCrc32C_HardwareX64 small(...)ytes) [49] 2,592.696 μs 32.4776 μs 30.3796 μs 1.00 0.00
JustCrc32C_Hardware small(...)ytes) [49] 5,028.597 μs 86.9979 μs 81.3779 μs 1.94 0.03
JustCrc32C_Software small(...)ytes) [49] 13,351.273 μs 180.4138 μs 159.9322 μs 5.15 0.08
Crc32_dot_NET small(...)ytes) [49] 13,440.784 μs 154.0398 μs 144.0889 μs 5.18 0.08
JustCrc32C_HardwareX64 small(...)ytes) [38] 24.800 μs 0.3488 μs 0.3263 μs 1.00 0.00
JustCrc32C_Hardware small(...)ytes) [38] 50.105 μs 0.4064 μs 0.3801 μs 2.02 0.03
JustCrc32C_Software small(...)ytes) [38] 132.803 μs 1.1026 μs 1.0314 μs 5.36 0.09
Crc32_dot_NET small(...)ytes) [38] 133.919 μs 1.2902 μs 1.0774 μs 5.41 0.07
JustCrc32C_HardwareX64 tiny (...)ytes) [27] 2.335 μs 0.0301 μs 0.0282 μs 1.00 0.00
JustCrc32C_Hardware tiny (...)ytes) [27] 4.284 μs 0.0621 μs 0.0581 μs 1.83 0.03
JustCrc32C_Software tiny (...)ytes) [27] 16.036 μs 0.2534 μs 0.2370 μs 6.87 0.14
Crc32_dot_NET tiny (...)ytes) [27] 16.510 μs 0.1651 μs 0.1544 μs 7.07 0.12
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 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. 
.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.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on JustCRC32C:

Package Downloads
TonSdk.Core

Core library with types and structures for TON Blockchain

TonSdk.Connect

Library that allows to interact with Ton Connect 2.0

Qwer.TonSdk.Core

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 5,293 7/29/2023
1.1.0 23,931 6/24/2023
1.0.2 180 6/23/2023
1.0.1 328 1/22/2023
1.0.0 331 1/7/2023