[package]
name = "thunderstore-engine"
version = "0.3.0"
edition = "2024"
description = "Game-agnostic Thunderstore engine: API client, caching, dependency resolution, zip extraction, and schema-driven mod-loader install rules"
authors = ["Endoze <endoze@endozemedia.com>"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/endoze/thunderstore-engine"
documentation = "https://docs.rs/thunderstore-engine"
homepage = "https://github.com/endoze/thunderstore-engine"
rust-version = "1.94.0"
categories = ["game-development", "api-bindings"]
keywords = ["thunderstore", "mod", "manager", "bepinex", "modding"]
exclude = [
".github/",
"dist-workspace.toml",
"cliff.toml",
"tarpaulin.toml",
"rustfmt.toml",
]
[lib]
name = "thunderstore_engine"
path = "src/lib.rs"
[dependencies]
chrono = "0.4.45"
crc32fast = "1.5"
futures = "0.3.32"
reqwest = { version = "0.13.4", features = ["json", "stream"], default-features = false }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
time = { version = "0.3.51", features = ["serde-well-known"] }
tokio = { version = "1.32", features = ["full"] }
tracing = "0.1.44"
zip = "8.6"
bincode = { version = "2.0", features = ["serde"] }
zstd = "0.13.3"
lasso = { version = "0.7", features = ["serialize"] }
serde_yaml_ng = "0.10.0"
base64 = "0.22"
[dev-dependencies]
mockito = "1.7"
tempfile = "3.10.1"
[features]
default = ["rustls-tls"]
rustls-tls = ["reqwest/rustls"]
native-tls = ["reqwest/native-tls"]
[package.metadata.docs.rs]
all-features = false
no-default-features = false
[profile.dist]
inherits = "release"
lto = "thin"
[target."cfg(windows)".dependencies]
windows-registry = "0.6.1"