[package] edition = "2021" name = "sccache" rust-version = "1.70.0" version = "0.7.7" categories = ["command-line-utilities", "development-tools::build-utils"] description = "Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage." keywords = ["ccache"] license = "Apache-2.0" readme = "README.md" repository = "https://github.com/mozilla/sccache/" [[bin]] name = "sccache" [[bin]] name = "sccache-dist" required-features = ["dist-server"] [profile.release] codegen-units = 1 lto = true strip = true [dependencies] anyhow = { version = "1.0", features = ["backtrace"] } ar = "0.9" async-trait = "0.1" base64 = "0.21" bincode = "1" blake3 = "1" byteorder = "1.5" bytes = "1" chrono = "0.4" clap = { version = "4.4.18", features = ["derive", "env", "wrap_help"] } directories = "5.0.1" encoding_rs = "0.8" env_logger = "0.10" filetime = "0.2" flate2 = { version = "1.0", optional = true, default-features = false, features = [ "rust_backend", ] } fs-err = "2.11" futures = "0.3" gzp = { version = "0.11.3", default-features = false, features = [ "deflate_rust", ] } http = "1.0" http-body-util = { version = "0.1", optional = true } hyper = { version = "1.1", optional = true, features = ["server", "http1"] } hyper-util = { version = "0.1.2", optional = true, features = [ "tokio", "server", ] } is-terminal = "0.4.10" jobserver = "0.1" jwt = { package = "jsonwebtoken", version = "9", optional = true } libc = "0.2.153" linked-hash-map = "0.5" log = "0.4" memchr = "2" mime = "0.3" num_cpus = "1.16" number_prefix = "0.4" once_cell = "1.19" opendal = { version = "0.44.2", optional = true } openssl = { version = "0.10.62", optional = true } rand = "0.8.4" regex = "1.10.3" reqsign = { version = "0.14.1", optional = true } reqwest = { version = "0.11", features = [ "json", "blocking", "stream", "rustls-tls", "trust-dns", ], optional = true } retry = "2" semver = "1.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" sha2 = { version = "0.10.8", optional = true } strip-ansi-escapes = "0.2" tar = "0.4.40" tempfile = "3" tokio = { version = "1", features = [ "rt-multi-thread", "io-util", "time", "net", "process", "macros", ] } tokio-serde = "0.8" tokio-util = { version = "0.7", features = ["codec", "io"] } toml = "0.8" tower = "0.4" url = { version = "2", optional = true } uuid = { version = "1.7", features = ["v4"] } walkdir = "2" # by default which pulls in an outdated failure version which = { version = "6", default-features = false } zip = { version = "0.6", default-features = false } zstd = "0.13" # dist-server only memmap2 = "0.9.3" nix = { version = "0.27.1", optional = true, features = [ "mount", "user", "sched", "signal", "process", ] } object = "0.32" rouille = { version = "3.6", optional = true, default-features = false, features = [ "ssl", ] } syslog = { version = "6", optional = true } version-compare = { version = "0.1.1", optional = true } [dev-dependencies] assert_cmd = "2.0.12" cc = "1.0" chrono = "0.4.33" filetime = "0.2" itertools = "0.12" predicates = "=3.1.0" serial_test = "2.0" temp-env = "0.3.6" test-case = "3.3.1" thirtyfour_sync = "0.27" [target.'cfg(unix)'.dependencies] daemonize = "0.5" [target.'cfg(not(target_os = "freebsd"))'.dependencies.libmount] optional = true version = "0.1.15" [target.'cfg(windows)'.dependencies.winapi] features = ["fileapi", "handleapi", "stringapiset", "winnls"] version = "0.3" [features] all = [ "dist-client", "redis", "s3", "memcached", "gcs", "azure", "gha", "webdav", "oss", ] azure = ["opendal", "reqsign"] default = ["all"] gcs = ["opendal", "reqsign", "url", "reqwest/blocking"] gha = ["opendal"] memcached = ["opendal/services-memcached"] native-zlib = [] oss = ["opendal", "reqsign"] redis = ["url", "opendal/services-redis"] s3 = ["opendal", "reqsign"] webdav = ["opendal"] # Enable features that will build a vendored version of openssl and # statically linked with it, instead of linking against the system-wide openssl # dynamically or statically. vendored-openssl = ["openssl?/vendored", "opendal?/native-tls-vendored"] # Enable features that require unstable features of Nightly Rust. unstable = [] # Enables distributed support in the sccache client dist-client = [ "flate2", "hyper", "http-body-util", "hyper-util", "reqwest", "url", "sha2", ] # Enables the sccache-dist binary dist-server = [ "jwt", "flate2", "libmount", "nix", "openssl", "reqwest", "rouille", "syslog", "version-compare", ] # Enables dist tests with external requirements dist-tests = ["dist-client", "dist-server"] [workspace] exclude = ["tests/test-crate"]