physis/
lib.rs

1// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4//! Crate for reading and writing the file formats used by FFXIV.
5
6extern crate core;
7
8/// Represents a continuous block of memory which is not owned, and comes either from an in-memory location or from a file.
9pub type ByteSpan<'a> = &'a [u8];
10
11/// Represents a continuous block of memory which is owned.
12pub type ByteBuffer = Vec<u8>;
13
14/// Reading and writing game data repositories, such as "ffxiv" and "ex1", and so on.
15pub mod gamedata;
16
17/// Parsing game repositories, such as "ffxiv", "ex1" and their version information.
18pub mod repository;
19
20/// Handling and updating data in the "boot" directory, which contains the launcher files.
21pub mod bootdata;
22
23/// SqPack file formats - including Db, Data and Index/Index2 files.
24pub mod sqpack;
25
26mod compression;
27
28/// Reading model (MDL) files.
29pub mod model;
30
31/// Playable race and genders.
32pub mod race;
33
34/// Reading Excel lists (EXL).
35pub mod exl;
36
37/// Reading equipment and equipment-related data.
38pub mod equipment;
39
40/// Common structures, enumerations and functions used by many modules.
41pub mod common;
42
43/// Methods for installing game and boot patches.
44pub mod patch;
45
46/// Implementation of the Blowfish ECB block cipher used by the retail client. It's used to encrypt arguments in the launcher, to prevent login token snooping.
47pub mod blowfish;
48
49/// Reading Excel header files (EXH).
50pub mod exh;
51
52/// Reading Excel data files (EXD).
53pub mod exd;
54
55/// Reading Havok XML sidecar files.
56pub mod skeleton;
57
58/// Reading file info files (FIIN).
59pub mod fiin;
60
61/// Reading textures (TEX).
62pub mod tex;
63
64/// Reading material files (MTRL)
65pub mod mtrl;
66
67/// Reading shader packages (SHPK)
68pub mod shpk;
69
70/// Reading character parameter files (CMP)
71pub mod cmp;
72
73/// Reading and writing various saved data formats from the game.
74pub mod savedata;
75
76/// Reading and writing the plaintext config files (CFG) used by the game to store most of it's configuration.
77pub mod cfg;
78
79mod havok;
80
81/// Reading bone deform matrices.
82pub mod pbd;
83
84mod crc;
85mod sha1;
86
87/// Reading layer information for a map (LGB)
88pub mod layer;
89
90pub mod tera;
91
92mod common_file_operations;
93
94/// Reading word dictionaries, such as the vulgar word list.
95pub mod dic;
96
97#[doc(hidden)]
98pub const PHYSIS_VERSION: &str = env!("CARGO_PKG_VERSION");
99
100/// Reading ULD files
101pub mod uld;
102
103/// Reading SGB files
104pub mod sgb;
105
106/// Reading SCD files
107pub mod scd;
108
109/// Reading HWC files
110pub mod hwc;
111
112/// Reading IWC files
113pub mod iwc;
114
115/// Reading TMB files
116pub mod tmb;
117
118/// Reading SKP files
119pub mod skp;
120
121/// Reading SCHD files
122pub mod schd;
123
124/// Reading PHYB files
125pub mod phyb;
126
127/// Reading PAP files
128pub mod pap;
129
130/// Reading AVFX files
131pub mod avfx;
132
133/// Reading STM files
134pub mod stm;
135
136/// Reading patch lists
137pub mod patchlist;
138
139mod bcn;
140
141mod error;
142pub use error::Error;