C# managed wrapper and implementations for sYaz0 compression and decompression.
Yaz0Library uses unmanaged libraries that need to be extracted, this is only done once per user, but can cause issues if it's used with parallel code and not previously extracted.
To fix any possible issues, run Yaz0Helper.LoadDlls()
before any parallel code runs (preferably at the start of the programs Main
function).
// Compress a file
Span<byte> compressed = Yaz0.Compress("path/to/uncompressed_file.bin", out Yaz0SafeHandle handle);
// Compress a byte[]
byte[] uncompressed = sarc["path/to/uncompressed_file.bin"];
Span<byte> compressed = Yaz0.Compress(uncompressed, out Yaz0SafeHandle handle);
// Decompress a file
Span<byte> decompressed = Yaz0.Decmpress("path/to/compressed_file.sbin");
// Decompress a byte[]
byte[] compressed = sarc["path/to/compressed_file.sbin"];
Span<byte> decompressed = Yaz0.Decompress(compressed);
Install-Package Yaz0Library
git clone https://github.com/NCF-Library/Yaz0Library.git
dotnet build Yaz0Library
ArchLeaders: C# oead wrapper (Cead)
exelix: C# Managed Yaz0 implementation.
Léo Lam: oead