[package]
edition = "2024"
rust-version = "1.85"
name = "maclarian"
version = "0.1.3"
authors = ["CyberDeco"]
build = false
exclude = [
".ipynb_checkpoints/",
".DS_Store",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Larian file format library for Baldur's Gate 3 - PAK, LSF, LSX, GR2, DDS, and more"
homepage = "https://github.com/CyberDeco/MacPak"
documentation = "https://docs.rs/maclarian"
readme = "README.md"
keywords = [
"bg3",
"baldurs-gate-3",
"pak",
"gr2",
"bitknit",
]
categories = [
"development-tools",
"encoding",
"game-development",
"parser-implementations",
]
license = "PolyForm-Noncommercial-1.0.0"
repository = "https://github.com/CyberDeco/MacPak/tree/main/MacLarian"
resolver = "2"
[features]
cli = [
"dep:clap",
"dep:tracing-subscriber",
"dep:indicatif",
"dep:console",
]
default = ["cli"]
[lib]
name = "maclarian"
path = "src/lib.rs"
[[bin]]
name = "maclarian"
path = "src/bin/maclarian.rs"
required-features = ["cli"]
[dependencies.anyhow]
version = "1.0"
[dependencies.base64]
version = "0.22"
[dependencies.bcdec_rs]
version = "0.2"
[dependencies.bytemuck]
version = "1.14"
features = ["derive"]
[dependencies.byteorder]
version = "1.5"
[dependencies.chrono]
version = "0.4"
[dependencies.clap]
version = "4.4"
features = [
"derive",
"cargo",
]
optional = true
[dependencies.console]
version = "0.15"
optional = true
[dependencies.crc32fast]
version = "1.4"
[dependencies.ddsfile]
version = "0.5.2"
[dependencies.fastlz-rs]
version = "0.0.3"
[dependencies.flate2]
version = "1.0"
[dependencies.glam]
version = "0.27"
[dependencies.glob]
version = "0.3"
[dependencies.gltf]
version = "1.4.1"
features = ["extensions"]
[dependencies.half]
version = "2.6"
features = [
"bytemuck",
"serde",
]
[dependencies.image]
version = "0.25"
features = ["png"]
default-features = false
[dependencies.indexmap]
version = "2.0"
features = ["serde"]
[dependencies.indicatif]
version = "0.17"
optional = true
[dependencies.lz4_flex]
version = "0.11"
[dependencies.md5]
version = "0.7"
[dependencies.quick-xml]
version = "0.31"
features = ["serialize"]
[dependencies.rayon]
version = "1.10"
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
features = ["preserve_order"]
[dependencies.sevenz-rust]
version = "0.6"
[dependencies.shellexpand]
version = "3.1"
[dependencies.tempfile]
version = "3.14"
[dependencies.thiserror]
version = "1.0"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
optional = true
[dependencies.uuid]
version = "1.0"
features = ["v4"]
[dependencies.walkdir]
version = "2.4"
[dependencies.zip]
version = "2.1"
features = [
"deflate",
"time",
]
default-features = false
[dev-dependencies.pretty_assertions]
version = "1.4"
[dev-dependencies.tracing-subscriber]
version = "0.3"
[lints.clippy]
all = "deny"
complexity = "deny"
pedantic = "deny"
perf = "deny"
style = "deny"
suspicious = "deny"
[lints.clippy.case-sensitive-file-extension-comparisons]
level = "allow"
priority = 1
[lints.clippy.cast-lossless]
level = "allow"
priority = 1
[lints.clippy.cast-possible-truncation]
level = "allow"
priority = 1
[lints.clippy.cast-possible-wrap]
level = "allow"
priority = 1
[lints.clippy.cast-precision-loss]
level = "allow"
priority = 1
[lints.clippy.cast-sign-loss]
level = "allow"
priority = 1
[lints.clippy.fn-params-excessive-bools]
level = "allow"
priority = 1
[lints.clippy.if-not-else]
level = "allow"
priority = 1
[lints.clippy.many-single-char-names]
level = "allow"
priority = 1
[lints.clippy.match-same-arms]
level = "allow"
priority = 1
[lints.clippy.multiple-crate-versions]
level = "allow"
priority = 1
[lints.clippy.similar-names]
level = "allow"
priority = 1
[lints.clippy.struct-excessive-bools]
level = "allow"
priority = 1
[lints.clippy.too-many-arguments]
level = "allow"
priority = 1
[lints.clippy.too-many-lines]
level = "allow"
priority = 1
[lints.clippy.unnecessary-wraps]
level = "allow"
priority = 1
[lints.clippy.unreadable-literal]
level = "allow"
priority = 1
[lints.clippy.unused-self]
level = "allow"
priority = 1
[lints.rust]
unsafe_code = "forbid"