[package] name = "sccache" version = "0.4.0-pre.5" authors = ["Ted Mielczarek ", "Alex Crichton "] license = "Apache-2.0" description = "Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible, storing a cache in a remote storage using the S3 API." repository = "https://github.com/mozilla/sccache/" readme = "README.md" categories = ["command-line-utilities", "development-tools::build-utils"] keywords = ["ccache"] edition = "2018" rust-version = "1.60" [[bin]] name = "sccache" [[bin]] name = "sccache-dist" required-features = ["dist-server"] [dependencies] anyhow = "1.0" ar = "0.9" async-trait = "0.1" atty = "0.2.6" base64 = "0.20" bincode = "1" blake3 = "1" byteorder = "1.0" bytes = "1" opendal = { version= "0.24", optional=true } reqsign = {version="0.7.3", optional=true} chrono = { version = "0.4.23", optional = true } clap = { version = "4.0.29", features = ["derive", "env", "wrap_help"] } directories = "4.0.1" env_logger = "0.10" filetime = "0.2" flate2 = { version = "1.0", optional = true, default-features = false, features = ["rust_backend"] } futures = "0.3" futures-locks = "0.7" gzp = { version = "0.11.1", default-features = false, features = ["deflate_rust"] } http = "0.2" hyper = { version = "0.14.10", optional = true, features = ["server"] } hyperx = { version = "1.0", optional = true } jobserver = "0.1" jsonwebtoken = { version = "8", optional = true } lazy_static = "1.0.0" libc = "0.2.139" linked-hash-map = "0.5" log = "0.4" memcached-rs = { version = "0.4" , optional = true } num_cpus = "1.15" number_prefix = "0.4" openssl = { version = "0.10.45", optional = true } rand = "0.8.4" regex = "1.7.0" reqwest = { version = "0.11", features = ["json", "blocking", "stream"], optional = true } retry = "2" semver = "1.0" sha2 = { version = "0.10.6", optional = true } serde = "1.0" serde_derive = "1.0" serde_json = "1.0" strip-ansi-escapes = "0.1" tar = "0.4.36" 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"] } tower = "0.4" time = "0.3.15" toml = "0.5" url = { version = "2", optional = true } uuid = { version = "1.2", features = ["v4"] } walkdir = "2" # by default which pulls in an outdated failure version which = { version = "4", default-features = false } zip = { version = "0.6", default-features = false } zstd = "0.12" # dist-server only crossbeam-utils = { version = "0.8", optional = true } nix = { version = "0.26.1", optional = true } rouille = { version = "3.5", optional = true, default-features = false, features = ["ssl"] } syslog = { version = "6", optional = true } void = { version = "1", optional = true } version-compare = { version = "0.1.1", optional = true } [dev-dependencies] assert_cmd = "2.0.7" cc = "1.0" chrono = "0.4.22" itertools = "0.10" predicates = "=2.1.5" thirtyfour_sync = "0.27" once_cell = "1.17" serial_test = "0.10" wiremock = "0.5.16" [target.'cfg(unix)'.dependencies] daemonize = "0.4" [target.'cfg(not(target_os = "freebsd"))'.dependencies.libmount] optional = true version = "0.1.10" [target.'cfg(windows)'.dependencies] parity-tokio-ipc = "0.9" [target.'cfg(windows)'.dependencies.winapi] version = "0.3" features = [ "fileapi", "handleapi", "stringapiset", "winnls", ] [features] default = ["all"] all = ["dist-client", "redis", "s3", "memcached", "gcs", "azure", "gha"] azure = ["opendal","reqsign"] s3 = ["opendal","reqsign"] gcs = ["opendal","reqsign", "url", "reqwest/blocking"] gha = ["opendal"] memcached = ["memcached-rs"] native-zlib = [] redis = ["url", "opendal/services-redis"] # Enable features that require unstable features of Nightly Rust. unstable = [] # Enables distributed support in the sccache client dist-client = ["flate2", "hyper", "hyperx", "reqwest", "url", "sha2"] # Enables the sccache-dist binary dist-server = ["crossbeam-utils", "jsonwebtoken", "flate2", "hyperx", "libmount", "nix", "openssl", "reqwest", "rouille", "syslog", "void", "version-compare"] # Enables dist tests with external requirements dist-tests = ["dist-client", "dist-server"] [workspace] exclude = ["tests/test-crate"]