Physis is a library for reading and writing FFXIV data. It knows how to read many of the game's formats, and can even write some of them too.
All game versions are supported, including the benchmarks. Support for other platforms like the PS3 is somewhat available.
Physis compiles and runs on all major platforms including Windows, macOS, Linux and WebAssembly.
Physis exposes its API in a few different languages:
If you want to use Physis in your Rust project, you can simply add it as a dependency in Cargo.toml:
[dependencies]
physis = "0.5"Documentation is available online at docs.xiv.zone. It's automatically updated as new commits are pushed to the main branch.
Physis already provides a high-level, unstructured Excel API. For something even easier to use, see Icarus which is generated from EXDSchema.
C and C++ projects (or any compatible language through FFI) can use libphysis.
You need to set up Rust and then run cargo build. Although Physis is a library, we have a few examples you can run.
Feel free to submit patches to help fix bugs or add functionality. Filing issues is appreciated, but I do this in my free time so please don't expect professional support.
See CONTRIBUTING for more information about contributing back to the project!
- ironworks for inspiration and reference
- goatcorp (XIVQuickLauncher, docs.xiv.dev, and even more)
- Ioncannon (FFXIV Data Explorer) for initially documenting the file formats
- binrw team for the awesome Rust library that powers our parsing!
- sha1-smol for a dependency-free SHA1 implementation
- FFXIVTools for it's Havok parsing implementation
- texture2ddecoder for it's BCn texture decoding functions.
And everyone else who writes FFXIV tools!
This project is licensed under the GNU General Public License 3. Some parts of the code or assets may be licensed differently, refer to the REUSE metadata.
