execra 0.1.2

DO NOT DEPEND ON THIS CRATE — in heavy testing inside rScoop. Typed job runtime for external processes: phases, progress, findings, persistence, and per-job cancellation.
Documentation
[package]
name = "execra"
description = "DO NOT DEPEND ON THIS CRATE — in heavy testing inside rScoop. Typed job runtime for external processes: phases, progress, findings, persistence, and per-job cancellation."
authors = ["AmarBego"]
version = "0.1.2"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/AmarBego/Execra"
readme = "README.md"
keywords = ["process", "subprocess", "runtime", "job", "tokio"]
categories = ["asynchronous", "os"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[workspace]
members = [
    ".",
    "crates/execra-cli",
    "crates/execra-tauri",
]
resolver = "2"

[features]
default = ["bundled-sqlite", "gzip"]

# Bundle SQLite with the `rusqlite` crate. Disable to link against the
# system-provided SQLite library (the host must then have `libsqlite3`
# available at build time).
bundled-sqlite = ["rusqlite/bundled"]

# Enable `RawOutputPolicy::PersistGzipOnFinalize`. Without this feature the
# variant is not compiled in and `flate2` is not pulled into the dependency
# tree; raw logs can still be persisted uncompressed.
gzip = ["dep:flate2"]

[dependencies]
uuid = { version = "1.23.1", features = ["v7", "serde"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1"
thiserror = "2.0.18"
flate2 = { version = "1", optional = true }
rusqlite = { version = "0.39.0", default-features = false }
tokio = { version = "1", features = ["fs", "process", "rt", "rt-multi-thread", "io-util", "macros", "sync", "time"] }
tokio-stream = { version = "0.1", features = ["sync"] }
tokio-util = { version = "0.7", features = ["rt"] }
futures-core = "0.3"

[target.'cfg(windows)'.dependencies]
windows-sys = { version = "0.61.2", features = ["Win32_Foundation", "Win32_Security", "Win32_System_JobObjects", "Win32_System_Threading"] }

[target.'cfg(unix)'.dependencies]
libc = "0.2"

[dev-dependencies]
regex = "1.12.3"
once_cell = "1.21.4"

[[example]]
name = "scoop_install"
path = "examples/scoop_install.rs"
crate-type = ["lib"]

[[example]]
name = "scoop_doctor"
path = "examples/scoop_doctor.rs"
crate-type = ["lib"]