Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 1.8 KB

File metadata and controls

57 lines (41 loc) · 1.8 KB

Yaz0 Library

C# managed wrapper and implementations for sYaz0 compression and decompression.

Usage

DLL Loader

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

// 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

// 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

NuGet NuGet

NuGet

Install-Package Yaz0Library

Build From Source

git clone https://github.com/NCF-Library/Yaz0Library.git
dotnet build Yaz0Library

Credit

ArchLeaders: C# oead wrapper (Cead)
exelix: C# Managed Yaz0 implementation.
Léo Lam: oead