cobble-core 1.2.0

Library for managing, installing and launching Minecraft instances and more.
Documentation
[package]
name = "cobble-core"
version = "1.2.0"
authors = ["Stefan Rupertsberger <s.rupertsberger@proton.me>"]
edition = "2021"
rust-version = "1.65"
description = "Library for managing, installing and launching Minecraft instances and more."
documentation = "https://docs.rs/cobble-core"
readme = "README.md"
homepage = "https://gitlab.com/stefan99353/cobble-core"
repository = "https://gitlab.com/stefan99353/cobble-core"
license = "MIT"
keywords = ["minecraft", "instances", "games", "async"]
categories = ["games"]
exclude = [".gitlab-ci.yml"]

[package.metadata.docs.rs]
# To build locally:
# RUSTDOCFLAGS="--cfg doc_cfg" cargo +nightly doc --all-features --no-deps --open
all-features = true
rustdoc-args = ["--cfg", "doc_cfg"]

[features]
default = ["vanilla"]
auth = ["oauth2"]
backup = ["internal-archive"]
serde = []

# Vanilla
vanilla = ["log-files", "resourcepacks", "save-games", "screenshots", "servers"]
log-files = ["mime_guess"]
resourcepacks = ["mime_guess"]
save-games = ["anyhow"]
screenshots = ["mime_guess"]
servers = ["anyhow", "internal-base64", "internal-nbt"]

# Modded
modded = ["fabric", "loader-mods", "shaderpacks"]
fabric = []
loader-mods = ["mime_guess"]
shaderpacks = ["mime_guess"]

# Internal
internal-archive = ["flate2", "tar"]
internal-base64 = ["base64"]
internal-nbt = ["flate2", "fastnbt"]

[dependencies]
async-trait = "0.1"
async_zip = "0.0.9"
derive_builder = "0.11"
futures = "0.3"
hex = "0.4"
parking_lot = "0.12"
reqwest = { version = "0.11", features = [
    "gzip",
    "json",
    "rustls-tls",
    "stream",
], default-features = false }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
sha1 = "0.10"
thiserror = "1.0"
time = { version = "0.3", features = ["serde", "serde-well-known"] }
tokio = { version = "1.21", features = ["fs", "process", "rt", "sync"] }
tokio-stream = { version = "0.1", features = ["fs"] }
tracing = "0.1"
uuid = { version = "1.2", features = ["serde", "v4"] }
# Optional dependencies
anyhow = { version = "1.0", optional = true }
base64 = { version = "0.13", optional = true }
fastnbt = { version = "2.3", optional = true }
flate2 = { version = "1.0", optional = true }
mime_guess = { version = "2.0", optional = true }
oauth2 = { version = "4.2", optional = true }
tar = { version = "0.4", optional = true }

[target.'cfg(unix)'.dependencies]
fork = "0.1"
ipc-channel = "0.16"
nix = { version = "0.25", features = ["process", "signal"] }

[dev-dependencies]
anyhow = "1.0"
cobble-core = { path = ".", features = ["serde"] }
tokio = { version = "1.21", features = ["full"] }
tracing-subscriber = { version = "0.3", features = ["env-filter"] }