mirror of
https://github.com/xavo95/repak.git
synced 2025-01-18 10:54:38 +00:00
Update README
This commit is contained in:
parent
69e78f4b53
commit
a899b86afe
1 changed files with 26 additions and 1 deletions
27
README.md
27
README.md
|
@ -1,6 +1,16 @@
|
||||||
# repak
|
# repak
|
||||||
|
|
||||||
fork of https://github.com/bananaturtlesandwich/unpak
|
Library and CLI tool for working with Unreal Engine .pak files.
|
||||||
|
|
||||||
|
- Supports reading and writing a wide range of versions
|
||||||
|
- Easy to use API while providing low level control:
|
||||||
|
- Only parses index initially and reads file data upon request
|
||||||
|
- Can rewrite index in place to perform append or delete operations without rewriting entire pak
|
||||||
|
|
||||||
|
`repak` CLI
|
||||||
|
- Sane handling of mount points: defaults to `../../../` but can be configured via flag
|
||||||
|
- 2x faster unpacking over `UnrealPak`. As much as 30x faster has been observed (on Linux unpacked to ramdisk)
|
||||||
|
- Unpacking is guarded against malicious pak that attempt to write to parent directories
|
||||||
|
|
||||||
## compatibility
|
## compatibility
|
||||||
|
|
||||||
|
@ -27,3 +37,18 @@ fork of https://github.com/bananaturtlesandwich/unpak
|
||||||
|
|
||||||
Supports reading encrypted (both index and/or data) and compressed paks.
|
Supports reading encrypted (both index and/or data) and compressed paks.
|
||||||
Writing does not support compression or encryption yet.
|
Writing does not support compression or encryption yet.
|
||||||
|
|
||||||
|
## notes
|
||||||
|
|
||||||
|
### determinism
|
||||||
|
|
||||||
|
As far as I can tell, the index is not necessarily written deterministically by `UnrealPak`. `repak` uses `BTreeMap` in place of `HashMap` to deterministically write the index and *happens* to rewrite the test paks in the same order, but this more likely than not stops happening on larger pak files.
|
||||||
|
|
||||||
|
### full directory index
|
||||||
|
|
||||||
|
`UnrealPak` includes a directory entry in the full directory index for all parent directories back to the pak root for a given file path regardless of whether those directories contain any files or just other directories. `repak` only includes directories that contain files. So far no functional differences have been observed as a result.
|
||||||
|
|
||||||
|
## acknowledgements
|
||||||
|
- [unpak](https://github.com/bananaturtlesandwich/unpak): original crate featuring read-only pak operations
|
||||||
|
- [rust-u4pak](https://github.com/panzi/rust-u4pak)'s README detailing the pak file layout
|
||||||
|
- [jieyouxu](https://github.com/jieyouxu) for serialization implementation of the significantly more complex V11 index
|
||||||
|
|
Loading…
Reference in a new issue