installrs 0.1.0-rc9

Build self-contained software installers in plain Rust, with an optional native wizard GUI (Win32 / GTK3), component selection, progress, cancellation, and compression.
Documentation
[package]
name = "installrs"
version = "0.1.0-rc9"
edition = "2021"
rust-version = "1.75"
description = "Build self-contained software installers in plain Rust, with an optional native wizard GUI (Win32 / GTK3), component selection, progress, cancellation, and compression."
license = "MIT"
repository = "https://github.com/merlinz01/InstallRS"
homepage = "https://github.com/merlinz01/InstallRS"
documentation = "https://docs.rs/installrs"
readme = "README.md"
keywords = ["installer", "setup", "wizard", "gui", "uninstaller"]
categories = ["development-tools", "command-line-utilities", "gui"]
exclude = [
    "target/**",
    ".github/**",
    "*.png",
]

[[bin]]
name = "installrs"
path = "src/bin/installrs.rs"

[features]
default = ["lzma", "gzip", "bzip2"]
lzma = ["dep:lzma-rs"]
gzip = ["dep:flate2"]
bzip2 = ["dep:bzip2"]
gui = []
gui-win32 = ["gui", "dep:winsafe"]
gui-gtk = ["gui", "dep:gtk", "dep:glib"]

[dependencies]
anyhow = "1"
lzma-rs = { version = "0.3", optional = true }
flate2 = { version = "1", features = ["rust_backend"], optional = true }
bzip2 = { version = "0.4", optional = true }
clap = { version = "4", features = ["derive"] }
sha2 = "0.10"
hex = "0.4"
syn = { version = "2", features = ["full", "visit"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
walkdir = "2"
glob = "0.3"
toml = "0.8"
semver = "1"
log = "0.4"
env_logger = "0.11"
image = { version = "0.25", default-features = false, features = ["png"] }
ico = "0.3"
ctrlc = "3"

[target.'cfg(windows)'.dependencies]
winsafe = { version = "0.0.27", features = ["gui", "shell"], optional = true }
mslnk = "0.1"
winreg = "0.52"

[target.'cfg(target_os = "linux")'.dependencies]
gtk = { version = "0.18", optional = true }
glib = { version = "0.18", optional = true }

[dev-dependencies]
tempfile = "3"

[package.metadata]
# resolver = "2" applies at workspace level; not needed for single-package crates

[package.metadata.docs.rs]
features = ["gui-gtk", "lzma", "gzip", "bzip2"]
rustdoc-args = ["--cfg", "docsrs"]