3 unstable releases

0.2.1 Aug 16, 2023
0.2.0 Jun 27, 2023
0.1.0 Jun 23, 2023

#404 in Compression

Download history 12/week @ 2024-04-10 22/week @ 2024-04-17 33/week @ 2024-04-24 14/week @ 2024-05-01 85/week @ 2024-05-08 27/week @ 2024-05-15 22/week @ 2024-05-22 25/week @ 2024-05-29 13/week @ 2024-06-05 23/week @ 2024-06-12 14/week @ 2024-06-19 9/week @ 2024-06-26 31/week @ 2024-07-03 19/week @ 2024-07-10 14/week @ 2024-07-17 21/week @ 2024-07-24

86 downloads per month
Used in 2 crates

GPL-3.0 license

14KB
260 lines

bsatool_rs

crates.io cli crates.io lib

A rust implementation of the openmw bsatool.

Note: Currently this project only supports BSA files compatible with TES III: Morrowind.

Install

The easiest way right now is to install with cargo:

cargo install bsatool_rs

Library

There is also a library option for manipulating BSAs from other rust code available on crates.io and can be added to a project with:

cargo add bsatoollib

Example Usage

use bsatoollib as bsa;

// open an existing BSA file
let bsa = bsa::BSAFile::new("SomeFile.BSA").unwrap();

// print all file names in the BSA
for file in bsa.get_list().iter() {
    println!(file.name);
}

Command line options

> bsatool_rs --help
A tool for working with BSA files

Usage: bsatool_rs <FILE> <COMMAND>

Commands:
  list         List the files presents in the given BSA file
  extract      Extract a file from the given BSA file
  extract-all  Extract all files from the given BSA file
  create       Create a new BSA file with given files for archiving
  help         Print this message or the help of the given subcommand(s)

Arguments:
  <FILE>  BSA file to use

Options:
  -h, --help     Print help
  -V, --version  Print version

Licensing

Since bsatool_rs is derivative work of OpenMW's bsatool, it is released under the same license as the openmw code.


lib.rs:

A simple library to using Bethesda BSA files.

Usage

use bsatoollib as bsa;

// open an existing BSA file
let bsa = bsa::BSAFile::new("SomeFile.BSA").unwrap();

// print all file names in the BSA
for file in bsa.get_list().iter() {
    println!(file.name);
}

Dependencies

~295–760KB
~18K SLoC