[package] name = "cachepot" version = "0.1.0-rc.1" authors = [ "Bernhard Schuster ", "Igor Matuszewski ", "Ted Mielczarek ", "Alex Crichton " ] license = "Apache-2.0" description = "cachepot is a sccache-like tool. It is used as a compiler wrapper and avoids compilation when possible, storing a cache in a remote storage using cloud storage." repository = "https://github.com/paritytech/cachepot/" readme = "README.md" categories = ["command-line-utilities", "development-tools::build-utils"] keywords = ["ccache", "sccache", "cachepot"] edition = "2021" rust-version = "1.56.1" [[bin]] name = "cachepot" path = "src/main.rs" [[bin]] name = "cachepot-dist" required-features = ["dist-worker"] path = "src/bin/cachepot-dist/main.rs" [dependencies] anyhow = "1.0" ar = { version = "0.8", optional = true } async-trait = "0.1" atty = "0.2.6" base64 = "0.13" bincode = "1" blake3 = "1" byteorder = "1.0" bytes = "1" chrono = { version = "0.4", optional = true } counted-array = "0.1" directories = "3" env_logger = "0.8" filetime = "0.2" flate2 = { version = "1.0", optional = true, default-features = false, features = ["rust_backend"] } futures = "0.3" futures-locks = "0.6" fs-err = "2.6" gzp = { version = "0.9", default-features = false, features = ["deflate_rust"] } hmac = { version = "0.10", optional = true } http = "0.2" hyper = { version = "0.14", optional = true, features = ["server", "client"] } hyper-tls = { version = "0.5", optional = true } hyperx = { version = "0.13", optional = true } jobserver = "0.1" jsonwebtoken = { version = "7", optional = true } lazy_static = "1.0.0" libc = "0.2.10" linked-hash-map = "0.5" local-encoding = "0.2.0" log = "0.4" md-5 = { version = "0.9", optional = true } rsa = "0.4" picky = "6.2" memcached-rs = { version = "0.4" , optional = true } num_cpus = "1.0" number_prefix = "0.4" percent-encoding = { version = "2", optional = true } rand = "0.8" redis = { version = "0.21", optional = true, default-features = false, features = ["aio", "tokio-comp"] } regex = "1" reqwest = { version = "0.11.7", features = ["json", "native-tls"], optional = true } retry = "1" ring = { version = "0.16", optional = true, features = ["std"] } rusoto_core = { version = "0.47", optional = true } rusoto_s3 = { version = "0.47", optional = true } sha-1 = { version = "0.9", optional = true } sha2 = { version = "0.9", optional = true } serde = "1.0" serde_derive = "1.0" serde_json = "1.0" strip-ansi-escapes = "0.1" tar = "0.4" tempfile = "3" tokio = { version = "1", features = ["rt-multi-thread", "io-util", "time", "net", "process", "macros", "signal"] } tokio-serde = "0.8" tokio-util = { version = "0.6", features = ["codec"] } tower = "0.4" toml = "0.5" untrusted = { version = "0.7", optional = true } url = { version = "2", optional = true } uuid = { version = "0.8", features = ["v4"] } walkdir = "2" # by default which pulls in an outdated failure version which = { version = "4", default-features = false } zip = { version = "0.5", default-features = false } zstd = "0.6" clap = { version = "3.1", features = ["derive", "env"] } strum = { version = "0.23.0", features = ["derive"] } native-tls = "0.2.8" # dist-worker only crossbeam-utils = { version = "0.8", optional = true } libmount = { version = "0.1.10", optional = true } nix = { version = "0.19", optional = true } syslog = { version = "5", optional = true } void = { version = "1", optional = true } version-compare = { version = "0.0.11", optional = true } warp = { version = "0.3.2", optional = true, features = ["tls"] } thiserror = { version = "1.0.30", optional = true } # test only openssl = { version = "0.10", optional = true } [dev-dependencies] assert_cmd = "1" assert_matches = "1.5" cc = "1.0" chrono = "0.4" itertools = "0.10" predicates = "1" thirtyfour_sync = "0.27" serial_test = "0.5" [target.'cfg(unix)'.dependencies] daemonize = "0.4" [target.'cfg(windows)'.dependencies] parity-tokio-ipc = "0.9" [target.'cfg(windows)'.dependencies.winapi] version = "0.3" features = [ "fileapi", "handleapi", "winnls", ] [features] default = ["all"] all = ["dist-client", "redis", "s3", "memcached", "gcs", "azure"] azure = ["chrono", "hyper", "hyperx", "url", "hmac", "md-5", "sha2"] s3 = ["chrono", "hyper", "hyper-tls", "hyperx", "reqwest", "rusoto_core", "rusoto_s3", "hmac", "sha-1"] gcs = ["chrono", "hyper", "hyperx", "percent-encoding", "reqwest", "ring", "untrusted", "url"] memcached = ["memcached-rs"] native-zlib = [] # Enable features that require unstable features of Nightly Rust. unstable = [] # Enables distributed support in the cachepot client dist-client = ["ar", "flate2", "hyper", "hyperx", "reqwest/stream", "url", "sha2", "tokio/fs"] # Enables the cachepot-dist binary dist-worker = ["chrono", "crossbeam-utils", "jsonwebtoken", "flate2", "hyperx", "libmount", "nix", "reqwest", "sha2", "syslog", "void", "version-compare", "warp", "thiserror"] # Enables dist tests with external requirements dist-tests = ["dist-client", "dist-worker"] # Run JWK token crypto against openssl ref impl vs_openssl = ["openssl", "dist-worker"] # Make sure to always optimize big integer calculations as this cuts down # certificate generation time by two orders of magnitude (down to ~0.1s) [profile.dev.package.num-bigint-dig] opt-level = 3 [workspace] exclude = ["tests/test-crate"]