Rust library and CLI tool for browsing, loading, and exporting game data of Final Fantasy XIV.
xivtool help
use std::sync::Arc;
use xiv::{sqpack::SqPack, ex, structs};
// open sqpack repo
let repo: Arc<SqPack> = SqPack::open("/path/to/ffxiv/sqpack").unwrap();
// load exd file using serde struct
let races: Vec<structs::Race>
= ex::read_exd(repo.clone(), "Race", ex::Locale::English)
.unwrap()
.map(Result::unwrap)
.collect();
println!("{:#?}", races);
// load exd file using generic dynamically typed record type
let items: Vec<ex::Row> =
ex::read_exd(repo.clone(), "Item", ex::Locale::English)
.unwrap()
.map(Result::unwrap)
.collect();
println!("{:?}", items.first());
- SqPack repository
- Lazy index loading
- Find file by name
- Read file
- Client database (.exd files)
- Dynamically typed Row type
- Map to custom structs using Serde
- Export to CSV
- Textures (.tex files)
- Export to PNG, JPG, TGA using image-rs
- Export to KTX2
- Models (.mdl files)
- Export to glTF
- Animations