1 unstable release
0.1.0 | Feb 2, 2023 |
---|
#6 in #unrealengine
68 downloads per month
2KB
unreal_pak
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 aPakMemory
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.