GrindCore 0.0.10-alpha
See the version list below for details.
dotnet add package GrindCore --version 0.0.10-alpha
NuGet\Install-Package GrindCore -Version 0.0.10-alpha
<PackageReference Include="GrindCore" Version="0.0.10-alpha" />
<PackageVersion Include="GrindCore" Version="0.0.10-alpha" />
<PackageReference Include="GrindCore" />
paket add GrindCore --version 0.0.10-alpha
#r "nuget: GrindCore, 0.0.10-alpha"
#:package GrindCore@0.0.10-alpha
#addin nuget:?package=GrindCore&version=0.0.10-alpha&prerelease
#tool nuget:?package=GrindCore&version=0.0.10-alpha&prerelease
GrindCore
A compression and hashing library built the System.IO.Compression way... A managed dotnet wrapper around a Native library (GrindCore Native).
Published to nuget as GrindCore and supports multiple platforms.
This library is in the early stages of development. There may be many breaking changes over the following months. Error handling and bounds checking is minimal.
Overview
GrindCore is an innovative library designed to streamline and enhance compression processes in dotnet applications. It aims to tackle prevalent issues such as performance degradation and outdated implementations when native code updates frequently. By unifying multiple C forks into a single, multiplatform library, GrindCore achieves a cohesive and efficient solution.
Core Objectives
The primary goal of GrindCore is to deliver a maintainable compression and hashing solution for dotnet applications. Leveraging the exact method used to build C in the dotnet runtime ensures a robust approach. By preserving precise compression algorithms for key versions, GrindCore guarantees compatibility and reliability for projects requiring byte-perfect output.
Current Features
Supported Frameworks
net9.0;net8.0;net7.0;net6.0;net5.0;netcoreapp3.1;netstandard2.1;netstandard2.0;net48;net47;net46;net45;net40;net35
Compression Streams
All compression streams inherit from a CompressionStream class that provides common features and behaviour.
- Brotli v1.1.0 (From DotNet 9.0)
- Lzma v24.7.0 (From 7Zip-mcmilk)
- Lzma2 v24.7.0 (From 7Zip-mcmilk)
- Fast-Lzma2 v1.0.1 (From 7Zip-mcmilk)
- ZLib v1.3.1 [GZip, ZLib, Deflate] (From DotNet 8.0)
- ZLib-NG v2.2.1 [GZip, ZLib, Deflate] (From DotNet 9.0)
!! The Fast-Lzma2 dotnet interop requires more work, certain configs don't seem correct and streaming is not fully implemented
Hashing
Hashes inherit from HashingAlgorithm allowing them to be use with CryptoStream for standard dotnet use.
- Blake3, Blake2sp
- MD5, MD4, MD2
- SHA1
- SHA2 [SHA256, SHA384, SHA512]
- SHA3 [SHA3-224, SHA3-256, SHA3-384, SHA3-512]
- XXHash [XXH32, XXH64]
Continuous Integration (CI) Status
A comprehensive list of test statuses for various platforms is available below. For a quick summary: GrindCore is being actively tested across major platforms including Linux ARM64, Linux ARM, Linux x64, macOS x64, macOS ARM64, Windows x64, and Windows x86. Windows ARM64 builds, but there is no test platform available.
Detailed Test Status
Platform | Unit Test Status |
---|---|
Linux ARM64 | |
Linux ARM | |
Linux x64 | |
macOS x64 | |
macOS ARM64 | |
Windows x64 | |
Windows x86 | |
Windows ARM64 | Builds, no test platform available |
Key Project Integrations
GrindCore integrates robust solutions from several key projects:
- dotnet Runtime GitHub Repository:
- Provides a foundation with multiplatform C compilation based on CMake and C, ensuring seamless integration across different platforms.
- Supplies zlib/deflate and Brotli from the dotnet 8 code, combined with C# wrappers, to offer efficient and reliable compression algorithms.
- 7zip mcmilk GitHub Repository:
- Contributes a comprehensive suite of hash functions, including SHA-1, SHA-2, SHA-3, MD2, MD4, MD5, and XXHash (32 and 64). More compression and hashing algorithms will be ported, benefiting from a uniform Make project structure that simplifies integration.
Addressing Current Issues
GrindCore is designed to overcome several known complications in the dotnet ecosystem:
- Performance:
- C# ports generally perform slower than native C, although the JIT offers powerful optimization capabilities.
- Up-to-date Implementations:
- Leveraging well-maintained projects like dotnet Runtime and 7zip mcmilk ensures that the C algorithms can be updated easily.
- Cross-Platform Compatibility:
- Through multiplatform C compilation via the dotnet CMake system, GrindCore ensures seamless functionality across different operating systems. The managed layer abstracts this, allowing it to be used as System.IO.Compression would be used.
- Consistency:
- By preserving exact compression algorithms, the library is ideal for projects requiring checksummed output, ensuring consistent data results and reliability.
- Addressing Missing Functionality:
- GrindCore aims to expose additional functionalities not available in other libraries, such as
compress2
from zlib/deflate, providing more options and flexibility for developers.
- GrindCore aims to expose additional functionalities not available in other libraries, such as
Conclusion
GrindCore is on a journey to create a more reliable and efficient compression solution for dotnet. The community's contributions and collaboration are welcomed.
Product | Versions 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. net9.0 is compatible. 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 was computed. 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 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net35 is compatible. net40 is compatible. net403 was computed. net45 is compatible. net451 was computed. net452 was computed. net46 is compatible. net461 was computed. net462 was computed. net463 was computed. net47 is compatible. net471 was computed. net472 was computed. net48 is compatible. 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. |
-
.NETCoreApp 3.1
- No dependencies.
-
.NETFramework 3.5
- No dependencies.
-
.NETFramework 4.0
- No dependencies.
-
.NETFramework 4.5
- No dependencies.
-
.NETFramework 4.6
- No dependencies.
-
.NETFramework 4.7
- No dependencies.
-
.NETFramework 4.8
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- System.Text.Encoding.CodePages (>= 9.0.2)
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on GrindCore:
Package | Downloads |
---|---|
GrindCore.SharpCompress
GrindCore.SharpCompress is an enhanced version of SharpCompress with native compression performance via GrindCore. Supports .NET 9, .NET 8, .NET 6, .NET Standard 2.0, and .NET Framework 4.8+ with native performance for GZip, Deflate, LZMA, ZStandard, LZ4, and Brotli compression. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.4.2 | 127 | 9/6/2025 |
0.4.0 | 186 | 8/23/2025 |
0.3.0 | 244 | 8/20/2025 |
0.2.0 | 227 | 8/18/2025 |
0.1.0 | 257 | 7/19/2025 |
0.0.11-alpha | 98 | 6/7/2025 |
0.0.10-alpha | 161 | 5/8/2025 |
0.0.9-alpha | 105 | 2/23/2025 |
0.0.8-alpha | 121 | 2/10/2025 |
0.0.7-alpha | 91 | 1/8/2025 |
0.0.6-alpha | 107 | 12/23/2024 |
0.0.5-alpha | 182 | 12/17/2024 |
0.0.4-alpha | 103 | 12/16/2024 |
0.0.3-alpha | 105 | 12/16/2024 |
0.0.2-alpha | 110 | 12/16/2024 |
0.0.1-alpha | 103 | 12/16/2024 |