#extract #archive #multi-threading #command-line #renpy

bin+lib unrpa_rs

A multithreaded CLI program and library to extract RenPy archives (RPAs)

3 unstable releases

0.4.1 Feb 20, 2022
0.4.0 Oct 22, 2021
0.3.0 Jul 24, 2020
0.2.1 Jul 6, 2020
0.1.1 Jun 28, 2020

#115 in #multi-threading

Apache-2.0

28KB
522 lines

unrpa_rs

Pipeline Status Latest Version Documentation License

A multithreaded command line program and library to extract RenPy archives (RPAs), written in Rust. This implements extracting assets, such as scripts, videos, images, etc. that have been bundled in the RPA format.

When given a list of RPA files, unrpa_rs will extract those archives in parallel on a threadpool.

Features

  • Multithreaded extraction of RPAs on a per-file basis
  • Fast IO backed by memory maps
  • Supported RPA versions:
    • RPA_v3.2
    • RPA_v3
    • RPA_v2

Disclaimer

Use this tool only on archives on which the authors allow modification or extraction. The unauthorized use is highly discouraged since this poses most likely a license violation.

Installation

From source with cargo

A recent Rust toolchain has to be installed. Then just enter cargo install --locked -f unrpa_rs to install the binary.

Credits

This tool has been ported to Rust from the rpatool repo, originally written in Python. Thanks to the authors for sharing their work! I am aware that the rpatool offers more functionality since it also allows packaging files in the RPA format. However, I am currently not interested in implementing that.

License

Licensed under the Apache License.

Dependencies

~10–17MB
~194K SLoC