Skip to content

Ryan-rsm-McKenzie/bsa-rs

Repository files navigation

Overview

ba2 is a DOM-based reader/writer for archives made for the Creation Engine games. It includes near-complete support for all archive variants from Morrowind up to Starfield. ba2 leverages mem-mapped i/o to cut down on the memory bloat typically associated with DOM-based approaches. It is a Rust port of the equivalent C++ library.

The latest development docs are available at: https://ryan-rsm-mckenzie.github.io/bsa-rs/ba2/index.html

The stable release docs are available at: https://docs.rs/ba2/latest/ba2/

Changelogs are available at: https://github.com/Ryan-rsm-McKenzie/bsa-rs/releases

Maturity

ba2 is not nearly as mature as its C++ cousin, however it does leverage the C++ test suite, and as such it manages to stand head and shoulders above existing solutions in terms of correctness of implementation. Tests are written directly in the source code, instead of being kept separately. See here, here, and here for the majority of the written tests.

Release Schedule

Being an implementation of a relatively static archive file format, ba2 has no set release schedule. However updates will be published sporadically as bug fixes are made, new features are added, and especially when new game releases necessitate support.

Contributing

Contributions are generally welcome, however I would appreciate if contributions were discussed beforehand using Github issues, before any code is written.