wdl-modules 0.3.1

Implementation of the WDL module specification
Documentation
[package]
name = "wdl-modules"
version = "0.3.1"
description = "Implementation of the WDL module specification"
authors.workspace = true
rust-version.workspace = true
edition.workspace = true
license.workspace = true
homepage.workspace = true
repository = "https://github.com/stjude-rust-labs/sprocket/tree/main/crates/wdl-modules"
documentation = "https://docs.rs/wdl-modules"

[features]
default = []
test-utils = []
# The Git-backed resolver implementation: `GitResolver`, its on-disk cache,
# lockfile generation, and TOFU trust handling. The `Resolver` trait and the
# manifest/lockfile/hashing value types are always available; this feature only
# adds the concrete implementation. Off by default so consumers like `wdl-doc`
# that need only those types do not pay for `git2` and friends.
git-resolver = [
    "dep:bon",
    "dep:bytesize",
    "dep:dirs",
    "dep:futures",
    "dep:git2",
    "dep:globset",
    "dep:tokio",
    "dep:toml-spanner",
    "dep:tracing",
]

[dependencies]
async-trait = { workspace = true }
base64 = { workspace = true }
bon = { workspace = true, optional = true }
bytesize = { workspace = true, optional = true }
dirs = { workspace = true, optional = true }
ed25519-dalek = { workspace = true }
futures = { workspace = true, optional = true }
git2 = { workspace = true, optional = true, features = ["https", "ssh"] }
globset = { workspace = true, optional = true }
hex = { workspace = true }
path-clean = { workspace = true }
schemars = { workspace = true }
semver = { workspace = true, features = ["serde"] }
serde = { workspace = true }
serde_json = { workspace = true }
serde_with = { workspace = true }
sha2 = { workspace = true }
spdx = { workspace = true }
ssh-key = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, optional = true, features = ["fs", "rt", "sync"] }
toml-spanner = { workspace = true, optional = true }
tracing = { workspace = true, optional = true }
unicode-normalization = { workspace = true }
url = { workspace = true, features = ["serde"] }
wdl-grammar = { path = "../wdl-grammar", version = "0.25.1" }

# The `x86_64-apple-darwin` binary is cross-compiled from an `arm64` runner,
# where the only system OpenSSL available is `arm64`. Building OpenSSL from
# source (vendored) for this target removes the dependency on an
# architecture-matched system copy. `openssl-sys` is a single node in the
# dependency graph, so vendoring applies to the whole x86_64 macOS build,
# including the `ssh2`/`libssh2-sys` path. The native `aarch64-apple-darwin`
# build is unaffected and continues to use the system OpenSSL.
[target.'cfg(all(target_os = "macos", target_arch = "x86_64"))'.dependencies]
git2 = { workspace = true, optional = true, features = ["https", "ssh", "vendored-openssl"] }

[dev-dependencies]
pretty_assertions = { workspace = true }
tempfile = { workspace = true }
tokio = { workspace = true, features = ["macros", "rt-multi-thread"] }

[lints]
workspace = true