2019-04-30 00:36:55 +03:00
|
|
|
# This file is automatically @generated by Cargo.
|
|
|
|
# It is not intended for manual editing.
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "adler32"
|
|
|
|
version = "1.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "aho-corasick"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.9"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ansi_term"
|
2018-07-12 13:46:33 +03:00
|
|
|
version = "0.11.0"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-07-12 13:46:33 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 13:46:33 +03:00
|
|
|
]
|
2016-05-12 22:03:37 +03:00
|
|
|
|
2018-09-04 22:36:28 +03:00
|
|
|
[[package]]
|
|
|
|
name = "ar"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.1"
|
2018-09-04 22:36:28 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-04 22:36:28 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "arc-swap"
|
|
|
|
version = "0.3.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-06 18:12:46 +03:00
|
|
|
[[package]]
|
|
|
|
name = "arraydeque"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.4.3"
|
2018-08-06 18:12:46 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "arrayvec"
|
|
|
|
version = "0.4.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "ascii"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.8.7"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "ascii"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.9.1"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-10-25 21:09:27 +03:00
|
|
|
[[package]]
|
2018-07-26 22:52:50 +03:00
|
|
|
name = "assert_cmd"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.9.1"
|
2017-10-25 21:09:27 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"escargot 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"predicates 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"predicates-core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"predicates-tree 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-10-25 21:09:27 +03:00
|
|
|
]
|
|
|
|
|
2017-04-05 17:42:06 +03:00
|
|
|
[[package]]
|
|
|
|
name = "atty"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.2.11"
|
2017-04-05 17:42:06 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-04-05 17:42:06 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 15:57:35 +03:00
|
|
|
[[package]]
|
|
|
|
name = "backtrace"
|
|
|
|
version = "0.3.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
"rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "backtrace-sys"
|
|
|
|
version = "0.1.24"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
]
|
|
|
|
|
2017-06-14 18:20:12 +03:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.9.3"
|
2017-06-14 18:20:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-06-14 18:20:12 +03:00
|
|
|
]
|
|
|
|
|
2019-10-14 22:58:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "base64"
|
|
|
|
version = "0.10.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-03-22 20:21:52 +03:00
|
|
|
[[package]]
|
2018-01-07 18:58:55 +03:00
|
|
|
name = "bincode"
|
|
|
|
version = "0.8.0"
|
2017-05-18 23:53:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017-03-22 20:21:52 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-22 20:21:52 +03:00
|
|
|
]
|
|
|
|
|
2017-10-06 02:40:25 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "bincode"
|
2018-08-30 23:08:17 +03:00
|
|
|
version = "1.0.1"
|
2017-10-06 02:40:25 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-01-07 18:33:04 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
2017-10-06 02:40:25 +03:00
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.9.1"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-06-14 18:20:12 +03:00
|
|
|
[[package]]
|
|
|
|
name = "bitflags"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "1.0.4"
|
2017-06-14 18:20:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "buf_redux"
|
|
|
|
version = "0.6.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-08-10 17:50:33 +03:00
|
|
|
[[package]]
|
|
|
|
name = "bufstream"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.4"
|
2017-08-10 17:50:33 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "build_const"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "byteorder"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.2.7"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-03-09 21:00:18 +03:00
|
|
|
[[package]]
|
|
|
|
name = "bytes"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.11"
|
2017-03-09 21:00:18 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-09 21:00:18 +03:00
|
|
|
]
|
|
|
|
|
2017-07-13 21:33:57 +03:00
|
|
|
[[package]]
|
|
|
|
name = "case"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-10-25 21:09:27 +03:00
|
|
|
[[package]]
|
|
|
|
name = "cc"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.25"
|
2017-10-25 21:09:27 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "cfg-if"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.6"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "chrono"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.4.6"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "chunked_transfer"
|
|
|
|
version = "0.3.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "clap"
|
2018-07-12 13:46:33 +03:00
|
|
|
version = "2.32.0"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-07-12 13:46:33 +03:00
|
|
|
"ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 13:46:33 +03:00
|
|
|
"strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2017-06-14 18:20:12 +03:00
|
|
|
[[package]]
|
2018-08-27 17:23:32 +03:00
|
|
|
name = "cloudabi"
|
|
|
|
version = "0.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "combine"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "3.6.3"
|
2017-06-14 18:20:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"ascii 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-06-14 18:20:12 +03:00
|
|
|
]
|
|
|
|
|
2017-08-10 17:50:33 +03:00
|
|
|
[[package]]
|
|
|
|
name = "conhash"
|
2018-08-28 15:42:57 +03:00
|
|
|
version = "0.4.0"
|
2017-08-10 17:50:33 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:42:57 +03:00
|
|
|
"md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-08-10 17:50:33 +03:00
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
2017-02-02 03:30:26 +03:00
|
|
|
name = "core-foundation"
|
|
|
|
version = "0.2.3"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2017-02-02 03:30:26 +03:00
|
|
|
"core-foundation-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "core-foundation"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "core-foundation-sys"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "core-foundation-sys"
|
|
|
|
version = "0.5.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-09-19 07:33:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "counted-array"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "crc"
|
|
|
|
version = "1.8.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2019-10-14 22:58:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "crc32fast"
|
|
|
|
version = "1.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-deque"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.2"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-epoch"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.1"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-utils"
|
|
|
|
version = "0.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "crossbeam-utils"
|
|
|
|
version = "0.6.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-10-26 23:22:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "daemonize"
|
2018-08-28 15:44:11 +03:00
|
|
|
version = "0.3.0"
|
2016-10-26 23:22:52 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-10-25 21:09:27 +03:00
|
|
|
]
|
|
|
|
|
2017-07-13 21:33:57 +03:00
|
|
|
[[package]]
|
|
|
|
name = "derive-error"
|
|
|
|
version = "0.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"case 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-10-25 21:09:27 +03:00
|
|
|
[[package]]
|
|
|
|
name = "difference"
|
2018-07-26 17:16:55 +03:00
|
|
|
version = "2.0.0"
|
2017-10-25 21:09:27 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-03-21 15:52:55 +03:00
|
|
|
[[package]]
|
|
|
|
name = "directories"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.2"
|
2018-03-21 15:52:55 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-03-21 15:52:55 +03:00
|
|
|
]
|
|
|
|
|
2016-08-08 22:06:06 +03:00
|
|
|
[[package]]
|
|
|
|
name = "dtoa"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.4.3"
|
2016-08-08 22:06:06 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-04-03 17:21:13 +03:00
|
|
|
[[package]]
|
|
|
|
name = "either"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "1.5.0"
|
2017-04-03 17:21:13 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "encoding"
|
|
|
|
version = "0.2.33"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding-index-japanese"
|
|
|
|
version = "1.20141219.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding-index-korean"
|
|
|
|
version = "1.20141219.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding-index-simpchinese"
|
|
|
|
version = "1.20141219.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding-index-singlebyte"
|
|
|
|
version = "1.20141219.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding-index-tradchinese"
|
|
|
|
version = "1.20141219.5"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding_index_tests"
|
|
|
|
version = "0.1.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "encoding_rs"
|
2018-11-23 17:23:31 +03:00
|
|
|
version = "0.8.10"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "env_logger"
|
2018-08-28 14:41:11 +03:00
|
|
|
version = "0.5.13"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:41:11 +03:00
|
|
|
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2019-02-28 22:42:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "error-chain"
|
|
|
|
version = "0.11.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-10-25 21:09:27 +03:00
|
|
|
[[package]]
|
|
|
|
name = "error-chain"
|
2019-06-02 19:03:59 +03:00
|
|
|
version = "0.12.1"
|
2017-10-25 21:09:27 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2019-06-02 19:03:59 +03:00
|
|
|
dependencies = [
|
|
|
|
"version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
2018-07-26 17:16:55 +03:00
|
|
|
|
|
|
|
[[package]]
|
2018-07-26 22:52:50 +03:00
|
|
|
name = "escargot"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.1"
|
2018-07-26 17:16:55 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-10-25 21:09:27 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 15:57:35 +03:00
|
|
|
[[package]]
|
|
|
|
name = "failure"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.3"
|
2018-08-28 15:57:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "failure_derive"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.3"
|
2018-08-28 15:57:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
]
|
|
|
|
|
2016-05-18 21:30:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "filetime"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.1.15"
|
2016-05-18 21:30:11 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-18 21:30:11 +03:00
|
|
|
]
|
|
|
|
|
2018-04-12 04:25:15 +03:00
|
|
|
[[package]]
|
|
|
|
name = "filetime"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.4"
|
2018-04-12 04:25:15 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-04-12 04:25:15 +03:00
|
|
|
]
|
|
|
|
|
2016-05-21 21:14:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "flate2"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "1.0.12"
|
2018-09-27 17:30:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"miniz_oxide 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-21 21:14:26 +03:00
|
|
|
]
|
|
|
|
|
2018-07-26 22:52:50 +03:00
|
|
|
[[package]]
|
|
|
|
name = "float-cmp"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-26 22:52:50 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "fnv"
|
|
|
|
version = "1.0.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-05-18 23:53:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "foreign-types"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.3.2"
|
2017-05-18 23:53:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-01-07 18:33:04 +03:00
|
|
|
dependencies = [
|
|
|
|
"foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
2017-05-18 23:53:00 +03:00
|
|
|
|
2016-11-03 00:15:14 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "foreign-types-shared"
|
|
|
|
version = "0.1.1"
|
2016-11-03 00:15:14 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "fuchsia-zircon"
|
|
|
|
version = "0.3.3"
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
]
|
|
|
|
|
2016-05-21 21:14:26 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "fuchsia-zircon-sys"
|
|
|
|
version = "0.3.3"
|
2016-05-21 21:14:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-09-21 22:57:28 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "futures"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.25"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "futures-cpupool"
|
|
|
|
version = "0.1.8"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "gcc"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.3.55"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "getopts"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.2.18"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-08-28 14:29:00 +03:00
|
|
|
dependencies = [
|
|
|
|
"unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
2017-02-02 03:30:26 +03:00
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "h2"
|
|
|
|
version = "0.1.13"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "http"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.1.18"
|
2018-09-27 17:30:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2019-10-14 22:58:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "http-body"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "httparse"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.3.3"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 14:41:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "humantime"
|
|
|
|
version = "1.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "hyper"
|
2018-07-31 01:06:14 +03:00
|
|
|
version = "0.11.27"
|
2017-06-14 18:20:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2016-06-03 22:09:38 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
"language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-31 01:06:14 +03:00
|
|
|
"want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "hyper"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.12.35"
|
2018-09-27 17:30:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
]
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "hyper-tls"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.4"
|
2017-06-15 01:30:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017-02-02 03:30:26 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-31 01:06:14 +03:00
|
|
|
"hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"tokio-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "hyper-tls"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.3.2"
|
2018-09-27 17:30:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "hyperx"
|
|
|
|
version = "0.12.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "idna"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.5"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-09 21:00:18 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "indexmap"
|
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-03-09 21:00:18 +03:00
|
|
|
[[package]]
|
|
|
|
name = "iovec"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.1.2"
|
2017-03-09 21:00:18 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-09 21:00:18 +03:00
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2017-04-03 17:21:13 +03:00
|
|
|
[[package]]
|
|
|
|
name = "itertools"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.7.9"
|
2017-04-03 17:21:13 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-04-03 17:21:13 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "itoa"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.3"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
Add jobserver support to sccache
This commit alters the main sccache server to operate and orchestrate its own
GNU make style jobserver. This is primarily intended for interoperation with
rustc itself.
The Rust compiler currently has a multithreaded mode where it will execute code
generation and optimization on the LLVM side of things in parallel. This
parallelism, however, can overload a machine quickly if not properly accounted
for (e.g. if 10 rustcs all spawn 10 threads...). The usage of a GNU make style
jobserver is intended to arbitrate and rate limit all these rustc instances to
ensure that one build's maximal parallelism never exceeds a particular amount.
Currently for Rust Cargo is the primary driver for setting up a jobserver. Cargo
will create this and manage this per compilation, ensuring that any one `cargo
build` invocation never exceeds a maximal parallelism. When sccache enters the
picture, however, the story gets slightly more odd.
The jobserver implementation on Unix relies on inheritance of file descriptors
in spawned processes. With sccache, however, there's no inheritance as the
actual rustc invocation is spawned by the server, not the client. In this case
the env vars used to configure the jobsever are usually incorrect.
To handle this problem this commit bakes a jobserver directly into sccache
itself. The jobserver then overrides whatever jobserver the client has
configured in its own env vars to ensure correct operation. The settings of each
jobserver may be misconfigured (there's no way to configure sccache's jobserver
right now), but hopefully that's not too much of a problem for the forseeable
future.
The implementation here was to provide a thin wrapper around the `jobserver`
crate with a futures-based interface. This interface was then hooked into the
mock command infrastructure to automatically acquire a jobserver token when
spawning a process and automatically drop the token when the process exits.
Additionally, all spawned processes will now automatically receive a configured
jobserver.
cc rust-lang/rust#42867, the original motivation for this commit
2017-09-27 19:14:51 +03:00
|
|
|
[[package]]
|
|
|
|
name = "jobserver"
|
2018-03-16 20:39:18 +03:00
|
|
|
version = "0.1.11"
|
Add jobserver support to sccache
This commit alters the main sccache server to operate and orchestrate its own
GNU make style jobserver. This is primarily intended for interoperation with
rustc itself.
The Rust compiler currently has a multithreaded mode where it will execute code
generation and optimization on the LLVM side of things in parallel. This
parallelism, however, can overload a machine quickly if not properly accounted
for (e.g. if 10 rustcs all spawn 10 threads...). The usage of a GNU make style
jobserver is intended to arbitrate and rate limit all these rustc instances to
ensure that one build's maximal parallelism never exceeds a particular amount.
Currently for Rust Cargo is the primary driver for setting up a jobserver. Cargo
will create this and manage this per compilation, ensuring that any one `cargo
build` invocation never exceeds a maximal parallelism. When sccache enters the
picture, however, the story gets slightly more odd.
The jobserver implementation on Unix relies on inheritance of file descriptors
in spawned processes. With sccache, however, there's no inheritance as the
actual rustc invocation is spawned by the server, not the client. In this case
the env vars used to configure the jobsever are usually incorrect.
To handle this problem this commit bakes a jobserver directly into sccache
itself. The jobserver then overrides whatever jobserver the client has
configured in its own env vars to ensure correct operation. The settings of each
jobserver may be misconfigured (there's no way to configure sccache's jobserver
right now), but hopefully that's not too much of a problem for the forseeable
future.
The implementation here was to provide a thin wrapper around the `jobserver`
crate with a futures-based interface. This interface was then hooked into the
mock command infrastructure to automatically acquire a jobserver token when
spawning a process and automatically drop the token when the process exits.
Additionally, all spawned processes will now automatically receive a configured
jobserver.
cc rust-lang/rust#42867, the original motivation for this commit
2017-09-27 19:14:51 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
Add jobserver support to sccache
This commit alters the main sccache server to operate and orchestrate its own
GNU make style jobserver. This is primarily intended for interoperation with
rustc itself.
The Rust compiler currently has a multithreaded mode where it will execute code
generation and optimization on the LLVM side of things in parallel. This
parallelism, however, can overload a machine quickly if not properly accounted
for (e.g. if 10 rustcs all spawn 10 threads...). The usage of a GNU make style
jobserver is intended to arbitrate and rate limit all these rustc instances to
ensure that one build's maximal parallelism never exceeds a particular amount.
Currently for Rust Cargo is the primary driver for setting up a jobserver. Cargo
will create this and manage this per compilation, ensuring that any one `cargo
build` invocation never exceeds a maximal parallelism. When sccache enters the
picture, however, the story gets slightly more odd.
The jobserver implementation on Unix relies on inheritance of file descriptors
in spawned processes. With sccache, however, there's no inheritance as the
actual rustc invocation is spawned by the server, not the client. In this case
the env vars used to configure the jobsever are usually incorrect.
To handle this problem this commit bakes a jobserver directly into sccache
itself. The jobserver then overrides whatever jobserver the client has
configured in its own env vars to ensure correct operation. The settings of each
jobserver may be misconfigured (there's no way to configure sccache's jobserver
right now), but hopefully that's not too much of a problem for the forseeable
future.
The implementation here was to provide a thin wrapper around the `jobserver`
crate with a futures-based interface. This interface was then hooked into the
mock command infrastructure to automatically acquire a jobserver token when
spawning a process and automatically drop the token when the process exits.
Additionally, all spawned processes will now automatically receive a configured
jobserver.
cc rust-lang/rust#42867, the original motivation for this commit
2017-09-27 19:14:51 +03:00
|
|
|
]
|
|
|
|
|
2017-05-06 03:02:48 +03:00
|
|
|
[[package]]
|
|
|
|
name = "jsonwebtoken"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "5.0.1"
|
2018-10-20 00:16:50 +03:00
|
|
|
source = "git+https://github.com/Jake-Shadle/jsonwebtoken.git?rev=2f469a61#2f469a61ee31b02cb6b6c3d55515592e9aaeec3b"
|
2017-05-06 03:02:48 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-02-28 22:42:56 +03:00
|
|
|
"ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-05-06 03:02:48 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "kernel32-sys"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2016-07-15 18:06:16 +03:00
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "language-tags"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "lazy_static"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.2.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "lazy_static"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.2.0"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
|
|
|
name = "lazycell"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.2.0"
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "libc"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.44"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "libflate"
|
2018-10-26 22:34:03 +03:00
|
|
|
version = "0.1.18"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-07-15 16:37:46 +03:00
|
|
|
[[package]]
|
|
|
|
name = "libmount"
|
|
|
|
version = "0.1.11"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-15 16:37:46 +03:00
|
|
|
"nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-11-29 03:59:42 +03:00
|
|
|
[[package]]
|
|
|
|
name = "linked-hash-map"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-09-21 22:57:28 +03:00
|
|
|
[[package]]
|
|
|
|
name = "local-encoding"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"skeptic 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "lock_api"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.5"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "log"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.3.9"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2016-11-29 03:59:42 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-11-29 03:59:42 +03:00
|
|
|
]
|
|
|
|
|
2017-10-06 02:40:25 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "log"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.6"
|
2017-10-06 02:40:25 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-10-06 02:40:25 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "lru-disk-cache"
|
2019-06-26 01:18:56 +03:00
|
|
|
version = "0.3.0"
|
2017-10-06 02:40:25 +03:00
|
|
|
dependencies = [
|
2018-02-01 18:29:23 +03:00
|
|
|
"filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"linked-hash-map 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-10-06 02:40:25 +03:00
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "matches"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.8"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 15:42:57 +03:00
|
|
|
[[package]]
|
|
|
|
name = "md5"
|
|
|
|
version = "0.3.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-08-10 17:50:33 +03:00
|
|
|
[[package]]
|
|
|
|
name = "memcached-rs"
|
2018-08-28 15:42:57 +03:00
|
|
|
version = "0.3.0"
|
2017-08-10 17:50:33 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bufstream 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:42:57 +03:00
|
|
|
"conhash 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:42:57 +03:00
|
|
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-08-10 17:50:33 +03:00
|
|
|
"unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "memchr"
|
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "memchr"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "2.1.1"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "memoffset"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "mime"
|
|
|
|
version = "0.2.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "mime"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.3.12"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "mime_guess"
|
|
|
|
version = "1.8.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "mime_guess"
|
|
|
|
version = "2.0.0-alpha.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-21 21:14:26 +03:00
|
|
|
[[package]]
|
2018-07-15 16:37:46 +03:00
|
|
|
name = "miniz_oxide"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.3.3"
|
2018-07-15 16:37:46 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "mio"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.16"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-01-07 18:33:04 +03:00
|
|
|
"fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-09 21:00:18 +03:00
|
|
|
"miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-07-15 18:06:16 +03:00
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2017-02-01 03:19:35 +03:00
|
|
|
[[package]]
|
|
|
|
name = "mio-named-pipes"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.1.6"
|
2017-02-01 03:19:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-01 03:19:35 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "mio-uds"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.7"
|
2017-02-01 03:19:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-01 03:19:35 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "miow"
|
2017-03-09 21:00:18 +03:00
|
|
|
version = "0.2.1"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-07-15 18:06:16 +03:00
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
"ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "miow"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.3"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
2016-05-21 21:14:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "msdos_time"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.6"
|
2016-05-21 21:14:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-21 21:14:26 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "multipart"
|
|
|
|
version = "0.13.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"buf_redux 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mime_guess 1.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"twoway 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "native-tls"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.1.5"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-02-01 18:29:23 +03:00
|
|
|
"lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"openssl 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"security-framework 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"security-framework-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "native-tls"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "net2"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.2.33"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2018-07-15 16:37:46 +03:00
|
|
|
[[package]]
|
|
|
|
name = "nix"
|
|
|
|
version = "0.11.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-15 16:37:46 +03:00
|
|
|
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "nodrop"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.13"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "normalize-line-endings"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:46:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "num-integer"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.39"
|
2016-05-12 22:46:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:46:22 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "num-traits"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.43"
|
2016-05-12 22:46:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-08-28 14:29:00 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
]
|
2016-05-12 22:46:22 +03:00
|
|
|
|
2018-07-26 22:52:50 +03:00
|
|
|
[[package]]
|
|
|
|
name = "num-traits"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.6"
|
2018-07-26 22:52:50 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "num_cpus"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "1.8.0"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:46:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "number_prefix"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.2.8"
|
2016-05-12 22:46:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:46:22 +03:00
|
|
|
]
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "openssl"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.9.24"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2017-06-14 18:20:12 +03:00
|
|
|
"bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 15:25:42 +03:00
|
|
|
[[package]]
|
|
|
|
name = "openssl"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.10.15"
|
2018-08-28 15:25:42 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:25:42 +03:00
|
|
|
"foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:25:42 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-probe"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "openssl-sys"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.9.39"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "owning_ref"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.0"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking_lot"
|
|
|
|
version = "0.6.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "parking_lot_core"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.3.1"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2017-06-14 18:20:12 +03:00
|
|
|
[[package]]
|
|
|
|
name = "percent-encoding"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "1.0.1"
|
2017-06-14 18:20:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "phf"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.7.23"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_codegen"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.7.23"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_generator"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.7.23"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "phf_shared"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.7.23"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "pkg-config"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.14"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-21 21:14:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "podio"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.1.6"
|
2016-05-21 21:14:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-26 22:52:50 +03:00
|
|
|
[[package]]
|
|
|
|
name = "predicates"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.9.1"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-07-26 22:52:50 +03:00
|
|
|
dependencies = [
|
|
|
|
"difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"float-cmp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"normalize-line-endings 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"predicates-core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "predicates-core"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "predicates-tree"
|
|
|
|
version = "0.9.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"predicates-core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "proc-macro2"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.24"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-26 22:52:50 +03:00
|
|
|
]
|
|
|
|
|
2016-09-21 22:57:28 +03:00
|
|
|
[[package]]
|
|
|
|
name = "pulldown-cmark"
|
|
|
|
version = "0.0.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-09-21 22:57:28 +03:00
|
|
|
]
|
|
|
|
|
2018-07-15 16:37:46 +03:00
|
|
|
[[package]]
|
|
|
|
name = "quick-error"
|
|
|
|
version = "1.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-03-22 20:21:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "quote"
|
|
|
|
version = "0.3.15"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "quote"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.10"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "rand"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.22"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.4.3"
|
2018-02-01 18:29:23 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
2018-08-27 17:23:32 +03:00
|
|
|
name = "rand"
|
|
|
|
version = "0.5.5"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-27 17:23:32 +03:00
|
|
|
"cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand"
|
|
|
|
version = "0.6.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_isaac 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_chacha"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2017-04-21 07:09:15 +03:00
|
|
|
[[package]]
|
2018-08-27 17:23:32 +03:00
|
|
|
name = "rand_core"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_core"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_hc"
|
|
|
|
version = "0.1.0"
|
2017-04-21 07:09:15 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-09-27 17:30:22 +03:00
|
|
|
dependencies = [
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_isaac"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_pcg"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "rand_xorshift"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
2017-04-21 07:09:15 +03:00
|
|
|
|
2017-02-16 22:56:41 +03:00
|
|
|
[[package]]
|
|
|
|
name = "redis"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.9.1"
|
2017-02-16 22:56:41 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"combine 3.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-16 22:56:41 +03:00
|
|
|
]
|
|
|
|
|
2017-05-18 23:53:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "redox_syscall"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.42"
|
2017-05-18 23:53:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "redox_termios"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
2018-07-26 22:52:50 +03:00
|
|
|
[[package]]
|
|
|
|
name = "regex"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.6"
|
2018-07-26 22:52:50 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-26 22:52:50 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "regex-syntax"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.3"
|
2018-07-26 22:52:50 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-26 22:52:50 +03:00
|
|
|
]
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "relay"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.1.1"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "remove_dir_all"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.5.1"
|
2018-02-01 18:29:23 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "reqwest"
|
2018-08-28 15:47:29 +03:00
|
|
|
version = "0.8.8"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-11-23 17:23:31 +03:00
|
|
|
"encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-31 01:06:14 +03:00
|
|
|
"hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"hyper-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-26 22:34:03 +03:00
|
|
|
"libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"tokio-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "reqwest"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.9.13"
|
2018-09-27 17:30:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2019-10-14 22:58:56 +03:00
|
|
|
"base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-11-23 17:23:31 +03:00
|
|
|
"encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"flate2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "retry"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2017-04-21 07:09:15 +03:00
|
|
|
[[package]]
|
|
|
|
name = "ring"
|
2019-02-28 22:42:56 +03:00
|
|
|
version = "0.13.5"
|
2017-04-21 07:09:15 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "rouille"
|
2018-09-04 22:36:28 +03:00
|
|
|
version = "2.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-07-12 02:38:16 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"multipart 0.13.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-15 16:37:46 +03:00
|
|
|
"sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-26 22:34:03 +03:00
|
|
|
"tiny_http 0.6.0 (git+https://github.com/aidanhs/tiny-http-sccache.git?rev=a14fa0a)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
2016-08-12 21:03:37 +03:00
|
|
|
name = "rust-crypto"
|
|
|
|
version = "0.2.36"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2016-06-03 22:09:38 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-05-18 23:53:00 +03:00
|
|
|
"rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 15:57:35 +03:00
|
|
|
[[package]]
|
|
|
|
name = "rustc-demangle"
|
|
|
|
version = "0.1.9"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:46:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "rustc-serialize"
|
2017-05-18 23:53:00 +03:00
|
|
|
version = "0.3.24"
|
2016-05-12 22:46:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "rustc_version"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "ryu"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.7"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-06-14 18:20:12 +03:00
|
|
|
[[package]]
|
|
|
|
name = "safemem"
|
|
|
|
version = "0.2.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "safemem"
|
|
|
|
version = "0.3.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-05-18 23:53:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "same-file"
|
|
|
|
version = "0.1.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-12-05 16:32:33 +03:00
|
|
|
[[package]]
|
|
|
|
name = "sccache"
|
2019-10-08 00:26:25 +03:00
|
|
|
version = "0.2.13-alpha.0"
|
2017-12-05 16:32:33 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"ar 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"arraydeque 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"assert_cmd 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-30 23:08:17 +03:00
|
|
|
"bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:37:42 +03:00
|
|
|
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 13:46:33 +03:00
|
|
|
"clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-19 07:33:52 +03:00
|
|
|
"counted-array 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:55:46 +03:00
|
|
|
"crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:44:11 +03:00
|
|
|
"daemonize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:41:11 +03:00
|
|
|
"env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-06-02 19:03:59 +03:00
|
|
|
"error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-23 10:33:42 +03:00
|
|
|
"escargot 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"flate2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"hyperx 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"itertools 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-03-16 20:39:18 +03:00
|
|
|
"jobserver 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-20 00:16:50 +03:00
|
|
|
"jsonwebtoken 5.0.1 (git+https://github.com/Jake-Shadle/jsonwebtoken.git?rev=2f469a61)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-04 16:36:35 +03:00
|
|
|
"libmount 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-12-05 16:32:33 +03:00
|
|
|
"local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-06-26 01:18:56 +03:00
|
|
|
"lru-disk-cache 0.3.0",
|
2018-08-28 15:42:57 +03:00
|
|
|
"memcached-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-04 16:36:35 +03:00
|
|
|
"nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
Add jobserver support to sccache
This commit alters the main sccache server to operate and orchestrate its own
GNU make style jobserver. This is primarily intended for interoperation with
rustc itself.
The Rust compiler currently has a multithreaded mode where it will execute code
generation and optimization on the LLVM side of things in parallel. This
parallelism, however, can overload a machine quickly if not properly accounted
for (e.g. if 10 rustcs all spawn 10 threads...). The usage of a GNU make style
jobserver is intended to arbitrate and rate limit all these rustc instances to
ensure that one build's maximal parallelism never exceeds a particular amount.
Currently for Rust Cargo is the primary driver for setting up a jobserver. Cargo
will create this and manage this per compilation, ensuring that any one `cargo
build` invocation never exceeds a maximal parallelism. When sccache enters the
picture, however, the story gets slightly more odd.
The jobserver implementation on Unix relies on inheritance of file descriptors
in spawned processes. With sccache, however, there's no inheritance as the
actual rustc invocation is spawned by the server, not the client. In this case
the env vars used to configure the jobsever are usually incorrect.
To handle this problem this commit bakes a jobserver directly into sccache
itself. The jobserver then overrides whatever jobserver the client has
configured in its own env vars to ensure correct operation. The settings of each
jobserver may be misconfigured (there's no way to configure sccache's jobserver
right now), but hopefully that's not too much of a problem for the forseeable
future.
The implementation here was to provide a thin wrapper around the `jobserver`
crate with a futures-based interface. This interface was then hooked into the
mock command infrastructure to automatically acquire a jobserver token when
spawning a process and automatically drop the token when the process exits.
Additionally, all spawned processes will now automatically receive a configured
jobserver.
cc rust-lang/rust#42867, the original motivation for this commit
2017-09-27 19:14:51 +03:00
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"predicates 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-30 23:05:42 +03:00
|
|
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"redis 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"reqwest 0.9.13 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-12-05 16:32:33 +03:00
|
|
|
"retry 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-02-28 22:42:56 +03:00
|
|
|
"ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-04 22:36:28 +03:00
|
|
|
"rouille 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-12-05 16:32:33 +03:00
|
|
|
"rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-23 10:33:42 +03:00
|
|
|
"selenium-rs 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-02 15:11:11 +03:00
|
|
|
"strip-ansi-escapes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-02-28 22:42:56 +03:00
|
|
|
"syslog 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-named-pipes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-process 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-12-05 16:32:33 +03:00
|
|
|
"tokio-serde-bincode 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"toml 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-12-29 16:57:18 +03:00
|
|
|
"uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-07-18 08:03:39 +03:00
|
|
|
"version-compare 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-26 22:34:03 +03:00
|
|
|
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-04 22:36:28 +03:00
|
|
|
"walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
"which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-15 16:37:46 +03:00
|
|
|
"zip 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-12-05 16:32:33 +03:00
|
|
|
]
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "schannel"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.14"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
|
|
|
name = "scoped-tls"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.2"
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-06-14 18:20:12 +03:00
|
|
|
[[package]]
|
|
|
|
name = "scopeguard"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.3.3"
|
2017-06-14 18:20:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "security-framework"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.1.16"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"core-foundation 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"core-foundation-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"security-framework-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "security-framework"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-02-02 03:30:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "security-framework-sys"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.1.16"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"core-foundation-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "security-framework-sys"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2018-10-23 10:33:42 +03:00
|
|
|
[[package]]
|
|
|
|
name = "selenium-rs"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"reqwest 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-10-23 10:33:42 +03:00
|
|
|
]
|
|
|
|
|
2017-08-10 17:50:33 +03:00
|
|
|
[[package]]
|
|
|
|
name = "semver"
|
2018-08-28 15:42:57 +03:00
|
|
|
version = "0.9.0"
|
2017-08-10 17:50:33 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 15:42:57 +03:00
|
|
|
"semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-08-10 17:50:33 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 15:42:57 +03:00
|
|
|
[[package]]
|
|
|
|
name = "semver-parser"
|
|
|
|
version = "0.7.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "serde"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.80"
|
2017-03-22 20:21:52 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2018-07-26 22:52:50 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-26 22:52:50 +03:00
|
|
|
]
|
2017-03-22 20:21:52 +03:00
|
|
|
|
|
|
|
[[package]]
|
2017-05-18 23:53:00 +03:00
|
|
|
name = "serde_derive"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.80"
|
2017-03-22 20:21:52 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-22 20:21:52 +03:00
|
|
|
]
|
2016-06-03 22:09:38 +03:00
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "serde_json"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.33"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "serde_urlencoded"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.5.4"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2018-07-15 16:37:46 +03:00
|
|
|
[[package]]
|
|
|
|
name = "sha1"
|
|
|
|
version = "0.6.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "signal-hook"
|
|
|
|
version = "0.1.6"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "siphasher"
|
|
|
|
version = "0.2.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-09-21 22:57:28 +03:00
|
|
|
[[package]]
|
|
|
|
name = "skeptic"
|
|
|
|
version = "0.4.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"pulldown-cmark 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-09-21 22:57:28 +03:00
|
|
|
]
|
|
|
|
|
2017-10-06 02:40:25 +03:00
|
|
|
[[package]]
|
|
|
|
name = "slab"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.4.1"
|
2017-10-06 02:40:25 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
|
|
|
name = "smallvec"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.6.6"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "socket2"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.8"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "stable_deref_trait"
|
|
|
|
version = "1.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "string"
|
|
|
|
version = "0.1.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-02-02 15:11:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "strip-ansi-escapes"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-02 15:11:11 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "strsim"
|
2018-07-12 13:46:33 +03:00
|
|
|
version = "0.7.0"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-03-22 20:21:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2017-05-18 23:53:00 +03:00
|
|
|
version = "0.11.11"
|
2017-03-22 20:21:52 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "syn"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.15.21"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-03-22 20:21:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "synom"
|
|
|
|
version = "0.11.3"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-28 15:57:35 +03:00
|
|
|
[[package]]
|
|
|
|
name = "synstructure"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.10.1"
|
2018-08-28 15:57:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:57:35 +03:00
|
|
|
"unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2019-02-28 22:42:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "syslog"
|
|
|
|
version = "4.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-04-12 04:25:15 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tar"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.20"
|
2018-04-12 04:25:15 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-04-12 04:25:15 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tempdir"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.7"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2017-05-17 23:38:12 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tempfile"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "3.0.4"
|
2017-05-17 23:38:12 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:20:49 +03:00
|
|
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 15:20:49 +03:00
|
|
|
"remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-05-17 23:38:12 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "term"
|
2018-07-15 16:37:46 +03:00
|
|
|
version = "0.5.1"
|
2018-07-12 02:38:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 14:41:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "termcolor"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.4"
|
2018-08-28 14:41:11 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-07-15 18:06:16 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "termion"
|
|
|
|
version = "1.5.1"
|
2016-07-15 18:06:16 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
2018-01-07 18:33:04 +03:00
|
|
|
name = "textwrap"
|
2018-07-12 13:46:33 +03:00
|
|
|
version = "0.10.0"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "thread_local"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.6"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "threadpool"
|
|
|
|
version = "1.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "time"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.40"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
]
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tiny_http"
|
2018-07-15 16:37:46 +03:00
|
|
|
version = "0.6.0"
|
2018-10-26 22:34:03 +03:00
|
|
|
source = "git+https://github.com/aidanhs/tiny-http-sccache.git?rev=a14fa0a#a14fa0ab963be252c0c608e2516ef30252d6a7e2"
|
2018-07-12 02:38:16 +03:00
|
|
|
dependencies = [
|
2018-07-15 16:37:46 +03:00
|
|
|
"ascii 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
"chunked_transfer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.1.17"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
2019-10-14 22:58:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-buf"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-codec"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.1"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-core"
|
2018-08-27 17:23:32 +03:00
|
|
|
version = "0.1.17"
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tokio-current-thread"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.4"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-09 21:00:18 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
2018-08-27 17:23:32 +03:00
|
|
|
name = "tokio-executor"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.5"
|
2017-03-09 21:00:18 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tokio-fs"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.1.6"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tokio-io"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.10"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
]
|
|
|
|
|
2017-02-01 03:19:35 +03:00
|
|
|
[[package]]
|
2018-09-27 17:30:22 +03:00
|
|
|
name = "tokio-named-pipes"
|
|
|
|
version = "0.1.0"
|
2017-02-01 03:19:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2019-10-14 22:58:56 +03:00
|
|
|
"tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-01 03:19:35 +03:00
|
|
|
]
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
2018-09-27 17:30:22 +03:00
|
|
|
name = "tokio-process"
|
|
|
|
version = "0.2.3"
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-reactor"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.7"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
2017-03-22 20:21:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-serde"
|
|
|
|
version = "0.1.0"
|
2017-07-13 21:33:57 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017-03-22 20:21:52 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-22 20:21:52 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tokio-serde-bincode"
|
2017-07-13 21:33:57 +03:00
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017-03-22 20:21:52 +03:00
|
|
|
dependencies = [
|
2017-05-18 23:53:00 +03:00
|
|
|
"bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-07-13 21:33:57 +03:00
|
|
|
"derive-error 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-07-13 21:33:57 +03:00
|
|
|
"tokio-serde 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-03-22 20:21:52 +03:00
|
|
|
]
|
|
|
|
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-service"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
]
|
|
|
|
|
2017-02-01 03:19:35 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-signal"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.7"
|
2017-02-01 03:19:35 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-01 03:19:35 +03:00
|
|
|
]
|
|
|
|
|
2019-10-14 22:58:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-sync"
|
|
|
|
version = "0.1.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-tcp"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.2"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tokio-threadpool"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.9"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "tokio-timer"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.8"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
2017-02-02 03:30:26 +03:00
|
|
|
name = "tokio-tls"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.1.4"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017-02-02 03:30:26 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
"tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-27 17:23:32 +03:00
|
|
|
]
|
|
|
|
|
2019-10-14 22:58:56 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-trace-core"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-08-27 17:23:32 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-udp"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.3"
|
2018-08-27 17:23:32 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
2016-06-03 22:09:38 +03:00
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "tokio-uds"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.2.4"
|
2018-08-28 14:29:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
]
|
|
|
|
|
2018-06-04 20:28:39 +03:00
|
|
|
[[package]]
|
|
|
|
name = "toml"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.4.9"
|
2018-06-04 20:28:39 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-06-04 20:28:39 +03:00
|
|
|
]
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "treeline"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-31 01:06:14 +03:00
|
|
|
[[package]]
|
|
|
|
name = "try-lock"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "try-lock"
|
|
|
|
version = "0.2.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "twoway"
|
|
|
|
version = "0.1.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2018-07-26 22:52:50 +03:00
|
|
|
[[package]]
|
|
|
|
name = "ucd-util"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.3"
|
2018-07-26 22:52:50 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unicase"
|
|
|
|
version = "1.4.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-12 02:38:16 +03:00
|
|
|
]
|
|
|
|
|
2016-06-03 22:09:38 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unicase"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "2.2.0"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-bidi"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "0.3.4"
|
2016-06-03 22:09:38 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-06-03 22:09:38 +03:00
|
|
|
]
|
|
|
|
|
|
|
|
[[package]]
|
|
|
|
name = "unicode-normalization"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.7"
|
2017-04-05 17:42:06 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-width"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.1.5"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-03-22 20:21:52 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-xid"
|
|
|
|
version = "0.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 14:29:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unicode-xid"
|
|
|
|
version = "0.1.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-08-10 17:50:33 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unix_socket"
|
|
|
|
version = "0.5.0"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-08-10 17:50:33 +03:00
|
|
|
]
|
|
|
|
|
2017-05-18 23:53:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "unreachable"
|
2018-01-07 18:33:04 +03:00
|
|
|
version = "1.0.0"
|
2017-05-18 23:53:00 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2017-04-21 07:09:15 +03:00
|
|
|
[[package]]
|
|
|
|
name = "untrusted"
|
2018-08-27 17:23:32 +03:00
|
|
|
version = "0.6.2"
|
2017-04-21 07:09:15 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-07-12 02:38:16 +03:00
|
|
|
[[package]]
|
|
|
|
name = "url"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.7.2"
|
2017-02-02 03:30:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-08-28 14:29:00 +03:00
|
|
|
"idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
"percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-02-02 03:30:26 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "utf8-ranges"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "1.0.2"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-02-02 15:11:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "utf8parse"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.1"
|
2018-02-02 15:11:11 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2017-01-27 22:39:47 +03:00
|
|
|
[[package]]
|
|
|
|
name = "uuid"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.6.5"
|
2017-01-27 22:39:47 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-01-27 22:39:47 +03:00
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "uuid"
|
|
|
|
version = "0.7.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "vcpkg"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.2.6"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "vec_map"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.8.1"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2019-07-18 08:03:39 +03:00
|
|
|
[[package]]
|
|
|
|
name = "version-compare"
|
|
|
|
version = "0.0.8"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "version_check"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.1.5"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2016-11-29 03:59:42 +03:00
|
|
|
[[package]]
|
2017-05-18 23:53:00 +03:00
|
|
|
name = "void"
|
2016-11-29 03:59:42 +03:00
|
|
|
version = "1.0.2"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2017-05-18 23:53:00 +03:00
|
|
|
|
2018-02-02 15:11:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "vte"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.3.3"
|
2018-02-02 15:11:11 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-02 15:11:11 +03:00
|
|
|
]
|
|
|
|
|
2017-05-18 23:53:00 +03:00
|
|
|
[[package]]
|
|
|
|
name = "walkdir"
|
|
|
|
version = "1.0.7"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2016-11-29 03:59:42 +03:00
|
|
|
dependencies = [
|
|
|
|
"kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
2017-05-18 23:53:00 +03:00
|
|
|
"same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-11-29 03:59:42 +03:00
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-07-31 01:06:14 +03:00
|
|
|
[[package]]
|
|
|
|
name = "want"
|
|
|
|
version = "0.0.4"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-07-31 01:06:14 +03:00
|
|
|
"try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-09-27 17:30:22 +03:00
|
|
|
[[package]]
|
|
|
|
name = "want"
|
2019-10-14 22:58:56 +03:00
|
|
|
version = "0.2.0"
|
2018-09-27 17:30:22 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
|
|
|
"futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-07-14 13:38:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "which"
|
2018-08-28 15:57:35 +03:00
|
|
|
version = "2.0.0"
|
2016-08-08 22:06:06 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
2016-07-14 13:38:26 +03:00
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-07-14 13:38:26 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "winapi"
|
2016-07-15 18:06:16 +03:00
|
|
|
version = "0.2.8"
|
2016-05-12 22:03:37 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "winapi"
|
2018-09-27 17:30:22 +03:00
|
|
|
version = "0.3.6"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-02-01 18:29:23 +03:00
|
|
|
"winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
"winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-01-07 18:33:04 +03:00
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "winapi-build"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "winapi-i686-pc-windows-gnu"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.4.0"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 14:41:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "winapi-util"
|
|
|
|
version = "0.1.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:41:11 +03:00
|
|
|
]
|
|
|
|
|
2018-01-07 18:33:04 +03:00
|
|
|
[[package]]
|
|
|
|
name = "winapi-x86_64-pc-windows-gnu"
|
2018-02-01 18:29:23 +03:00
|
|
|
version = "0.4.0"
|
2018-01-07 18:33:04 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
|
2018-08-28 14:41:11 +03:00
|
|
|
[[package]]
|
|
|
|
name = "wincolor"
|
|
|
|
version = "1.0.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:41:11 +03:00
|
|
|
"winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2016-05-12 22:03:37 +03:00
|
|
|
[[package]]
|
|
|
|
name = "ws2_32-sys"
|
|
|
|
version = "0.2.1"
|
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2016-07-15 18:06:16 +03:00
|
|
|
"winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-12 22:03:37 +03:00
|
|
|
"winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
|
|
|
|
]
|
|
|
|
|
2018-04-12 04:25:15 +03:00
|
|
|
[[package]]
|
|
|
|
name = "xattr"
|
2018-08-28 14:29:00 +03:00
|
|
|
version = "0.2.2"
|
2018-04-12 04:25:15 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2018-09-27 17:30:22 +03:00
|
|
|
"libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-04-12 04:25:15 +03:00
|
|
|
]
|
|
|
|
|
2016-05-21 21:14:26 +03:00
|
|
|
[[package]]
|
|
|
|
name = "zip"
|
2018-07-15 16:37:46 +03:00
|
|
|
version = "0.4.2"
|
2016-05-21 21:14:26 +03:00
|
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
|
dependencies = [
|
2019-10-14 22:58:56 +03:00
|
|
|
"flate2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"msdos_time 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-02-01 18:29:23 +03:00
|
|
|
"podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
|
2018-08-28 14:29:00 +03:00
|
|
|
"time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
|
2016-05-21 21:14:26 +03:00
|
|
|
]
|
|
|
|
|
2016-10-26 01:14:21 +03:00
|
|
|
[metadata]
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e"
|
2018-07-12 13:46:33 +03:00
|
|
|
"checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum ar 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2b66b66d06e6bb6a8c6866d31ac48fc225ef2823d29940165c8084b4f120d2b3"
|
|
|
|
"checksum arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5c5ed110e2537bdd3f5b9091707a8a5556a72ac49bbd7302ae0b28fdccb3246c"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum arraydeque 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e300327073b806ffc81fccb228b2d4131ac7ef1b1a015f7b0c399c7f886cacc6"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum arrayvec 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "a1e964f9e24d588183fcb43503abda40d288c8657dfc27311516ce2f05675aef"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum ascii 0.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum ascii 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a5fc969a8ce2c9c0c4b0429bb8431544f6658283c8326ba5ff8c762b75369335"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum assert_cmd 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c5b60c276f334145cf2cec09c5bb6f63523f078c0c850909f66bca8f933cf809"
|
|
|
|
"checksum atty 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9a7d5b8723950951411ee34d271d99dddcc2035a16ab25310ea2c8cfd4369652"
|
2018-08-28 15:57:35 +03:00
|
|
|
"checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a"
|
|
|
|
"checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
|
2017-05-18 23:53:00 +03:00
|
|
|
"checksum bincode 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e103c8b299b28a9c6990458b7013dc4a8356a9b854c51b9883241f5866fac36e"
|
2018-08-30 23:08:17 +03:00
|
|
|
"checksum bincode 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9f2fb9e29e72fd6bc12071533d5dc7664cb01480c59406f656d7ac25c7bd8ff7"
|
2017-06-14 18:20:12 +03:00
|
|
|
"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "228047a76f468627ca71776ecdebd732a3423081fcf5125585bcd7c49886ce12"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum buf_redux 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "b9279646319ff816b05fb5897883ece50d7d854d12b59992683d4f8a71b0f949"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum bufstream 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d"
|
|
|
|
"checksum bytes 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "40ade3d27603c2cb345eb0912aec461a6dec7e06a4ae48589904e808335c7afa"
|
2017-07-13 21:33:57 +03:00
|
|
|
"checksum case 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e88b166b48e29667f5443df64df3c61dc07dc2b1a0b0d231800e07f09a33ecc1"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
|
|
|
|
"checksum cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "082bb9b28e00d3c9d39cc03e64ce4cea0f1bb9b3fde493f0cbc008472d22bdf4"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum chrono 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "45912881121cb26fad7c38c17ba7daa18764771836b34fab7d3fbd93ed633878"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum chunked_transfer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
|
2018-07-12 13:46:33 +03:00
|
|
|
"checksum clap 2.32.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b957d88f4b6a63b9d70d5f454ac8011819c6efa7727858f458ab71c756ce2d3e"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum combine 3.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "db733c5d0f4f52e78d4417959cadf0eecc7476e7f9ece05677912571a4af34e2"
|
2018-08-28 15:42:57 +03:00
|
|
|
"checksum conhash 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "99d6364d028778d0d98b6014fa5882da377cd10d3492b7734d266a428e9b1fca"
|
2017-02-02 03:30:26 +03:00
|
|
|
"checksum core-foundation 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25bfd746d203017f7d5cbd31ee5d8e17f94b6521c7af77ece6c9e4b2d4b16c67"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum core-foundation 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "286e0b41c3a20da26536c6000a280585d519fd07b3956b43aed8a79e9edce980"
|
2017-02-02 03:30:26 +03:00
|
|
|
"checksum core-foundation-sys 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "065a5d7ffdcbc8fa145d6f0746f3555025b9097a9e9cda59f7467abae670c78d"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa"
|
2018-09-19 07:33:52 +03:00
|
|
|
"checksum counted-array 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "384f8c53175c890920b6e0127b730709d2a173ca6c4dfdc81618ac9b46f648fe"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3"
|
|
|
|
"checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum crossbeam-utils 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c55913cc2799171a550e307918c0a360e8c16004820291bf3b638969b4a01816"
|
2018-08-28 15:44:11 +03:00
|
|
|
"checksum daemonize 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4093d27eb267d617f03c2ee25d4c3ca525b89a76154001954a11984508ffbde5"
|
2017-07-13 21:33:57 +03:00
|
|
|
"checksum derive-error 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "629f1bb3abce791912ca85a24676fff54464f7deb122906adabc90fb96e876d3"
|
2018-07-26 17:16:55 +03:00
|
|
|
"checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum directories 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "72d337a64190607d4fcca2cb78982c5dd57f4916e19696b48a575fa746b6cb0f"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum dtoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6d301140eb411af13d3115f9a562c85cc6b541ade9dfa314132244aaee7489dd"
|
|
|
|
"checksum either 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3be565ca5c557d7f59e7cfcf1844f9e3033650c929c6566f511e8005f205c1d0"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
|
|
|
|
"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
|
|
|
|
"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
|
|
|
|
"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
|
|
|
|
"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
|
|
|
|
"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
|
|
|
|
"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
|
2018-11-23 17:23:31 +03:00
|
|
|
"checksum encoding_rs 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)" = "065f4d0c826fdaef059ac45487169d918558e3cf86c9d89f6e81cf52369126e5"
|
2018-08-28 14:41:11 +03:00
|
|
|
"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
|
2019-02-28 22:42:56 +03:00
|
|
|
"checksum error-chain 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ff511d5dc435d703f4971bc399647c9bc38e20cb41452e3b9feb4765419ed3f3"
|
2019-06-02 19:03:59 +03:00
|
|
|
"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum escargot 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "19db1f7e74438642a5018cdf263bb1325b2e792f02dd0a3ca6d6c0f0d7b1d5a5"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum failure 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6dd377bcc1b1b7ce911967e3ec24fa19c3224394ec05b54aa7b083d498341ac7"
|
|
|
|
"checksum failure_derive 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "64c2d913fe8ed3b6c6518eedf4538255b989945c14c2a7d5cbff62a5e2120596"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "714653f3e34871534de23771ac7b26e999651a0a228f47beb324dfdf1dd4b10f"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum filetime 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a2df5c1a8c4be27e7707789dc42ae65976e60b394afd293d1419ab915833e646"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum flate2 1.0.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ad3c5233c9a940c8719031b423d7e6c16af66e031cb0420b0896f5245bf181d3"
|
2018-07-26 22:52:50 +03:00
|
|
|
"checksum float-cmp 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "134a8fa843d80a51a5b77d36d42bc2def9edcb0262c914861d08129fd1926600"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
|
|
|
"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
|
|
|
"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
|
|
|
|
"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum futures 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "49e7653e374fe0d0c12de4250f0bdb60680b8c80eed558c5c7538eec9c89e21b"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum getopts 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "0a7292d30132fb5424b354f5dc02512a86e4c516fe544bb7a25e7f266951b797"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum h2 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "7dd33bafe2e6370e6c8eb0cf1b8c5f93390b90acde7e9b03723f166b28b648ed"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "372bcb56f939e449117fb0869c2e8fd8753a8223d92a172c6e808cf123a5b6e4"
|
|
|
|
"checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum httparse 1.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8734b0cfd3bc3e101ec59100e101c2eecd19282202e87808b3037b442777a83"
|
2018-08-28 14:41:11 +03:00
|
|
|
"checksum humantime 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0484fda3e7007f2a4a0d9c3a703ca38c71c54c55602ce4660c419fd32e188c9e"
|
2018-07-31 01:06:14 +03:00
|
|
|
"checksum hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)" = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)" = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum hyper-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb1bd5e518d3065840ab315dbbf44e4420e5f7d80e2cb93fa6ffffc50522378"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum hyperx 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "78e2d2253d7a17929560fc3adf48c48fc924c94fa4507e037a60e6bc55c0eda6"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum itertools 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)" = "7cef527957675adbb9ec77a7e3c44c69d729dc0a80e64fe7d380138ef851af1d"
|
|
|
|
"checksum itoa 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1306f3464951f30e30d12373d31c79fbd52d236e5e896fd92f96ec7babbbe60b"
|
2018-03-16 20:39:18 +03:00
|
|
|
"checksum jobserver 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "60af5f849e1981434e4a31d3d782c4774ae9b434ce55b101a96ecfd09147e8be"
|
2018-10-20 00:16:50 +03:00
|
|
|
"checksum jsonwebtoken 5.0.1 (git+https://github.com/Jake-Shadle/jsonwebtoken.git?rev=2f469a61)" = "<none>"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
|
|
|
|
"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
|
|
|
|
"checksum lazycell 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ddba4c30a78328befecec92fc94970e53b3ae385827d28620f0f5bb2493081e0"
|
|
|
|
"checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
|
2018-10-26 22:34:03 +03:00
|
|
|
"checksum libflate 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "21138fc6669f438ed7ae3559d5789a5f0ba32f28c1f0608d1e452b0bb06ee936"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum libmount 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d45f88f32c57ebf3688ada41414dc700aab97ad58e26cbcda6af50da53559a"
|
2016-11-29 03:59:42 +03:00
|
|
|
"checksum linked-hash-map 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bda158e0dabeb97ee8a401f4d17e479d6b891a14de0bba79d5cc2d4d325b5e48"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum local-encoding 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e1ceb20f39ff7ae42f3ff9795f3986b1daad821caaa1e1732a0944103a5a1a66"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c84ec4b527950aa83a329754b01dbe3f58361d1c5efacd1f6d68c494d08a17c6"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
|
2018-08-28 15:42:57 +03:00
|
|
|
"checksum md5 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "79c56d6a0b07f9e19282511c83fc5b086364cbae4ba8c7d5f190c3d9b0425a48"
|
|
|
|
"checksum memcached-rs 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0f45690519137679de66b2bdb60e37a0d4f17adde980930a05eef66929394f73"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum memchr 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "148fab2e51b4f1cfc66da2a7c32981d1d3c083a803978268bb11fe4b86925e7a"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum memoffset 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0f9dc261e2b62d7a622bf416ea3c5245cdd5d9a7fcc428c0d06804dfce1775b3"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum mime 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "0a907b83e7b9e987032439a387e187119cddafc92d5c2aaeb1d92580a793f630"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum mime_guess 1.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2d4c0961143b8efdcfa29c3ae63281601b446a4a668165454b6c90f8024954c5"
|
|
|
|
"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum miniz_oxide 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "304f66c19be2afa56530fa7c39796192eef38618da8d19df725ad7c6d6b2aaae"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum mio 0.6.16 (registry+https://github.com/rust-lang/crates.io-index)" = "71646331f2619b1026cc302f87a2b8b648d5c6dd6937846a16cc8ce0f347f432"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum mio-named-pipes 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum mio-uds 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "966257a94e196b11bb43aca423754d87429960a768de9414f3691d6957abf125"
|
2017-03-09 21:00:18 +03:00
|
|
|
"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum miow 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "396aa0f2003d7df8395cb93e09871561ccc3e785f0acb369170e8cc74ddf9226"
|
|
|
|
"checksum msdos_time 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "aad9dfe950c057b1bfe9c1f2aa51583a8468ef2a5baba2ebbe06d775efeb7729"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum multipart 0.13.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92f54eb45230c3aa20864ccf0c277eeaeadcf5e437e91731db498dbf7fbe0ec6"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum native-tls 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f74dbadc8b43df7864539cedb7bc91345e532fdd913cfdc23ad94f4d2d40fbc0"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum native-tls 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff8e08de0070bbf4c31f452ea2a70db092f36f6f2e4d897adf5674477d488fb2"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum nix 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d37e713a259ff641624b6cb20e3b12b2952313ba36b6823c0f16e6cfd9e5de17"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum normalize-line-endings 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "2e0a1a39eab95caf4f5556da9289b9e68f0aafac901b2ce80daaf020d3b733a8"
|
|
|
|
"checksum num-integer 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "e83d528d2677f0518c570baf2b7abdcf0cd2d248860b68507bdcb3e91d4c0cea"
|
|
|
|
"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0b3a5d7cc97d6d30d8b9bc8fa19bf45349ffe46241e8816f50f62f6d6aaabee1"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum openssl 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)" = "a3605c298474a3aa69de92d21139fb5e2a81688d308262359d85cdd0d12a7985"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
|
|
|
|
"checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106"
|
|
|
|
"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum parking_lot 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum parking_lot_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum phf 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "cec29da322b242f4c3098852c77a0ca261c9c01b806cae85a5572a1eb94db9a6"
|
|
|
|
"checksum phf_codegen 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "7d187f00cd98d5afbcd8898f6cf181743a449162aeb329dcd2f3849009e605ad"
|
|
|
|
"checksum phf_generator 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "03dc191feb9b08b0dc1330d6549b795b9d81aec19efe6b4a45aec8d4caee0c4b"
|
|
|
|
"checksum phf_shared 0.7.23 (registry+https://github.com/rust-lang/crates.io-index)" = "b539898d22d4273ded07f64a05737649dc69095d92cb87c7097ec68e3f150b93"
|
|
|
|
"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum predicates 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f31e7977fc111984fdac76b6ae3a4cb598008fc6fd02dfdca189bf180bd7be20"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum predicates-core 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "85f80bc390d1c02a4cdaa63f27f05c3c426679eb65433d8dd65d392147e4e5c5"
|
|
|
|
"checksum predicates-tree 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2e86df9b81bdcb0a5141aca9d2b9c5e0c558ef6626d3ae2c12912f5c9df740bd"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum proc-macro2 0.4.24 (registry+https://github.com/rust-lang/crates.io-index)" = "77619697826f31a02ae974457af0b29b723e5619e113e9397b8b82c6bd253f09"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum pulldown-cmark 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8361e81576d2e02643b04950e487ec172b687180da65c731c03cf336784e6c07"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
|
2017-03-22 20:21:52 +03:00
|
|
|
"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum quote 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "53fa22a1994bd0f9372d7a816207d8a2677ad0325b073f5c5332760f0fb62b5c"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum rand 0.3.22 (registry+https://github.com/rust-lang/crates.io-index)" = "15a732abf9d20f0ad8eeb6f909bf6868722d9a06e1e50802b6a70351f40b4eb1"
|
|
|
|
"checksum rand 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8356f47b32624fef5b3301c1be97e5944ecdd595409cc5da11d05f211db6cfbd"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum rand 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e464cd887e869cddcae8792a4ee31d23c7edd516700695608f5b98c67ee0131c"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum rand 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae9d223d52ae411a33cf7e54ec6034ec165df296ccd23533d671a28252b6f66a"
|
|
|
|
"checksum rand_chacha 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "771b009e3a508cb67e8823dda454aaa5368c7bc1c16829fb77d3e980440dd34a"
|
|
|
|
"checksum rand_core 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1961a422c4d189dfb50ffa9320bf1f2a9bd54ecb92792fb9477f99a1045f3372"
|
|
|
|
"checksum rand_core 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0905b6b7079ec73b314d4c748701f6931eb79fd97c668caa3f1899b22b32c6db"
|
|
|
|
"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
|
|
|
|
"checksum rand_isaac 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d6ecfe9ebf36acd47a49d150990b047a5f7db0a7236ee2414b7ff5cc1097c7b"
|
|
|
|
"checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05"
|
|
|
|
"checksum rand_xorshift 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effa3fcaa47e18db002bdde6060944b6d2f9cfd8db471c30e873448ad9187be3"
|
|
|
|
"checksum redis 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c747d743d48233f9bc3ed3fb00cb84c1d98d8c7f54ed2d4cca9adf461a7ef3"
|
|
|
|
"checksum redox_syscall 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cf8fb82a4d1c9b28f1c26c574a5b541f5ffb4315f6c9a791fa47b6a04438fe93"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum redox_termios 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467"
|
|
|
|
"checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum remove_dir_all 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3488ba1b9a2084d38645c4c08276a1752dcbf2c7130d74f1569681ad5d2799c5"
|
2018-08-28 15:47:29 +03:00
|
|
|
"checksum reqwest 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)" = "738769ec83daf6c1929dc9dae7d69ed3779b55ae5c356e989dcd3aa677d8486e"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum reqwest 0.9.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3c4ef83e0beb14bfe38b9f01330a5bc8e965a9f9628690aa28383746dac1e925"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum retry 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29460f6011a25fc70b22010e796bd98330baccaa0005cba6f90b858a510dec0d"
|
2019-02-28 22:42:56 +03:00
|
|
|
"checksum ring 0.13.5 (registry+https://github.com/rust-lang/crates.io-index)" = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a"
|
2018-09-04 22:36:28 +03:00
|
|
|
"checksum rouille 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0845b9c39ba772da769fe2aaa4d81bfd10695a7ea051d0510702260ff4159841"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a"
|
2018-08-28 15:57:35 +03:00
|
|
|
"checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
|
2017-05-18 23:53:00 +03:00
|
|
|
"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
|
|
|
|
"checksum ryu 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "eb9e9b8cde282a9fe6a42dd4681319bfb63f121b8a8ee9439c6f4107e58a46f7"
|
2017-06-14 18:20:12 +03:00
|
|
|
"checksum safemem 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e27a8b19b835f7aea908818e871f5cc3a5a186550c30773be987e155e8163d8f"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum safemem 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dca453248a96cb0749e36ccdfe2b0b4e54a61bfef89fb97ec621eb8e0a93dd9"
|
2017-05-18 23:53:00 +03:00
|
|
|
"checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
|
|
|
|
"checksum security-framework 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "dfa44ee9c54ce5eecc9de7d5acbad112ee58755239381f687e564004ba4a2332"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum security-framework 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "697d3f3c23a618272ead9e1fb259c1411102b31c6af8b93f1d64cca9c3b0e8e0"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum security-framework-sys 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "5421621e836278a0b139268f36eee0dc7e389b784dc3f79d8f11aabadf41bead"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf"
|
2018-10-23 10:33:42 +03:00
|
|
|
"checksum selenium-rs 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ed6b3705e93d4e523d45d1c4cecadd89b9c120cd6c3f9ca90ed394b9f78fe8bf"
|
2018-08-28 15:42:57 +03:00
|
|
|
"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
|
|
|
|
"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef"
|
|
|
|
"checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c"
|
|
|
|
"checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811"
|
|
|
|
"checksum serde_urlencoded 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "d48f9f99cd749a2de71d29da5f948de7f2764cc5a9d7f3c97e3514d4ee6eabf2"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum sha1 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8941ae94fa73d0f73b422774b3a40a7195cecd88d1c090f4b37ade7dc795ab66"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum skeptic 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24ebf8a06f5f8bae61ae5bbc7af7aac4ef6907ae975130faba1199e5fe82256a"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum slab 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5f9776d6b986f77b35c6cf846c11ad986ff128fe0b2b63a3628e3755e8d3102d"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "622df2d454c29a4d89b30dc3b27b42d7d90d6b9e587dbf8f67652eb7514da484"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum socket2 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c4d11a52082057d87cb5caa31ad812f4504b97ab44732cd8359df2e9ff9f48e7"
|
|
|
|
"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum string 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98998cced76115b1da46f63388b909d118a37ae0be0f82ad35773d4a4bc9d18d"
|
2018-02-02 15:11:11 +03:00
|
|
|
"checksum strip-ansi-escapes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d63676e2abafa709460982ddc02a3bb586b6d15a49b75c212e06edd3933acee"
|
2018-07-12 13:46:33 +03:00
|
|
|
"checksum strsim 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4f380125926a99e52bc279241539c018323fab05ad6368b56f93d9369ff550"
|
2017-05-18 23:53:00 +03:00
|
|
|
"checksum syn 0.11.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d3b891b9015c88c576343b9b3e41c2c11a51c219ef067b264bd9c8aa9b441dad"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum syn 0.15.21 (registry+https://github.com/rust-lang/crates.io-index)" = "816b7af21405b011a23554ea2dc3f6576dc86ca557047c34098c1d741f10f823"
|
2017-03-22 20:21:52 +03:00
|
|
|
"checksum synom 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a393066ed9010ebaed60b9eafa373d4b1baac186dd7e008555b0f702b51945b6"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum synstructure 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "73687139bf99285483c96ac0add482c3776528beac1d97d444f6e91f203a2015"
|
2019-02-28 22:42:56 +03:00
|
|
|
"checksum syslog 4.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a0641142b4081d3d44beffa4eefd7346a228cdf91ed70186db2ca2cef762d327"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tar 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "a303ba60a099fcd2aaa646b14d2724591a96a75283e4b7ed3d1a1658909d9ae2"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tempfile 3.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "55c1195ef8513f3273d55ff59fe5da6940287a0d7a98331254397f464833675b"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum term 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5e6b677dd1e8214ea1ef4297f85dbcbed8e8cdddb561040cc998ca2551c37561"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum termcolor 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4096add70612622289f2fdcdbd5086dc81c1e2675e6ae58d6c4f62a16c6d7f2f"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum termion 1.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "689a3bdfaab439fd92bc87df5c4c78417d3cbe537487274e9b0b2dce76e92096"
|
2018-07-12 13:46:33 +03:00
|
|
|
"checksum textwrap 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "307686869c93e71f94da64286f9a9524c0f308a9e1c87a583de8e9c9039ad3f6"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum threadpool 1.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b"
|
2018-10-26 22:34:03 +03:00
|
|
|
"checksum tiny_http 0.6.0 (git+https://github.com/aidanhs/tiny-http-sccache.git?rev=a14fa0a)" = "<none>"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum tokio 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "1021bb1f4150435ab8f222eb7ed37c60b2d57037def63ba43085a79f387512d7"
|
|
|
|
"checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tokio-codec 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6"
|
|
|
|
"checksum tokio-executor 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c117b6cf86bb730aab4834f10df96e4dd586eff2c3c27d3781348da49e255bde"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tokio-io 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21"
|
|
|
|
"checksum tokio-named-pipes 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d282d483052288b2308ba5ee795f5673b159c9bdf63c385a05609da782a5eae"
|
|
|
|
"checksum tokio-process 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "88e1281e412013f1ff5787def044a9577a0bed059f451e835f1643201f8b777d"
|
|
|
|
"checksum tokio-reactor 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "502b625acb4ee13cbb3b90b8ca80e0addd263ddacf6931666ef751e610b07fb5"
|
2017-07-13 21:33:57 +03:00
|
|
|
"checksum tokio-serde 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "894168193c4f80862a2244ff953b69145a9961a9efba39500e0970b083d0649c"
|
|
|
|
"checksum tokio-serde-bincode 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "02e35c8d60a5e87cfb30dd562a309e56f8a6d36617b0a76c87f04d5466607ca8"
|
Rewrite the server module with Tokio
This commit rewrites the `server` module of sccache to be backed with Tokio. The
previous version was written with `mio`, which Tokio is built on, but is
unfortunately less ergonomic. Tokio is the state-of-the-art for asynchronous
programming in Rust and sccache serves as a great testing ground for ergonomics!
It's intended that the support added here will eventually extend to many other
operations that sccache does as well. For example thread spawning has all been
replaced with `CpuPool` to have a shared pool for I/O operations and such
(namely the filesystem). Eventually the HTTP requests made by the S3 backend can
be integrated with the Tokio branch of Hyper as well to run that on the event
loop instead of in a worker thread. I'd also like to eventually extend this with
`tokio-process` as well to move process spawning off helper threads as well, but
I'm leaving that to a future commit as well.
Overall I found the transition was quite smooth, with the high level
architecture look like:
* The `tokio-proto` crate is used in streaming mode. The streaming part is used
for the one RPC sccache gets which requires a second response to be sent later
on. This second response is the "response body" in tokio-proto terms.
* All of sccache's logic is manifested in an implementation of the `Service`
trait.
* The transport layer is provided with `tokio_core::io::{Framed, Codec}`, and
simple deserialization/serialization is performed with protobuf.
Some differences in design are:
* The `SccacheService` for now is just a bunch of reference-counted pointers,
making it cheap to clone. As the futures it returns progress they will each
retain a reference to a cloned copy of the `SccacheService`. Before all this
data was just stored and manipulated in a struct directly, but it's now
directly managed through shared memory.
* The storage backends share a thread pool with the main server instead of
spawning threads.
And finally, some things I've learned along the way:
* Sharing data between futures isn't a trivial operation. It took an explicit
decision to use `Rc` and I'm not sure I'm 100% happy with how the ergonomics
played out.
* Shutdown is pretty tricky here. I've tried to carry over all the previous
logic but it definitely required not using `TcpServer` in tokio-proto at the
very least, and otherwise required a few custom futures and such to track the
various states. I have a hunch that tokio-proto could provide more options out
of the box for something like this.
2017-01-31 04:04:03 +03:00
|
|
|
"checksum tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tokio-signal 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "dd6dc5276ea05ce379a16de90083ec80836440d5ef8a6a39545a3207373b8296"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tokio-tcp 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912"
|
|
|
|
"checksum tokio-threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "56c5556262383032878afad66943926a1d1f0967f17e94bd7764ceceb3b70e7f"
|
|
|
|
"checksum tokio-timer 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f37f0111d76cc5da132fe9bc0590b9b9cfd079bc7e75ac3846278430a299ff8"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum tokio-tls 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "772f4b04e560117fe3b0a53e490c16ddc8ba6ec437015d91fa385564996ed913"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum tokio-trace-core 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "350c9edade9830dc185ae48ba45667a445ab59f6167ef6d0254ec9d2430d9dd3"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum tokio-udp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92"
|
|
|
|
"checksum tokio-uds 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "99ce87382f6c1a24b513a72c048b2c8efe66cb5161c9061d00bee510f08dc168"
|
|
|
|
"checksum toml 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "19782e145d5abefb03758958f06ea35f7b1d8421b534140e0238fd3d0bfd66e3"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
|
2018-07-31 01:06:14 +03:00
|
|
|
"checksum try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum twoway 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum ucd-util 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535c204ee4d8434478593480b8f86ab45ec9aae0e83c568ca81abf0fd0e88f86"
|
2018-07-12 02:38:16 +03:00
|
|
|
"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum unicase 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d3218ea14b4edcaccfa0df0a64a3792a2c32cc706f1b336e48867f9d3147f90"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum unicode-normalization 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0180bc61fc5a987082bfa111f4cc95c4caff7f9799f3e46df09163a937aa25"
|
|
|
|
"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
|
2017-03-22 20:21:52 +03:00
|
|
|
"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
|
2017-08-10 17:50:33 +03:00
|
|
|
"checksum unix_socket 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564"
|
2018-01-07 18:33:04 +03:00
|
|
|
"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
|
2018-08-27 17:23:32 +03:00
|
|
|
"checksum untrusted 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
|
|
|
|
"checksum utf8-ranges 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "796f7e48bef87609f7ade7e06495a87d5cd06c7866e6a5cbfceffc558a243737"
|
|
|
|
"checksum utf8parse 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8772a4ccbb4e89959023bc5b7cb8623a795caa7092d99f3aa9501b9484d4557d"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum uuid 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dab5c5526c5caa3d106653401a267fed923e7046f35895ffcb5ca42db64942e6"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum vcpkg 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "def296d3eb3b12371b2c7d0e83bfe1403e4db2d7a0bba324a12b21c4ee13143d"
|
|
|
|
"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
|
2019-07-18 08:03:39 +03:00
|
|
|
"checksum version-compare 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "16dc2b8f2d402e72b9074db40ceee7c020042561e6ea0e2d4bc0354b60457603"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
|
2017-05-18 23:53:00 +03:00
|
|
|
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum vte 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f42f536e22f7fcbb407639765c8fd78707a33109301f834a594758bedd6e8cf"
|
2017-05-18 23:53:00 +03:00
|
|
|
"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
|
2018-07-31 01:06:14 +03:00
|
|
|
"checksum want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1"
|
2019-10-14 22:58:56 +03:00
|
|
|
"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
|
2018-08-28 15:57:35 +03:00
|
|
|
"checksum which 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49c4f580e93079b70ac522e7bdebbe1568c8afa7d8d05ee534ee737ca37d2f51"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
|
2018-09-27 17:30:22 +03:00
|
|
|
"checksum winapi 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92c1eb33641e276cfa214a0522acad57be5c56b10cb348b3c5117db75f3ac4b0"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
2018-08-28 14:41:11 +03:00
|
|
|
"checksum winapi-util 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "afc5508759c5bf4285e61feb862b6083c8480aec864fa17a81fdec6f69b461ab"
|
2018-02-01 18:29:23 +03:00
|
|
|
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
2018-08-28 14:41:11 +03:00
|
|
|
"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
|
2016-10-26 01:14:21 +03:00
|
|
|
"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
|
2018-08-28 14:29:00 +03:00
|
|
|
"checksum xattr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "244c3741f4240ef46274860397c7c74e50eb23624996930e484c16679633a54c"
|
2018-07-15 16:37:46 +03:00
|
|
|
"checksum zip 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "36b9e08fb518a65cf7e08a1e482573eb87a2f4f8c6619316612a3c1f162fe822"
|