SarcLibrary 3.1.0

dotnet add package SarcLibrary --version 3.1.0
NuGet\Install-Package SarcLibrary -Version 3.1.0
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="SarcLibrary" Version="3.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SarcLibrary --version 3.1.0
#r "nuget: SarcLibrary, 3.1.0"
#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 SarcLibrary as a Cake Addin
#addin nuget:?package=SarcLibrary&version=3.1.0

// Install SarcLibrary as a Cake Tool
#tool nuget:?package=SarcLibrary&version=3.1.0

Sarc Library

Modern SEAD/SEPD archive reader written in managed C#

Usage

Reading a Sarc File

byte[] data = File.ReadAllBytes("content/Pack/Bootup.pack");
Sarc sarc = Sarc.FromBinary(data);

Writing a Sarc File

/* ... */

using MemoryStream ms = new();
sarc.Write(ms);

Benchmarks

Function Elapsed Allocated
Read TitleBG (143MB, LE) 12.12 us 64.62 KB
Read TitleBG (75MB, BE) 12.04 us 64.73 KB
Write TitleBG (143MB, LE) 12.39 ms 12 B
Write TitleBG (75MB, BE) 6.59 ms 1 B
Read TitleBG (Immutable) (143MB, LE) 16.61 ns -
Read TitleBG (Immutable) (75MB, BE) 16.27 ns -

Install

NuGet NuGet

NuGet
Install-Package SarcLibrary
Build From Source
git clone https://github.com/EPD-Libraries/SarcLibrary.git
dotnet build SarcLibrary

Special thanks to Léo Lam for his extensive research on EPD file formats.

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on SarcLibrary:

Package Downloads
Totk.Common

Simple primitives library for common TotK operations

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.1.0 100 3/15/2024
3.0.4 237 1/26/2024
3.0.3 82 1/19/2024
3.0.2 96 1/16/2024
3.0.1 80 1/16/2024
3.0.0 156 12/13/2023
2.0.2 561 12/31/2022
2.0.1 265 12/30/2022
2.0.0 268 12/22/2022
1.0.6 439 8/18/2022
1.0.5 437 6/20/2022
1.0.4 403 6/16/2022
1.0.3 396 6/8/2022
1.0.1 387 6/5/2022
1.0.0 389 6/5/2022