Void.Packer 1.0.1

dotnet add package Void.Packer --version 1.0.1
                    
NuGet\Install-Package Void.Packer -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="Void.Packer" Version="1.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Void.Packer" Version="1.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Void.Packer" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Void.Packer --version 1.0.1
                    
#r "nuget: Void.Packer, 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.
#:package Void.Packer@1.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Void.Packer&version=1.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Void.Packer&version=1.0.1
                    
Install as a Cake Tool

Void.Packer

Asset packing library for VOID Engine with authenticated encryption, compression, integrity verification, streaming reads, and incremental updates.

License: MIT NuGet .NET

Install

dotnet add package Void.Packer

What It Does

Void.Packer packages game assets into SolidPack archives designed for practical runtime use.

It supports authenticated encryption, compression, integrity checks, streaming reads, and updating existing packs without requiring the rest of VOID Engine.

The pack system is intended to make casual extraction and unauthorized reuse more difficult while maintaining practical runtime access.

No client-side asset format can make shipped assets impossible for a determined attacker to recover.

Features

  • AES-GCM authenticated encryption
  • separate handling for pack metadata and file data
  • per-file integrity verification
  • adaptive compression
  • configurable chunked encryption
  • stream-based reads from disk
  • incremental pack updates
  • multiple-pack output when file limits require splitting
  • non-throwing TryLoadPack helpers
  • concurrent read support

High-Level API

Packer provides helpers for common archive operations:

  • Pack(...)
  • Unpack(...)
  • Verify(...)
  • ListFiles(...)
  • Update(...)
  • TryLoadPack(...)

Create a pack

using Void.Packer;

var files = new[]
{
    new PackFile
    {
        VirtualPath = "Data/example.txt",
        Data = File.ReadAllBytes("example.txt")
    }
};

var result = Packer.Pack(files);

File.WriteAllBytes("GameAssets.pack", result.Packs[0].Data);

if (result.Packs[0].Key is not null)
    File.WriteAllBytes("GameAssets.key", result.Packs[0].Key);

Load a pack without exceptions

using Void.Packer;

if (!Packer.TryLoadPack("GameAssets.pack", out var reader, out var error))
{
    Console.WriteLine($"Unable to load pack: {error}");
    return;
}

using (reader)
{
    foreach (var path in reader.ListFiles())
        Console.WriteLine(path);
}

When no key is supplied, the reader can detect a matching .key file next to the pack.

Verify pack integrity

byte[] data = File.ReadAllBytes("GameAssets.pack");
bool valid = Packer.Verify(data);

Update an existing pack

var update = Packer.Update(
    File.ReadAllBytes("GameAssets.pack"),
    new[]
    {
        new PackFile
        {
            VirtualPath = "Data/newfile.txt",
            Data = File.ReadAllBytes("newfile.txt")
        }
    },
    filesToRemove: new[] { "Data/oldfile.txt" }
);

CLI

For command-line workflows, install Void.Packer.CLI:

dotnet tool install --global Void.Packer.CLI

Then use:

void-packer build -c Content/ -o Packs/
void-packer verify --pack Packs/GameAssets.pack
void-packer list --pack Packs/GameAssets.pack --detailed
void-packer extract --pack Packs/GameAssets.pack -o Extracted/

See the VOID Wiki and the Void.Packer.CLI package for command-line usage.

Requirements

  • .NET 10

License

MIT. No royalties. No engine fees.

GitHub Repository

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

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Void.Packer:

Package Downloads
Void.Engine

Modular 2D game framework for .NET with pluggable rendering, SDL3 platform support, OpenAL audio, asset management, pathfinding, coroutines, LDtk support, encrypted saving, and post-processing.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.1 77 9/13/2026
1.0.0 133 9/1/2026

1.0.1 refreshes the package documentation and NuGet metadata to accurately describe authenticated encryption, compression, integrity checking, streaming reads, and update behavior. No pack-format breaking changes are introduced by this metadata/documentation release.