Skip to content

Latest commit

 

History

History

unreal_pak

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

unreal_pak

Documentation Crates.io Build status License: MIT

Library crate for working with Unreal Engine .pak files.

Features

This crates support reading and writing most Unreal Engine .pak files.

There are multiple APIs available to fit your use case.

  • PakReader for lazily reading large (multiple GB) .pak files. This reader only parses the relatively small index when loading a file and single entries can then be extarcted or all entries can be lazily read via in iterator based API.
  • PakWriter for incrementally writing large .pak files.
  • PakMemory which is an entirely in-memory representation of a .pak file which allows arbitrary entries to be modified/added/removed. A file on disk can be loaded as a PakMemory or an empty one can be created. Once finsihed it can be writtin to disk all at once.

Documentation

Crate documentation is published to docs.rs/unreal_pak.

Usage

The crate can be added to a Rust project as a dependency by running the command cargo add unreal_pak.

Compatibility

UE Version Version Version Feature Read Write
1 Initial
4.0-4.2 2 NoTimestamps ✔️ ✔️
4.3-4.15 3 CompressionEncryption ✔️ ✔️
4.16-4.19 4 IndexEncryption ✔️ ✔️
4.20 5 RelativeChunkOffsets ✔️ ✔️
6 DeleteRecords
4.21 7 EncryptionKeyGuid ✔️ ✔️
4.22 8A FNameBasedCompression
4.23-4.24 8B FNameBasedCompression ✔️ ✔️
4.25 9 FrozenIndex ✔️ ✔️
10 PathHashIndex
4.26-4.27 11 Fnv64BugFix ✔️
Feature Read Write
Compression (Zlib) ✔️ ✔️
Encrypted Index
Encrypted Data

Missing feature for your use case?

This crate was originally developed for use within unrealmodding and therefore does not support every feature of .pak files. If you are looking to use this crate for your project but need a currently unsupported feature please open an Issue/PR and we will try to help you.

Examples

An example use of the crate can be found in the unreal_pak_cli tool source.