kfuz2_lib/lib.rs
1// Author : Shtoyan, dkanus
2// Home Repo : https://github.com/InsultingPros/KFRedirectTool
3// License : https://www.gnu.org/licenses/gpl-3.0.en.html
4
5//! [![github]](https://github.com/InsultingPros/KFRedirectTool/tree/main/crates/kfuz2_lib) [![crates-io]](https://crates.io/crates/kfuz2_lib) [![docs-rs]](https://docs.rs/kfuz2_lib)
6//!
7//! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github
8//! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust
9//! [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs
10//!
11//! A Rust library for creating `uz2` redirect files for Killing Floor 1 / Unreal Engine 2.5 games.
12//!
13//! <br>
14//!
15//! ```toml
16//! [dependencies]
17//! kfuz2_lib = "1"
18//! ```
19//!
20//! Compiler support: requires rustc **1.85+**
21//!
22//! ## Features
23//!
24//! - Contains core functionality for compressing-decompressing unreal files.
25//! - [zlib-rs](https://github.com/memorysafety/zlib-rs) is used to achieve much [faster file processing](../../docs/Benchmark.md) compared to all analoges.
26//! - Cross-platform: supports Windows, Linux, and `MacOS`.
27//! - Minimal dependency footprint for lightweight integration.
28//! - Optionally check for default Killing Floor 1 files, and omit them from processing.
29//!
30//! ## Usage
31//!
32//! ```ignore
33//! use kfuz2_lib::helper::try_to_compress;
34//! use kfuz2_lib::types::InputArguments;
35//! let mut input_arguments = InputArguments {
36//! input_path: path_to_unreal_file,
37//! output_path: path_to_desired_output_directory,
38//! log_level: kfuz2_lib::types::LogLevel::Default,
39//! ignore_kf_files: true,
40//! };
41//! try_to_compress(&mut input_arguments)?;
42//! ```
43//!
44//! ## Acknowledgments
45//!
46//! - UZ2 package documentation - [UZ2 File Format](https://wiki.beyondunreal.com/UZ2_file#File_format) / [UT Package File Format v 1.6](https://archive.org/details/ut-package-file-format).
47//! - Inspirations - [tinyuz2](https://unrealadmin.org/forums/showthread.php?t=10192) ([elmuerte](https://github.com/elmuerte)) and [uzLib](https://unrealadmin.org/forums/showthread.php?p=172927) ([Mc.Gugi](https://unrealadmin.org/forums/member.php?u=17138)). Not used directly, but were very helpful.
48
49pub mod compressor;
50pub mod constants;
51pub mod decompressor;
52pub mod errors;
53pub mod helper;
54pub mod types;