]> git.puffer.fish Git - matthieu/nova.git/commitdiff
gateway improvements, common packages and examples
authorMatthieu <matthieu@developershouse.xyz>
Thu, 9 Sep 2021 18:16:39 +0000 (22:16 +0400)
committerMatthieu <matthieu@developershouse.xyz>
Thu, 9 Sep 2021 18:16:39 +0000 (22:16 +0400)
95 files changed:
Cargo.lock
Cargo.toml
cargo/crates.bzl
cargo/remote/BUILD.bytes-0.4.12.bazel [new file with mode: 0644]
cargo/remote/BUILD.cfg-if-0.1.10.bazel [new file with mode: 0644]
cargo/remote/BUILD.cloudabi-0.0.3.bazel [new file with mode: 0644]
cargo/remote/BUILD.crossbeam-deque-0.7.4.bazel [new file with mode: 0644]
cargo/remote/BUILD.crossbeam-epoch-0.8.2.bazel [new file with mode: 0644]
cargo/remote/BUILD.crossbeam-queue-0.2.3.bazel [new file with mode: 0644]
cargo/remote/BUILD.crossbeam-utils-0.7.2.bazel [new file with mode: 0644]
cargo/remote/BUILD.enumflags2-0.7.1.bazel [new file with mode: 0644]
cargo/remote/BUILD.enumflags2_derive-0.7.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.fuchsia-zircon-0.3.3.bazel [new file with mode: 0644]
cargo/remote/BUILD.fuchsia-zircon-sys-0.3.3.bazel [new file with mode: 0644]
cargo/remote/BUILD.futures-0.1.31.bazel [new file with mode: 0644]
cargo/remote/BUILD.futures-0.3.17.bazel [new file with mode: 0644]
cargo/remote/BUILD.futures-channel-0.3.17.bazel
cargo/remote/BUILD.futures-executor-0.3.17.bazel [new file with mode: 0644]
cargo/remote/BUILD.futures-util-0.3.17.bazel
cargo/remote/BUILD.iovec-0.1.4.bazel [new file with mode: 0644]
cargo/remote/BUILD.kernel32-sys-0.2.2.bazel [new file with mode: 0644]
cargo/remote/BUILD.lock_api-0.3.4.bazel [new file with mode: 0644]
cargo/remote/BUILD.maybe-uninit-2.0.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.memoffset-0.5.6.bazel [new file with mode: 0644]
cargo/remote/BUILD.mio-0.6.23.bazel [new file with mode: 0644]
cargo/remote/BUILD.mio-uds-0.6.8.bazel [new file with mode: 0644]
cargo/remote/BUILD.miow-0.2.2.bazel [new file with mode: 0644]
cargo/remote/BUILD.net2-0.2.37.bazel [new file with mode: 0644]
cargo/remote/BUILD.parking_lot-0.9.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.parking_lot_core-0.6.2.bazel [new file with mode: 0644]
cargo/remote/BUILD.prometheus-0.12.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.protobuf-2.25.1.bazel [new file with mode: 0644]
cargo/remote/BUILD.redox_syscall-0.1.57.bazel [new file with mode: 0644]
cargo/remote/BUILD.rustc_version-0.2.3.bazel [new file with mode: 0644]
cargo/remote/BUILD.semver-0.9.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.semver-parser-0.7.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.smallvec-0.6.14.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-0.1.22.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-codec-0.1.2.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-current-thread-0.1.7.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-executor-0.1.10.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-fs-0.1.7.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-io-0.1.13.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-reactor-0.1.12.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-scoped-0.1.0.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-sync-0.1.8.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-tcp-0.1.4.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-threadpool-0.1.18.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-timer-0.2.13.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-udp-0.1.6.bazel [new file with mode: 0644]
cargo/remote/BUILD.tokio-uds-0.2.7.bazel [new file with mode: 0644]
cargo/remote/BUILD.winapi-0.2.8.bazel [new file with mode: 0644]
cargo/remote/BUILD.winapi-build-0.1.1.bazel [new file with mode: 0644]
cargo/remote/BUILD.ws2_32-sys-0.2.1.bazel [new file with mode: 0644]
common/Cargo.toml [deleted file]
common/cargo/BUILD.bazel [new file with mode: 0644]
common/gateway/BUILD.bazel [deleted file]
common/gateway/compressor.go [deleted file]
common/gateway/event-names.go [deleted file]
common/gateway/transporter.go [deleted file]
common/lib/lib.rs [deleted file]
common/rust/BUILD.bazel [new file with mode: 0644]
common/rust/Cargo.toml [new file with mode: 0644]
common/rust/cargo/BUILD.bazel [new file with mode: 0644]
common/rust/src/config.rs [new file with mode: 0644]
common/rust/src/lib.rs [new file with mode: 0644]
common/rust/src/monitoring.rs [new file with mode: 0644]
examples/config/gateway.yaml [new file with mode: 0644]
examples/config/webhook.yaml [new file with mode: 0644]
examples/docker-compose.gateway.yml [new file with mode: 0644]
examples/docker-compose.webhook.yml [new file with mode: 0644]
examples/docker-compose.yml [new file with mode: 0644]
gateway/BUILD
gateway/Cargo.toml
gateway/cargo/BUILD.bazel
gateway/config/default.yaml [new file with mode: 0644]
gateway/src/client/connexion.rs
gateway/src/client/error.rs [deleted file]
gateway/src/client/mod.rs
gateway/src/client/payloads/payloads.rs
gateway/src/client/shard.rs [deleted file]
gateway/src/client/structs.rs [new file with mode: 0644]
gateway/src/client/traits/message_handler.rs [deleted file]
gateway/src/client/traits/mod.rs [deleted file]
gateway/src/client/utils.rs
gateway/src/cluster_manager.rs [new file with mode: 0644]
gateway/src/config.rs [new file with mode: 0644]
gateway/src/main.rs
webhook/BUILD
webhook/Cargo.toml
webhook/config/default.yaml
webhook/src/config.rs [new file with mode: 0644]
webhook/src/handle.rs
webhook/src/main.rs
webhook/src/utils.rs [deleted file]

index 578e9b78e46f66d955c2a471245308d87de1134c..405147049610ab82651259197cc81ed50322ddca 100644 (file)
@@ -102,7 +102,7 @@ checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 dependencies = [
  "hermit-abi",
  "libc",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -167,6 +167,16 @@ version = "1.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 
+[[package]]
+name = "bytes"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
+dependencies = [
+ "byteorder",
+ "iovec",
+]
+
 [[package]]
 name = "bytes"
 version = "1.1.0"
@@ -185,12 +195,40 @@ version = "1.0.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d26a6ce4b6a484fa3edb70f7efa6fc430fd2b87285fe8b84304fd0936faa0dc0"
 
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
 [[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags",
+]
+
+[[package]]
+name = "common"
+version = "0.1.0"
+dependencies = [
+ "config",
+ "hyper",
+ "log",
+ "pretty_env_logger",
+ "prometheus",
+ "serde 1.0.130",
+ "tokio 1.11.0",
+]
+
 [[package]]
 name = "concurrent-queue"
 version = "1.2.2"
@@ -247,7 +285,7 @@ version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
 ]
 
 [[package]]
@@ -256,8 +294,56 @@ version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4"
 dependencies = [
- "cfg-if",
- "crossbeam-utils",
+ "cfg-if 1.0.0",
+ "crossbeam-utils 0.8.5",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+dependencies = [
+ "autocfg",
+ "cfg-if 0.1.10",
+ "crossbeam-utils 0.7.2",
+ "lazy_static",
+ "maybe-uninit",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if 0.1.10",
+ "crossbeam-utils 0.7.2",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg",
+ "cfg-if 0.1.10",
+ "lazy_static",
 ]
 
 [[package]]
@@ -266,7 +352,7 @@ version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "lazy_static",
 ]
 
@@ -325,6 +411,27 @@ version = "1.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
 
+[[package]]
+name = "enumflags2"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8672257d642ffdd235f6e9c723c2326ac1253c8f3c022e7cfd2e57da55b1131"
+dependencies = [
+ "enumflags2_derive",
+ "serde 1.0.130",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33526f770a27828ce7c2792fdb7cb240220237e0ff12933ed6c23957fc5dd7cf"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
 [[package]]
 name = "env_logger"
 version = "0.7.1"
@@ -365,7 +472,7 @@ version = "1.0.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "80edafed416a46fb378521624fab1cfa2eb514784fd8921adbe8a8d8321da811"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "crc32fast",
  "libc",
  "miniz_oxide",
@@ -387,6 +494,43 @@ dependencies = [
  "percent-encoding",
 ]
 
+[[package]]
+name = "fuchsia-zircon"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
+dependencies = [
+ "bitflags",
+ "fuchsia-zircon-sys",
+]
+
+[[package]]
+name = "fuchsia-zircon-sys"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
+
+[[package]]
+name = "futures"
+version = "0.1.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678"
+
+[[package]]
+name = "futures"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
 [[package]]
 name = "futures-channel"
 version = "0.3.17"
@@ -394,6 +538,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5da6ba8c3bb3c165d3c7319fc1cc8304facf1fb8db99c5de877183c08a273888"
 dependencies = [
  "futures-core",
+ "futures-sink",
 ]
 
 [[package]]
@@ -402,6 +547,17 @@ version = "0.3.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "88d1c26957f23603395cd326b0ffe64124b818f4449552f960d815cfba83a53d"
 
+[[package]]
+name = "futures-executor"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
 [[package]]
 name = "futures-io"
 version = "0.3.17"
@@ -455,10 +611,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "36568465210a3a6ee45e1f165136d68671471a501e632e9a98d96872222b5481"
 dependencies = [
  "autocfg",
+ "futures-channel",
  "futures-core",
+ "futures-io",
  "futures-macro",
  "futures-sink",
  "futures-task",
+ "memchr",
  "pin-project-lite",
  "pin-utils",
  "proc-macro-hack",
@@ -472,7 +631,10 @@ version = "0.1.0"
 dependencies = [
  "async-nats",
  "async-stream",
+ "common",
+ "enumflags2",
  "flate2",
+ "futures 0.3.17",
  "futures-core",
  "futures-util",
  "log",
@@ -480,7 +642,8 @@ dependencies = [
  "serde 1.0.130",
  "serde_json",
  "serde_repr",
- "tokio",
+ "tokio 1.11.0",
+ "tokio-scoped",
  "tokio-stream",
  "tokio-tungstenite",
  "url",
@@ -502,7 +665,7 @@ version = "0.1.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "wasi 0.9.0+wasi-snapshot-preview1",
 ]
@@ -513,7 +676,7 @@ version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7fcd999463524c52659517fe2cea98493cfe485d10565e7b0fb07dbba7ad2753"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "wasi 0.10.2+wasi-snapshot-preview1",
 ]
@@ -524,7 +687,7 @@ version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d7f3675cfef6a30c8031cf9e6493ebdc3bb3272a3fea3923c4210d1830e6a472"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "fnv",
  "futures-core",
  "futures-sink",
@@ -532,7 +695,7 @@ dependencies = [
  "http",
  "indexmap",
  "slab",
- "tokio",
+ "tokio 1.11.0",
  "tokio-util",
  "tracing",
 ]
@@ -573,7 +736,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "527e8c9ac747e28542699a951517aa9a6945af506cd1f2e1b53a576c17b6cc11"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "fnv",
  "itoa",
 ]
@@ -584,7 +747,7 @@ version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "399c583b2979440c60be0821a6199eca73bc3c8dcd9d070d75ac726e2c6186e5"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "http",
  "pin-project-lite",
 ]
@@ -616,7 +779,7 @@ version = "0.14.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "13f67199e765030fa08fe0bd581af683f0d5bc04ea09c2b1102012c5fb90e7fd"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "futures-channel",
  "futures-core",
  "futures-util",
@@ -628,7 +791,7 @@ dependencies = [
  "itoa",
  "pin-project-lite",
  "socket2",
- "tokio",
+ "tokio 1.11.0",
  "tower-service",
  "tracing",
  "want",
@@ -642,7 +805,7 @@ checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
 dependencies = [
  "hyper",
  "pin-project-lite",
- "tokio",
+ "tokio 1.11.0",
  "tokio-io-timeout",
 ]
 
@@ -673,7 +836,16 @@ version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
+]
+
+[[package]]
+name = "iovec"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+dependencies = [
+ "libc",
 ]
 
 [[package]]
@@ -706,6 +878,16 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
 
+[[package]]
+name = "kernel32-sys"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
 [[package]]
 name = "lazy_static"
 version = "1.4.0"
@@ -720,7 +902,7 @@ checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe"
 dependencies = [
  "arrayvec",
  "bitflags",
- "cfg-if",
+ "cfg-if 1.0.0",
  "ryu",
  "static_assertions",
 ]
@@ -749,6 +931,15 @@ version = "0.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
 
+[[package]]
+name = "lock_api"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+dependencies = [
+ "scopeguard",
+]
+
 [[package]]
 name = "lock_api"
 version = "0.4.5"
@@ -764,7 +955,7 @@ version = "0.4.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
 ]
 
 [[package]]
@@ -773,12 +964,27 @@ version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f"
 
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
 [[package]]
 name = "memchr"
 version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
 
+[[package]]
+name = "memoffset"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
+dependencies = [
+ "autocfg",
+]
+
 [[package]]
 name = "miniz_oxide"
 version = "0.4.4"
@@ -789,6 +995,25 @@ dependencies = [
  "autocfg",
 ]
 
+[[package]]
+name = "mio"
+version = "0.6.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4"
+dependencies = [
+ "cfg-if 0.1.10",
+ "fuchsia-zircon",
+ "fuchsia-zircon-sys",
+ "iovec",
+ "kernel32-sys",
+ "libc",
+ "log",
+ "miow 0.2.2",
+ "net2",
+ "slab",
+ "winapi 0.2.8",
+]
+
 [[package]]
 name = "mio"
 version = "0.7.13"
@@ -797,9 +1022,32 @@ checksum = "8c2bdb6314ec10835cd3293dd268473a835c02b7b352e788be788b3c6ca6bb16"
 dependencies = [
  "libc",
  "log",
- "miow",
+ "miow 0.3.7",
  "ntapi",
- "winapi",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "mio-uds"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
+dependencies = [
+ "iovec",
+ "libc",
+ "mio 0.6.23",
+]
+
+[[package]]
+name = "miow"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d"
+dependencies = [
+ "kernel32-sys",
+ "net2",
+ "winapi 0.2.8",
+ "ws2_32-sys",
 ]
 
 [[package]]
@@ -808,7 +1056,7 @@ version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -835,12 +1083,23 @@ dependencies = [
  "nkeys",
  "nuid",
  "once_cell",
- "parking_lot",
+ "parking_lot 0.11.2",
  "regex",
  "rustls",
  "rustls-native-certs",
  "webpki",
- "winapi",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "net2"
+version = "0.2.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
+dependencies = [
+ "cfg-if 0.1.10",
+ "libc",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -881,7 +1140,7 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3f6bb902e437b6d86e03cce10a7e2af662292c5dfef23b65899ea3ac9354ad44"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -946,6 +1205,17 @@ version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
 
+[[package]]
+name = "parking_lot"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
+dependencies = [
+ "lock_api 0.3.4",
+ "parking_lot_core 0.6.2",
+ "rustc_version",
+]
+
 [[package]]
 name = "parking_lot"
 version = "0.11.2"
@@ -953,8 +1223,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
 dependencies = [
  "instant",
- "lock_api",
- "parking_lot_core",
+ "lock_api 0.4.5",
+ "parking_lot_core 0.8.5",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
+dependencies = [
+ "cfg-if 0.1.10",
+ "cloudabi",
+ "libc",
+ "redox_syscall 0.1.57",
+ "rustc_version",
+ "smallvec 0.6.14",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -963,12 +1248,12 @@ version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "instant",
  "libc",
- "redox_syscall",
- "smallvec",
- "winapi",
+ "redox_syscall 0.2.10",
+ "smallvec 1.6.1",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -1062,13 +1347,28 @@ dependencies = [
  "unicode-xid",
 ]
 
+[[package]]
+name = "prometheus"
+version = "0.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99c"
+dependencies = [
+ "cfg-if 1.0.0",
+ "fnv",
+ "lazy_static",
+ "memchr",
+ "parking_lot 0.11.2",
+ "protobuf",
+ "thiserror",
+]
+
 [[package]]
 name = "prost"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "prost-derive",
 ]
 
@@ -1078,7 +1378,7 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "heck",
  "itertools",
  "log",
@@ -1109,10 +1409,16 @@ version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "prost",
 ]
 
+[[package]]
+name = "protobuf"
+version = "2.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "23129d50f2c9355ced935fce8a08bd706ee2e7ce2b3b33bf61dace0e379ac63a"
+
 [[package]]
 name = "quick-error"
 version = "1.2.3"
@@ -1209,6 +1515,12 @@ dependencies = [
  "rand_core 0.6.3",
 ]
 
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
 [[package]]
 name = "redox_syscall"
 version = "0.2.10"
@@ -1241,7 +1553,7 @@ version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -1249,7 +1561,7 @@ name = "rest-ratelimiter"
 version = "0.1.0"
 dependencies = [
  "prost",
- "tokio",
+ "tokio 1.11.0",
  "tonic",
  "tonic-build",
 ]
@@ -1266,7 +1578,7 @@ dependencies = [
  "spin",
  "untrusted",
  "web-sys",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -1275,6 +1587,15 @@ version = "0.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2"
 
+[[package]]
+name = "rustc_version"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
+dependencies = [
+ "semver",
+]
+
 [[package]]
 name = "rustls"
 version = "0.19.1"
@@ -1322,7 +1643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
 dependencies = [
  "lazy_static",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -1364,6 +1685,21 @@ dependencies = [
  "libc",
 ]
 
+[[package]]
+name = "semver"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
+dependencies = [
+ "semver-parser",
+]
+
+[[package]]
+name = "semver-parser"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
+
 [[package]]
 name = "serde"
 version = "0.8.23"
@@ -1431,7 +1767,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6"
 dependencies = [
  "block-buffer",
- "cfg-if",
+ "cfg-if 1.0.0",
  "cpufeatures",
  "digest",
  "opaque-debug",
@@ -1444,7 +1780,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9204c41a1597a8c5af23c82d1c921cb01ec0a4c59e07a9c7306062829a3903f3"
 dependencies = [
  "block-buffer",
- "cfg-if",
+ "cfg-if 1.0.0",
  "cpufeatures",
  "digest",
  "opaque-debug",
@@ -1483,6 +1819,15 @@ version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c307a32c1c5c437f38c7fd45d753050587732ba8628319fbdf12a7e289ccc590"
 
+[[package]]
+name = "smallvec"
+version = "0.6.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0"
+dependencies = [
+ "maybe-uninit",
+]
+
 [[package]]
 name = "smallvec"
 version = "1.6.1"
@@ -1496,7 +1841,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "765f090f0e423d2b55843402a07915add955e7d60657db13707a159727326cad"
 dependencies = [
  "libc",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -1555,12 +1900,12 @@ version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "libc",
  "rand 0.8.4",
- "redox_syscall",
+ "redox_syscall 0.2.10",
  "remove_dir_all",
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -1607,6 +1952,30 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
 
+[[package]]
+name = "tokio"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "mio 0.6.23",
+ "num_cpus",
+ "tokio-codec",
+ "tokio-current-thread",
+ "tokio-executor",
+ "tokio-fs",
+ "tokio-io",
+ "tokio-reactor",
+ "tokio-sync",
+ "tokio-tcp",
+ "tokio-threadpool",
+ "tokio-timer",
+ "tokio-udp",
+ "tokio-uds",
+]
+
 [[package]]
 name = "tokio"
 version = "1.11.0"
@@ -1614,17 +1983,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4efe6fc2395938c8155973d7be49fe8d03a843726e285e100a8a383cc0154ce"
 dependencies = [
  "autocfg",
- "bytes",
+ "bytes 1.1.0",
  "libc",
  "memchr",
- "mio",
+ "mio 0.7.13",
  "num_cpus",
  "once_cell",
- "parking_lot",
+ "parking_lot 0.11.2",
  "pin-project-lite",
  "signal-hook-registry",
  "tokio-macros",
- "winapi",
+ "winapi 0.3.9",
+]
+
+[[package]]
+name = "tokio-codec"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "tokio-io",
+]
+
+[[package]]
+name = "tokio-current-thread"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e"
+dependencies = [
+ "futures 0.1.31",
+ "tokio-executor",
+]
+
+[[package]]
+name = "tokio-executor"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671"
+dependencies = [
+ "crossbeam-utils 0.7.2",
+ "futures 0.1.31",
+]
+
+[[package]]
+name = "tokio-fs"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4"
+dependencies = [
+ "futures 0.1.31",
+ "tokio-io",
+ "tokio-threadpool",
+]
+
+[[package]]
+name = "tokio-io"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "log",
 ]
 
 [[package]]
@@ -1634,7 +2056,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90c49f106be240de154571dd31fbe48acb10ba6c6dd6f6517ad603abffa42de9"
 dependencies = [
  "pin-project-lite",
- "tokio",
+ "tokio 1.11.0",
 ]
 
 [[package]]
@@ -1648,6 +2070,25 @@ dependencies = [
  "syn",
 ]
 
+[[package]]
+name = "tokio-reactor"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351"
+dependencies = [
+ "crossbeam-utils 0.7.2",
+ "futures 0.1.31",
+ "lazy_static",
+ "log",
+ "mio 0.6.23",
+ "num_cpus",
+ "parking_lot 0.9.0",
+ "slab",
+ "tokio-executor",
+ "tokio-io",
+ "tokio-sync",
+]
+
 [[package]]
 name = "tokio-rustls"
 version = "0.22.0"
@@ -1655,10 +2096,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc6844de72e57df1980054b38be3a9f4702aba4858be64dd700181a8a6d0e1b6"
 dependencies = [
  "rustls",
- "tokio",
+ "tokio 1.11.0",
  "webpki",
 ]
 
+[[package]]
+name = "tokio-scoped"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6a2ee5c8d7452ae769af9167c1a051846ee97839d7c40529deac2e6768fe5e3"
+dependencies = [
+ "futures 0.1.31",
+ "tokio 0.1.22",
+]
+
 [[package]]
 name = "tokio-stream"
 version = "0.1.7"
@@ -1667,7 +2118,60 @@ checksum = "7b2f3f698253f03119ac0102beaa64f67a67e08074d03a22d18784104543727f"
 dependencies = [
  "futures-core",
  "pin-project-lite",
- "tokio",
+ "tokio 1.11.0",
+]
+
+[[package]]
+name = "tokio-sync"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee"
+dependencies = [
+ "fnv",
+ "futures 0.1.31",
+]
+
+[[package]]
+name = "tokio-tcp"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "iovec",
+ "mio 0.6.23",
+ "tokio-io",
+ "tokio-reactor",
+]
+
+[[package]]
+name = "tokio-threadpool"
+version = "0.1.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-queue",
+ "crossbeam-utils 0.7.2",
+ "futures 0.1.31",
+ "lazy_static",
+ "log",
+ "num_cpus",
+ "slab",
+ "tokio-executor",
+]
+
+[[package]]
+name = "tokio-timer"
+version = "0.2.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296"
+dependencies = [
+ "crossbeam-utils 0.7.2",
+ "futures 0.1.31",
+ "slab",
+ "tokio-executor",
 ]
 
 [[package]]
@@ -1680,25 +2184,58 @@ dependencies = [
  "log",
  "pin-project",
  "rustls",
- "tokio",
+ "tokio 1.11.0",
  "tokio-rustls",
  "tungstenite",
  "webpki",
  "webpki-roots",
 ]
 
+[[package]]
+name = "tokio-udp"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "log",
+ "mio 0.6.23",
+ "tokio-codec",
+ "tokio-io",
+ "tokio-reactor",
+]
+
+[[package]]
+name = "tokio-uds"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0"
+dependencies = [
+ "bytes 0.4.12",
+ "futures 0.1.31",
+ "iovec",
+ "libc",
+ "log",
+ "mio 0.6.23",
+ "mio-uds",
+ "tokio-codec",
+ "tokio-io",
+ "tokio-reactor",
+]
+
 [[package]]
 name = "tokio-util"
 version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08d3725d3efa29485e87311c5b699de63cde14b00ed4d256b8318aa30ca452cd"
 dependencies = [
- "bytes",
+ "bytes 1.1.0",
  "futures-core",
  "futures-sink",
  "log",
  "pin-project-lite",
- "tokio",
+ "tokio 1.11.0",
 ]
 
 [[package]]
@@ -1719,7 +2256,7 @@ dependencies = [
  "async-stream",
  "async-trait",
  "base64",
- "bytes",
+ "bytes 1.1.0",
  "futures-core",
  "futures-util",
  "h2",
@@ -1731,7 +2268,7 @@ dependencies = [
  "pin-project",
  "prost",
  "prost-derive",
- "tokio",
+ "tokio 1.11.0",
  "tokio-stream",
  "tokio-util",
  "tower",
@@ -1765,7 +2302,7 @@ dependencies = [
  "pin-project",
  "rand 0.8.4",
  "slab",
- "tokio",
+ "tokio 1.11.0",
  "tokio-stream",
  "tokio-util",
  "tower-layer",
@@ -1791,7 +2328,7 @@ version = "0.1.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "09adeb8c97449311ccd28a427f96fb563e7fd31aabf994189879d9da2394b89d"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -1842,7 +2379,7 @@ checksum = "a0b2d8558abd2e276b0a8df5c05a2ec762609344191e5fd23e292c910e9165b5"
 dependencies = [
  "base64",
  "byteorder",
- "bytes",
+ "bytes 1.1.0",
  "http",
  "httparse",
  "log",
@@ -1932,7 +2469,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
 dependencies = [
  "same-file",
- "winapi",
+ "winapi 0.3.9",
  "winapi-util",
 ]
 
@@ -1964,7 +2501,7 @@ version = "0.2.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8ce9b1b516211d33767048e5d47fa2a381ed8b76fc48d2ce4aa39877f9f183e0"
 dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
  "wasm-bindgen-macro",
 ]
 
@@ -2026,6 +2563,7 @@ dependencies = [
 name = "webhook"
 version = "0.1.0"
 dependencies = [
+ "common",
  "config",
  "hex",
  "hyper",
@@ -2034,7 +2572,7 @@ dependencies = [
  "pretty_env_logger",
  "serde 1.0.130",
  "serde_json",
- "tokio",
+ "tokio 1.11.0",
 ]
 
 [[package]]
@@ -2067,6 +2605,12 @@ dependencies = [
  "libc",
 ]
 
+[[package]]
+name = "winapi"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
+
 [[package]]
 name = "winapi"
 version = "0.3.9"
@@ -2077,6 +2621,12 @@ dependencies = [
  "winapi-x86_64-pc-windows-gnu",
 ]
 
+[[package]]
+name = "winapi-build"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
+
 [[package]]
 name = "winapi-i686-pc-windows-gnu"
 version = "0.4.0"
@@ -2089,7 +2639,7 @@ version = "0.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 dependencies = [
- "winapi",
+ "winapi 0.3.9",
 ]
 
 [[package]]
@@ -2098,6 +2648,16 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
+[[package]]
+name = "ws2_32-sys"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
+dependencies = [
+ "winapi 0.2.8",
+ "winapi-build",
+]
+
 [[package]]
 name = "yaml-rust"
 version = "0.4.5"
index 812a33b0d3b36547d6be87f51c0d4b84f7ded877..6eeff24d4bdb2ffc87890dc57915a475fcf1c1d1 100644 (file)
@@ -3,7 +3,8 @@
 members = [\r
     "webhook",\r
     "ratelimiter",\r
-    "gateway"\r
+    "gateway",\r
+    "common/rust"\r
 ]\r
 \r
 [package]\r
index 36f4520591a52be87a7900b2e84065391028dcc3..f47302935937278c794df06848d780dbde13ffd2 100644 (file)
@@ -22,6 +22,15 @@ _DEPENDENCIES = {
         "serde_json": "@raze__serde_json__1_0_67//:serde_json",
         "tokio": "@raze__tokio__1_11_0//:tokio",
     },
+    "common/rust": {
+        "config": "@raze__config__0_11_0//:config",
+        "hyper": "@raze__hyper__0_14_12//:hyper",
+        "log": "@raze__log__0_4_14//:log",
+        "pretty_env_logger": "@raze__pretty_env_logger__0_4_0//:pretty_env_logger",
+        "prometheus": "@raze__prometheus__0_12_0//:prometheus",
+        "serde": "@raze__serde__1_0_130//:serde",
+        "tokio": "@raze__tokio__1_11_0//:tokio",
+    },
     "ratelimiter": {
         "prost": "@raze__prost__0_8_0//:prost",
         "tokio": "@raze__tokio__1_11_0//:tokio",
@@ -30,7 +39,9 @@ _DEPENDENCIES = {
     "gateway": {
         "async-nats": "@raze__async_nats__0_10_1//:async_nats",
         "async-stream": "@raze__async_stream__0_3_2//:async_stream",
+        "enumflags2": "@raze__enumflags2__0_7_1//:enumflags2",
         "flate2": "@raze__flate2__1_0_21//:flate2",
+        "futures": "@raze__futures__0_3_17//:futures",
         "futures-core": "@raze__futures_core__0_3_17//:futures_core",
         "futures-util": "@raze__futures_util__0_3_17//:futures_util",
         "log": "@raze__log__0_4_14//:log",
@@ -38,6 +49,7 @@ _DEPENDENCIES = {
         "serde": "@raze__serde__1_0_130//:serde",
         "serde_json": "@raze__serde_json__1_0_67//:serde_json",
         "tokio": "@raze__tokio__1_11_0//:tokio",
+        "tokio-scoped": "@raze__tokio_scoped__0_1_0//:tokio_scoped",
         "tokio-stream": "@raze__tokio_stream__0_1_7//:tokio_stream",
         "tokio-tungstenite": "@raze__tokio_tungstenite__0_15_0//:tokio_tungstenite",
         "url": "@raze__url__2_2_2//:url",
@@ -51,6 +63,8 @@ _DEPENDENCIES = {
 _PROC_MACRO_DEPENDENCIES = {
     "webhook": {
     },
+    "common/rust": {
+    },
     "ratelimiter": {
     },
     "gateway": {
@@ -64,6 +78,8 @@ _PROC_MACRO_DEPENDENCIES = {
 _DEV_DEPENDENCIES = {
     "webhook": {
     },
+    "common/rust": {
+    },
     "ratelimiter": {
         "tonic-build": "@raze__tonic_build__0_5_2//:tonic_build",
     },
@@ -77,6 +93,8 @@ _DEV_DEPENDENCIES = {
 _DEV_PROC_MACRO_DEPENDENCIES = {
     "webhook": {
     },
+    "common/rust": {
+    },
     "ratelimiter": {
     },
     "gateway": {
@@ -420,6 +438,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.byteorder-1.4.3.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__bytes__0_4_12",
+        url = "https://crates.io/api/v1/crates/bytes/0.4.12/download",
+        type = "tar.gz",
+        sha256 = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c",
+        strip_prefix = "bytes-0.4.12",
+        build_file = Label("//cargo/remote:BUILD.bytes-0.4.12.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__bytes__1_1_0",
@@ -450,6 +478,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.cc-1.0.70.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__cfg_if__0_1_10",
+        url = "https://crates.io/api/v1/crates/cfg-if/0.1.10/download",
+        type = "tar.gz",
+        sha256 = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822",
+        strip_prefix = "cfg-if-0.1.10",
+        build_file = Label("//cargo/remote:BUILD.cfg-if-0.1.10.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__cfg_if__1_0_0",
@@ -460,6 +498,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.cfg-if-1.0.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__cloudabi__0_0_3",
+        url = "https://crates.io/api/v1/crates/cloudabi/0.0.3/download",
+        type = "tar.gz",
+        sha256 = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f",
+        strip_prefix = "cloudabi-0.0.3",
+        build_file = Label("//cargo/remote:BUILD.cloudabi-0.0.3.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__concurrent_queue__1_2_2",
@@ -530,6 +578,46 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.crossbeam-channel-0.5.1.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__crossbeam_deque__0_7_4",
+        url = "https://crates.io/api/v1/crates/crossbeam-deque/0.7.4/download",
+        type = "tar.gz",
+        sha256 = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed",
+        strip_prefix = "crossbeam-deque-0.7.4",
+        build_file = Label("//cargo/remote:BUILD.crossbeam-deque-0.7.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__crossbeam_epoch__0_8_2",
+        url = "https://crates.io/api/v1/crates/crossbeam-epoch/0.8.2/download",
+        type = "tar.gz",
+        sha256 = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace",
+        strip_prefix = "crossbeam-epoch-0.8.2",
+        build_file = Label("//cargo/remote:BUILD.crossbeam-epoch-0.8.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__crossbeam_queue__0_2_3",
+        url = "https://crates.io/api/v1/crates/crossbeam-queue/0.2.3/download",
+        type = "tar.gz",
+        sha256 = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570",
+        strip_prefix = "crossbeam-queue-0.2.3",
+        build_file = Label("//cargo/remote:BUILD.crossbeam-queue-0.2.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__crossbeam_utils__0_7_2",
+        url = "https://crates.io/api/v1/crates/crossbeam-utils/0.7.2/download",
+        type = "tar.gz",
+        sha256 = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8",
+        strip_prefix = "crossbeam-utils-0.7.2",
+        build_file = Label("//cargo/remote:BUILD.crossbeam-utils-0.7.2.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__crossbeam_utils__0_8_5",
@@ -600,6 +688,26 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.either-1.6.1.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__enumflags2__0_7_1",
+        url = "https://crates.io/api/v1/crates/enumflags2/0.7.1/download",
+        type = "tar.gz",
+        sha256 = "a8672257d642ffdd235f6e9c723c2326ac1253c8f3c022e7cfd2e57da55b1131",
+        strip_prefix = "enumflags2-0.7.1",
+        build_file = Label("//cargo/remote:BUILD.enumflags2-0.7.1.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__enumflags2_derive__0_7_0",
+        url = "https://crates.io/api/v1/crates/enumflags2_derive/0.7.0/download",
+        type = "tar.gz",
+        sha256 = "33526f770a27828ce7c2792fdb7cb240220237e0ff12933ed6c23957fc5dd7cf",
+        strip_prefix = "enumflags2_derive-0.7.0",
+        build_file = Label("//cargo/remote:BUILD.enumflags2_derive-0.7.0.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__env_logger__0_7_1",
@@ -670,6 +778,46 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.form_urlencoded-1.0.1.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__fuchsia_zircon__0_3_3",
+        url = "https://crates.io/api/v1/crates/fuchsia-zircon/0.3.3/download",
+        type = "tar.gz",
+        sha256 = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82",
+        strip_prefix = "fuchsia-zircon-0.3.3",
+        build_file = Label("//cargo/remote:BUILD.fuchsia-zircon-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__fuchsia_zircon_sys__0_3_3",
+        url = "https://crates.io/api/v1/crates/fuchsia-zircon-sys/0.3.3/download",
+        type = "tar.gz",
+        sha256 = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7",
+        strip_prefix = "fuchsia-zircon-sys-0.3.3",
+        build_file = Label("//cargo/remote:BUILD.fuchsia-zircon-sys-0.3.3.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__futures__0_1_31",
+        url = "https://crates.io/api/v1/crates/futures/0.1.31/download",
+        type = "tar.gz",
+        sha256 = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678",
+        strip_prefix = "futures-0.1.31",
+        build_file = Label("//cargo/remote:BUILD.futures-0.1.31.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__futures__0_3_17",
+        url = "https://crates.io/api/v1/crates/futures/0.3.17/download",
+        type = "tar.gz",
+        sha256 = "a12aa0eb539080d55c3f2d45a67c3b58b6b0773c1a3ca2dfec66d58c97fd66ca",
+        strip_prefix = "futures-0.3.17",
+        build_file = Label("//cargo/remote:BUILD.futures-0.3.17.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__futures_channel__0_3_17",
@@ -690,6 +838,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.futures-core-0.3.17.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__futures_executor__0_3_17",
+        url = "https://crates.io/api/v1/crates/futures-executor/0.3.17/download",
+        type = "tar.gz",
+        sha256 = "45025be030969d763025784f7f355043dc6bc74093e4ecc5000ca4dc50d8745c",
+        strip_prefix = "futures-executor-0.3.17",
+        build_file = Label("//cargo/remote:BUILD.futures-executor-0.3.17.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__futures_io__0_3_17",
@@ -930,6 +1088,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.instant-0.1.10.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__iovec__0_1_4",
+        url = "https://crates.io/api/v1/crates/iovec/0.1.4/download",
+        type = "tar.gz",
+        sha256 = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e",
+        strip_prefix = "iovec-0.1.4",
+        build_file = Label("//cargo/remote:BUILD.iovec-0.1.4.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__itertools__0_10_1",
@@ -970,6 +1138,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.json-0.12.4.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__kernel32_sys__0_2_2",
+        url = "https://crates.io/api/v1/crates/kernel32-sys/0.2.2/download",
+        type = "tar.gz",
+        sha256 = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d",
+        strip_prefix = "kernel32-sys-0.2.2",
+        build_file = Label("//cargo/remote:BUILD.kernel32-sys-0.2.2.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__lazy_static__1_4_0",
@@ -1020,6 +1198,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.linked-hash-map-0.5.4.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__lock_api__0_3_4",
+        url = "https://crates.io/api/v1/crates/lock_api/0.3.4/download",
+        type = "tar.gz",
+        sha256 = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75",
+        strip_prefix = "lock_api-0.3.4",
+        build_file = Label("//cargo/remote:BUILD.lock_api-0.3.4.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__lock_api__0_4_5",
@@ -1050,6 +1238,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.matches-0.1.9.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__maybe_uninit__2_0_0",
+        url = "https://crates.io/api/v1/crates/maybe-uninit/2.0.0/download",
+        type = "tar.gz",
+        sha256 = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00",
+        strip_prefix = "maybe-uninit-2.0.0",
+        build_file = Label("//cargo/remote:BUILD.maybe-uninit-2.0.0.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__memchr__2_4_1",
@@ -1060,6 +1258,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.memchr-2.4.1.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__memoffset__0_5_6",
+        url = "https://crates.io/api/v1/crates/memoffset/0.5.6/download",
+        type = "tar.gz",
+        sha256 = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa",
+        strip_prefix = "memoffset-0.5.6",
+        build_file = Label("//cargo/remote:BUILD.memoffset-0.5.6.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__miniz_oxide__0_4_4",
@@ -1070,6 +1278,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.miniz_oxide-0.4.4.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__mio__0_6_23",
+        url = "https://crates.io/api/v1/crates/mio/0.6.23/download",
+        type = "tar.gz",
+        sha256 = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4",
+        strip_prefix = "mio-0.6.23",
+        build_file = Label("//cargo/remote:BUILD.mio-0.6.23.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__mio__0_7_13",
@@ -1080,6 +1298,26 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.mio-0.7.13.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__mio_uds__0_6_8",
+        url = "https://crates.io/api/v1/crates/mio-uds/0.6.8/download",
+        type = "tar.gz",
+        sha256 = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0",
+        strip_prefix = "mio-uds-0.6.8",
+        build_file = Label("//cargo/remote:BUILD.mio-uds-0.6.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__miow__0_2_2",
+        url = "https://crates.io/api/v1/crates/miow/0.2.2/download",
+        type = "tar.gz",
+        sha256 = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d",
+        strip_prefix = "miow-0.2.2",
+        build_file = Label("//cargo/remote:BUILD.miow-0.2.2.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__miow__0_3_7",
@@ -1110,6 +1348,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.nats-0.10.1.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__net2__0_2_37",
+        url = "https://crates.io/api/v1/crates/net2/0.2.37/download",
+        type = "tar.gz",
+        sha256 = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae",
+        strip_prefix = "net2-0.2.37",
+        build_file = Label("//cargo/remote:BUILD.net2-0.2.37.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__nkeys__0_1_0",
@@ -1230,6 +1478,26 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.parking_lot-0.11.2.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__parking_lot__0_9_0",
+        url = "https://crates.io/api/v1/crates/parking_lot/0.9.0/download",
+        type = "tar.gz",
+        sha256 = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252",
+        strip_prefix = "parking_lot-0.9.0",
+        build_file = Label("//cargo/remote:BUILD.parking_lot-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__parking_lot_core__0_6_2",
+        url = "https://crates.io/api/v1/crates/parking_lot_core/0.6.2/download",
+        type = "tar.gz",
+        sha256 = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b",
+        strip_prefix = "parking_lot_core-0.6.2",
+        build_file = Label("//cargo/remote:BUILD.parking_lot_core-0.6.2.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__parking_lot_core__0_8_5",
@@ -1360,6 +1628,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.proc-macro2-1.0.29.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__prometheus__0_12_0",
+        url = "https://crates.io/api/v1/crates/prometheus/0.12.0/download",
+        type = "tar.gz",
+        sha256 = "5986aa8d62380092d2f50f8b1cdba9cb9b6731ffd4b25b51fd126b6c3e05b99c",
+        strip_prefix = "prometheus-0.12.0",
+        build_file = Label("//cargo/remote:BUILD.prometheus-0.12.0.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__prost__0_8_0",
@@ -1400,6 +1678,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.prost-types-0.8.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__protobuf__2_25_1",
+        url = "https://crates.io/api/v1/crates/protobuf/2.25.1/download",
+        type = "tar.gz",
+        sha256 = "23129d50f2c9355ced935fce8a08bd706ee2e7ce2b3b33bf61dace0e379ac63a",
+        strip_prefix = "protobuf-2.25.1",
+        build_file = Label("//cargo/remote:BUILD.protobuf-2.25.1.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__quick_error__1_2_3",
@@ -1500,6 +1788,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.rand_hc-0.3.1.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__redox_syscall__0_1_57",
+        url = "https://crates.io/api/v1/crates/redox_syscall/0.1.57/download",
+        type = "tar.gz",
+        sha256 = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce",
+        strip_prefix = "redox_syscall-0.1.57",
+        build_file = Label("//cargo/remote:BUILD.redox_syscall-0.1.57.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__redox_syscall__0_2_10",
@@ -1560,6 +1858,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.rust-ini-0.13.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__rustc_version__0_2_3",
+        url = "https://crates.io/api/v1/crates/rustc_version/0.2.3/download",
+        type = "tar.gz",
+        sha256 = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a",
+        strip_prefix = "rustc_version-0.2.3",
+        build_file = Label("//cargo/remote:BUILD.rustc_version-0.2.3.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__rustls__0_19_1",
@@ -1650,6 +1958,26 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.security-framework-sys-2.4.2.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__semver__0_9_0",
+        url = "https://crates.io/api/v1/crates/semver/0.9.0/download",
+        type = "tar.gz",
+        sha256 = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403",
+        strip_prefix = "semver-0.9.0",
+        build_file = Label("//cargo/remote:BUILD.semver-0.9.0.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__semver_parser__0_7_0",
+        url = "https://crates.io/api/v1/crates/semver-parser/0.7.0/download",
+        type = "tar.gz",
+        sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3",
+        strip_prefix = "semver-parser-0.7.0",
+        build_file = Label("//cargo/remote:BUILD.semver-parser-0.7.0.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__serde__0_8_23",
@@ -1770,6 +2098,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.slab-0.4.4.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__smallvec__0_6_14",
+        url = "https://crates.io/api/v1/crates/smallvec/0.6.14/download",
+        type = "tar.gz",
+        sha256 = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0",
+        strip_prefix = "smallvec-0.6.14",
+        build_file = Label("//cargo/remote:BUILD.smallvec-0.6.14.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__smallvec__1_6_1",
@@ -1910,6 +2248,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.tinyvec_macros-0.1.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__tokio__0_1_22",
+        url = "https://crates.io/api/v1/crates/tokio/0.1.22/download",
+        type = "tar.gz",
+        sha256 = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6",
+        strip_prefix = "tokio-0.1.22",
+        build_file = Label("//cargo/remote:BUILD.tokio-0.1.22.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__tokio__1_11_0",
@@ -1920,6 +2268,56 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.tokio-1.11.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__tokio_codec__0_1_2",
+        url = "https://crates.io/api/v1/crates/tokio-codec/0.1.2/download",
+        type = "tar.gz",
+        sha256 = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b",
+        strip_prefix = "tokio-codec-0.1.2",
+        build_file = Label("//cargo/remote:BUILD.tokio-codec-0.1.2.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_current_thread__0_1_7",
+        url = "https://crates.io/api/v1/crates/tokio-current-thread/0.1.7/download",
+        type = "tar.gz",
+        sha256 = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e",
+        strip_prefix = "tokio-current-thread-0.1.7",
+        build_file = Label("//cargo/remote:BUILD.tokio-current-thread-0.1.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_executor__0_1_10",
+        url = "https://crates.io/api/v1/crates/tokio-executor/0.1.10/download",
+        type = "tar.gz",
+        sha256 = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671",
+        strip_prefix = "tokio-executor-0.1.10",
+        build_file = Label("//cargo/remote:BUILD.tokio-executor-0.1.10.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_fs__0_1_7",
+        url = "https://crates.io/api/v1/crates/tokio-fs/0.1.7/download",
+        type = "tar.gz",
+        sha256 = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4",
+        strip_prefix = "tokio-fs-0.1.7",
+        build_file = Label("//cargo/remote:BUILD.tokio-fs-0.1.7.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_io__0_1_13",
+        url = "https://crates.io/api/v1/crates/tokio-io/0.1.13/download",
+        type = "tar.gz",
+        sha256 = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674",
+        strip_prefix = "tokio-io-0.1.13",
+        build_file = Label("//cargo/remote:BUILD.tokio-io-0.1.13.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__tokio_io_timeout__1_1_1",
@@ -1940,6 +2338,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.tokio-macros-1.3.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__tokio_reactor__0_1_12",
+        url = "https://crates.io/api/v1/crates/tokio-reactor/0.1.12/download",
+        type = "tar.gz",
+        sha256 = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351",
+        strip_prefix = "tokio-reactor-0.1.12",
+        build_file = Label("//cargo/remote:BUILD.tokio-reactor-0.1.12.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__tokio_rustls__0_22_0",
@@ -1950,6 +2358,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.tokio-rustls-0.22.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__tokio_scoped__0_1_0",
+        url = "https://crates.io/api/v1/crates/tokio-scoped/0.1.0/download",
+        type = "tar.gz",
+        sha256 = "c6a2ee5c8d7452ae769af9167c1a051846ee97839d7c40529deac2e6768fe5e3",
+        strip_prefix = "tokio-scoped-0.1.0",
+        build_file = Label("//cargo/remote:BUILD.tokio-scoped-0.1.0.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__tokio_stream__0_1_7",
@@ -1960,6 +2378,46 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.tokio-stream-0.1.7.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__tokio_sync__0_1_8",
+        url = "https://crates.io/api/v1/crates/tokio-sync/0.1.8/download",
+        type = "tar.gz",
+        sha256 = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee",
+        strip_prefix = "tokio-sync-0.1.8",
+        build_file = Label("//cargo/remote:BUILD.tokio-sync-0.1.8.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_tcp__0_1_4",
+        url = "https://crates.io/api/v1/crates/tokio-tcp/0.1.4/download",
+        type = "tar.gz",
+        sha256 = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72",
+        strip_prefix = "tokio-tcp-0.1.4",
+        build_file = Label("//cargo/remote:BUILD.tokio-tcp-0.1.4.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_threadpool__0_1_18",
+        url = "https://crates.io/api/v1/crates/tokio-threadpool/0.1.18/download",
+        type = "tar.gz",
+        sha256 = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89",
+        strip_prefix = "tokio-threadpool-0.1.18",
+        build_file = Label("//cargo/remote:BUILD.tokio-threadpool-0.1.18.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_timer__0_2_13",
+        url = "https://crates.io/api/v1/crates/tokio-timer/0.2.13/download",
+        type = "tar.gz",
+        sha256 = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296",
+        strip_prefix = "tokio-timer-0.2.13",
+        build_file = Label("//cargo/remote:BUILD.tokio-timer-0.2.13.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__tokio_tungstenite__0_15_0",
@@ -1970,6 +2428,26 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.tokio-tungstenite-0.15.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__tokio_udp__0_1_6",
+        url = "https://crates.io/api/v1/crates/tokio-udp/0.1.6/download",
+        type = "tar.gz",
+        sha256 = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82",
+        strip_prefix = "tokio-udp-0.1.6",
+        build_file = Label("//cargo/remote:BUILD.tokio-udp-0.1.6.bazel"),
+    )
+
+    maybe(
+        http_archive,
+        name = "raze__tokio_uds__0_2_7",
+        url = "https://crates.io/api/v1/crates/tokio-uds/0.2.7/download",
+        type = "tar.gz",
+        sha256 = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0",
+        strip_prefix = "tokio-uds-0.2.7",
+        build_file = Label("//cargo/remote:BUILD.tokio-uds-0.2.7.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__tokio_util__0_6_8",
@@ -2330,6 +2808,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.which-4.2.2.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__winapi__0_2_8",
+        url = "https://crates.io/api/v1/crates/winapi/0.2.8/download",
+        type = "tar.gz",
+        sha256 = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a",
+        strip_prefix = "winapi-0.2.8",
+        build_file = Label("//cargo/remote:BUILD.winapi-0.2.8.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__winapi__0_3_9",
@@ -2340,6 +2828,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.winapi-0.3.9.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__winapi_build__0_1_1",
+        url = "https://crates.io/api/v1/crates/winapi-build/0.1.1/download",
+        type = "tar.gz",
+        sha256 = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc",
+        strip_prefix = "winapi-build-0.1.1",
+        build_file = Label("//cargo/remote:BUILD.winapi-build-0.1.1.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__winapi_i686_pc_windows_gnu__0_4_0",
@@ -2370,6 +2868,16 @@ def raze_fetch_remote_crates():
         build_file = Label("//cargo/remote:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
     )
 
+    maybe(
+        http_archive,
+        name = "raze__ws2_32_sys__0_2_1",
+        url = "https://crates.io/api/v1/crates/ws2_32-sys/0.2.1/download",
+        type = "tar.gz",
+        sha256 = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e",
+        strip_prefix = "ws2_32-sys-0.2.1",
+        build_file = Label("//cargo/remote:BUILD.ws2_32-sys-0.2.1.bazel"),
+    )
+
     maybe(
         http_archive,
         name = "raze__yaml_rust__0_4_5",
diff --git a/cargo/remote/BUILD.bytes-0.4.12.bazel b/cargo/remote/BUILD.bytes-0.4.12.bazel
new file mode 100644 (file)
index 0000000..da610ba
--- /dev/null
@@ -0,0 +1,77 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "bytes" with type "bench" omitted
+
+rust_library(
+    name = "bytes",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.4.12",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__byteorder__1_4_3//:byteorder",
+        "@raze__iovec__0_1_4//:iovec",
+    ],
+)
+
+# Unsupported target "test_buf" with type "test" omitted
+
+# Unsupported target "test_buf_mut" with type "test" omitted
+
+# Unsupported target "test_bytes" with type "test" omitted
+
+# Unsupported target "test_chain" with type "test" omitted
+
+# Unsupported target "test_debug" with type "test" omitted
+
+# Unsupported target "test_from_buf" with type "test" omitted
+
+# Unsupported target "test_iter" with type "test" omitted
+
+# Unsupported target "test_reader" with type "test" omitted
+
+# Unsupported target "test_serde" with type "test" omitted
+
+# Unsupported target "test_take" with type "test" omitted
diff --git a/cargo/remote/BUILD.cfg-if-0.1.10.bazel b/cargo/remote/BUILD.cfg-if-0.1.10.bazel
new file mode 100644 (file)
index 0000000..2c6c3c7
--- /dev/null
@@ -0,0 +1,55 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "cfg_if",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.10",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
+
+# Unsupported target "xcrate" with type "test" omitted
diff --git a/cargo/remote/BUILD.cloudabi-0.0.3.bazel b/cargo/remote/BUILD.cloudabi-0.0.3.bazel
new file mode 100644 (file)
index 0000000..7de656d
--- /dev/null
@@ -0,0 +1,56 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "restricted",  # BSD-2-Clause from expression "BSD-2-Clause"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "cloudabi",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "bitflags",
+        "default",
+    ],
+    crate_root = "cloudabi.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.0.3",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bitflags__1_3_2//:bitflags",
+    ],
+)
diff --git a/cargo/remote/BUILD.crossbeam-deque-0.7.4.bazel b/cargo/remote/BUILD.crossbeam-deque-0.7.4.bazel
new file mode 100644 (file)
index 0000000..70dd1a3
--- /dev/null
@@ -0,0 +1,64 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "crossbeam_deque",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.7.4",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__crossbeam_epoch__0_8_2//:crossbeam_epoch",
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__maybe_uninit__2_0_0//:maybe_uninit",
+    ],
+)
+
+# Unsupported target "fifo" with type "test" omitted
+
+# Unsupported target "injector" with type "test" omitted
+
+# Unsupported target "lifo" with type "test" omitted
+
+# Unsupported target "steal" with type "test" omitted
diff --git a/cargo/remote/BUILD.crossbeam-epoch-0.8.2.bazel b/cargo/remote/BUILD.crossbeam-epoch-0.8.2.bazel
new file mode 100644 (file)
index 0000000..cc0a298
--- /dev/null
@@ -0,0 +1,106 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "crossbeam_epoch_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.8.2",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__autocfg__1_0_1//:autocfg",
+    ],
+)
+
+# Unsupported target "defer" with type "bench" omitted
+
+# Unsupported target "flush" with type "bench" omitted
+
+# Unsupported target "pin" with type "bench" omitted
+
+# Unsupported target "sanitize" with type "example" omitted
+
+# Unsupported target "treiber_stack" with type "example" omitted
+
+rust_library(
+    name = "crossbeam_epoch",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.8.2",
+    # buildifier: leave-alone
+    deps = [
+        ":crossbeam_epoch_build_script",
+        "@raze__cfg_if__0_1_10//:cfg_if",
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__lazy_static__1_4_0//:lazy_static",
+        "@raze__maybe_uninit__2_0_0//:maybe_uninit",
+        "@raze__memoffset__0_5_6//:memoffset",
+        "@raze__scopeguard__1_1_0//:scopeguard",
+    ],
+)
diff --git a/cargo/remote/BUILD.crossbeam-queue-0.2.3.bazel b/cargo/remote/BUILD.crossbeam-queue-0.2.3.bazel
new file mode 100644 (file)
index 0000000..b42aaf8
--- /dev/null
@@ -0,0 +1,62 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR (Apache-2.0 AND BSD-2-Clause)"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "crossbeam_queue",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.3",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__cfg_if__0_1_10//:cfg_if",
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__maybe_uninit__2_0_0//:maybe_uninit",
+    ],
+)
+
+# Unsupported target "array_queue" with type "test" omitted
+
+# Unsupported target "seg_queue" with type "test" omitted
diff --git a/cargo/remote/BUILD.crossbeam-utils-0.7.2.bazel b/cargo/remote/BUILD.crossbeam-utils-0.7.2.bazel
new file mode 100644 (file)
index 0000000..e4511e1
--- /dev/null
@@ -0,0 +1,106 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "crossbeam_utils_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.7.2",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__autocfg__1_0_1//:autocfg",
+    ],
+)
+
+# Unsupported target "atomic_cell" with type "bench" omitted
+
+rust_library(
+    name = "crossbeam_utils",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+        "lazy_static",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.7.2",
+    # buildifier: leave-alone
+    deps = [
+        ":crossbeam_utils_build_script",
+        "@raze__cfg_if__0_1_10//:cfg_if",
+        "@raze__lazy_static__1_4_0//:lazy_static",
+    ],
+)
+
+# Unsupported target "atomic_cell" with type "test" omitted
+
+# Unsupported target "cache_padded" with type "test" omitted
+
+# Unsupported target "parker" with type "test" omitted
+
+# Unsupported target "sharded_lock" with type "test" omitted
+
+# Unsupported target "thread" with type "test" omitted
+
+# Unsupported target "wait_group" with type "test" omitted
diff --git a/cargo/remote/BUILD.enumflags2-0.7.1.bazel b/cargo/remote/BUILD.enumflags2-0.7.1.bazel
new file mode 100644 (file)
index 0000000..9d5e1a5
--- /dev/null
@@ -0,0 +1,60 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+# Unsupported target "from_iterator" with type "bench" omitted
+
+rust_library(
+    name = "enumflags2",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "serde",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    proc_macro_deps = [
+        "@raze__enumflags2_derive__0_7_0//:enumflags2_derive",
+    ],
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.7.1",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__serde__1_0_130//:serde",
+    ],
+)
diff --git a/cargo/remote/BUILD.enumflags2_derive-0.7.0.bazel b/cargo/remote/BUILD.enumflags2_derive-0.7.0.bazel
new file mode 100644 (file)
index 0000000..26d8952
--- /dev/null
@@ -0,0 +1,56 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "enumflags2_derive",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "proc-macro",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.7.0",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__proc_macro2__1_0_29//:proc_macro2",
+        "@raze__quote__1_0_9//:quote",
+        "@raze__syn__1_0_76//:syn",
+    ],
+)
diff --git a/cargo/remote/BUILD.fuchsia-zircon-0.3.3.bazel b/cargo/remote/BUILD.fuchsia-zircon-0.3.3.bazel
new file mode 100644 (file)
index 0000000..872a362
--- /dev/null
@@ -0,0 +1,55 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "fuchsia_zircon",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.3.3",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bitflags__1_3_2//:bitflags",
+        "@raze__fuchsia_zircon_sys__0_3_3//:fuchsia_zircon_sys",
+    ],
+)
diff --git a/cargo/remote/BUILD.fuchsia-zircon-sys-0.3.3.bazel b/cargo/remote/BUILD.fuchsia-zircon-sys-0.3.3.bazel
new file mode 100644 (file)
index 0000000..f677e9f
--- /dev/null
@@ -0,0 +1,55 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # BSD-3-Clause from expression "BSD-3-Clause"
+])
+
+# Generated Targets
+
+# Unsupported target "hello" with type "example" omitted
+
+rust_library(
+    name = "fuchsia_zircon_sys",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.3.3",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
diff --git a/cargo/remote/BUILD.futures-0.1.31.bazel b/cargo/remote/BUILD.futures-0.1.31.bazel
new file mode 100644 (file)
index 0000000..ea78879
--- /dev/null
@@ -0,0 +1,118 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+# Unsupported target "bilock" with type "bench" omitted
+
+# Unsupported target "futures_unordered" with type "bench" omitted
+
+# Unsupported target "poll" with type "bench" omitted
+
+# Unsupported target "sync_mpsc" with type "bench" omitted
+
+# Unsupported target "thread_notify" with type "bench" omitted
+
+rust_library(
+    name = "futures",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+        "use_std",
+        "with-deprecated",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.31",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
+
+# Unsupported target "all" with type "test" omitted
+
+# Unsupported target "bilock" with type "test" omitted
+
+# Unsupported target "buffer_unordered" with type "test" omitted
+
+# Unsupported target "channel" with type "test" omitted
+
+# Unsupported target "eager_drop" with type "test" omitted
+
+# Unsupported target "eventual" with type "test" omitted
+
+# Unsupported target "fuse" with type "test" omitted
+
+# Unsupported target "future_flatten_stream" with type "test" omitted
+
+# Unsupported target "futures_ordered" with type "test" omitted
+
+# Unsupported target "futures_unordered" with type "test" omitted
+
+# Unsupported target "inspect" with type "test" omitted
+
+# Unsupported target "mpsc" with type "test" omitted
+
+# Unsupported target "mpsc-close" with type "test" omitted
+
+# Unsupported target "oneshot" with type "test" omitted
+
+# Unsupported target "ready_queue" with type "test" omitted
+
+# Unsupported target "recurse" with type "test" omitted
+
+# Unsupported target "select_all" with type "test" omitted
+
+# Unsupported target "select_ok" with type "test" omitted
+
+# Unsupported target "shared" with type "test" omitted
+
+# Unsupported target "sink" with type "test" omitted
+
+# Unsupported target "split" with type "test" omitted
+
+# Unsupported target "stream" with type "test" omitted
+
+# Unsupported target "stream_catch_unwind" with type "test" omitted
+
+# Unsupported target "unfold" with type "test" omitted
+
+# Unsupported target "unsync" with type "test" omitted
+
+# Unsupported target "unsync-oneshot" with type "test" omitted
diff --git a/cargo/remote/BUILD.futures-0.3.17.bazel b/cargo/remote/BUILD.futures-0.3.17.bazel
new file mode 100644 (file)
index 0000000..f1d3795
--- /dev/null
@@ -0,0 +1,174 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "futures",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "alloc",
+        "async-await",
+        "default",
+        "executor",
+        "futures-executor",
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.3.17",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__futures_channel__0_3_17//:futures_channel",
+        "@raze__futures_core__0_3_17//:futures_core",
+        "@raze__futures_executor__0_3_17//:futures_executor",
+        "@raze__futures_io__0_3_17//:futures_io",
+        "@raze__futures_sink__0_3_17//:futures_sink",
+        "@raze__futures_task__0_3_17//:futures_task",
+        "@raze__futures_util__0_3_17//:futures_util",
+    ],
+)
+
+# Unsupported target "_require_features" with type "test" omitted
+
+# Unsupported target "async_await_macros" with type "test" omitted
+
+# Unsupported target "auto_traits" with type "test" omitted
+
+# Unsupported target "compat" with type "test" omitted
+
+# Unsupported target "eager_drop" with type "test" omitted
+
+# Unsupported target "eventual" with type "test" omitted
+
+# Unsupported target "future_abortable" with type "test" omitted
+
+# Unsupported target "future_basic_combinators" with type "test" omitted
+
+# Unsupported target "future_fuse" with type "test" omitted
+
+# Unsupported target "future_inspect" with type "test" omitted
+
+# Unsupported target "future_join_all" with type "test" omitted
+
+# Unsupported target "future_obj" with type "test" omitted
+
+# Unsupported target "future_select_all" with type "test" omitted
+
+# Unsupported target "future_select_ok" with type "test" omitted
+
+# Unsupported target "future_shared" with type "test" omitted
+
+# Unsupported target "future_try_flatten_stream" with type "test" omitted
+
+# Unsupported target "future_try_join_all" with type "test" omitted
+
+# Unsupported target "io_buf_reader" with type "test" omitted
+
+# Unsupported target "io_buf_writer" with type "test" omitted
+
+# Unsupported target "io_cursor" with type "test" omitted
+
+# Unsupported target "io_lines" with type "test" omitted
+
+# Unsupported target "io_read" with type "test" omitted
+
+# Unsupported target "io_read_exact" with type "test" omitted
+
+# Unsupported target "io_read_line" with type "test" omitted
+
+# Unsupported target "io_read_to_end" with type "test" omitted
+
+# Unsupported target "io_read_to_string" with type "test" omitted
+
+# Unsupported target "io_read_until" with type "test" omitted
+
+# Unsupported target "io_window" with type "test" omitted
+
+# Unsupported target "io_write" with type "test" omitted
+
+# Unsupported target "lock_mutex" with type "test" omitted
+
+# Unsupported target "macro_comma_support" with type "test" omitted
+
+# Unsupported target "object_safety" with type "test" omitted
+
+# Unsupported target "oneshot" with type "test" omitted
+
+# Unsupported target "ready_queue" with type "test" omitted
+
+# Unsupported target "recurse" with type "test" omitted
+
+# Unsupported target "sink" with type "test" omitted
+
+# Unsupported target "sink_fanout" with type "test" omitted
+
+# Unsupported target "stream" with type "test" omitted
+
+# Unsupported target "stream_abortable" with type "test" omitted
+
+# Unsupported target "stream_buffer_unordered" with type "test" omitted
+
+# Unsupported target "stream_catch_unwind" with type "test" omitted
+
+# Unsupported target "stream_futures_ordered" with type "test" omitted
+
+# Unsupported target "stream_futures_unordered" with type "test" omitted
+
+# Unsupported target "stream_into_async_read" with type "test" omitted
+
+# Unsupported target "stream_peekable" with type "test" omitted
+
+# Unsupported target "stream_select_all" with type "test" omitted
+
+# Unsupported target "stream_select_next_some" with type "test" omitted
+
+# Unsupported target "stream_split" with type "test" omitted
+
+# Unsupported target "stream_try_stream" with type "test" omitted
+
+# Unsupported target "stream_unfold" with type "test" omitted
+
+# Unsupported target "task_arc_wake" with type "test" omitted
+
+# Unsupported target "task_atomic_waker" with type "test" omitted
+
+# Unsupported target "test_macro" with type "test" omitted
+
+# Unsupported target "try_join" with type "test" omitted
index d0253abe991fd15d6e95fac95b64a44aa217c9ef..27abf44bfb11395a6810f387ff371a988063b5db 100644 (file)
@@ -44,6 +44,8 @@ cargo_build_script(
     crate_features = [
         "alloc",
         "default",
+        "futures-sink",
+        "sink",
         "std",
     ],
     crate_root = "build.rs",
@@ -70,6 +72,8 @@ rust_library(
     crate_features = [
         "alloc",
         "default",
+        "futures-sink",
+        "sink",
         "std",
     ],
     crate_root = "src/lib.rs",
@@ -88,6 +92,7 @@ rust_library(
     deps = [
         ":futures_channel_build_script",
         "@raze__futures_core__0_3_17//:futures_core",
+        "@raze__futures_sink__0_3_17//:futures_sink",
     ],
 )
 
diff --git a/cargo/remote/BUILD.futures-executor-0.3.17.bazel b/cargo/remote/BUILD.futures-executor-0.3.17.bazel
new file mode 100644 (file)
index 0000000..19b0d1c
--- /dev/null
@@ -0,0 +1,61 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+# Unsupported target "thread_notify" with type "bench" omitted
+
+rust_library(
+    name = "futures_executor",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "std",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.3.17",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__futures_core__0_3_17//:futures_core",
+        "@raze__futures_task__0_3_17//:futures_task",
+        "@raze__futures_util__0_3_17//:futures_util",
+    ],
+)
+
+# Unsupported target "local_pool" with type "test" omitted
index 77f72bfe8bda36d1bce831730019e461e5bdce4b..0fe555163c45486f3bca0c4ac07c5e6df0bfc57f 100644 (file)
@@ -45,9 +45,14 @@ cargo_build_script(
         "alloc",
         "async-await",
         "async-await-macro",
+        "channel",
         "default",
+        "futures-channel",
+        "futures-io",
         "futures-macro",
         "futures-sink",
+        "io",
+        "memchr",
         "proc-macro-hack",
         "proc-macro-nested",
         "sink",
@@ -80,9 +85,14 @@ rust_library(
         "alloc",
         "async-await",
         "async-await-macro",
+        "channel",
         "default",
+        "futures-channel",
+        "futures-io",
         "futures-macro",
         "futures-sink",
+        "io",
+        "memchr",
         "proc-macro-hack",
         "proc-macro-nested",
         "sink",
@@ -108,9 +118,12 @@ rust_library(
     # buildifier: leave-alone
     deps = [
         ":futures_util_build_script",
+        "@raze__futures_channel__0_3_17//:futures_channel",
         "@raze__futures_core__0_3_17//:futures_core",
+        "@raze__futures_io__0_3_17//:futures_io",
         "@raze__futures_sink__0_3_17//:futures_sink",
         "@raze__futures_task__0_3_17//:futures_task",
+        "@raze__memchr__2_4_1//:memchr",
         "@raze__pin_project_lite__0_2_7//:pin_project_lite",
         "@raze__pin_utils__0_1_0//:pin_utils",
         "@raze__proc_macro_nested__0_1_7//:proc_macro_nested",
diff --git a/cargo/remote/BUILD.iovec-0.1.4.bazel b/cargo/remote/BUILD.iovec-0.1.4.bazel
new file mode 100644 (file)
index 0000000..71c75bd
--- /dev/null
@@ -0,0 +1,78 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "iovec",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.4",
+    # buildifier: leave-alone
+    deps = [
+    ] + selects.with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__libc__0_2_101//:libc",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff --git a/cargo/remote/BUILD.kernel32-sys-0.2.2.bazel b/cargo/remote/BUILD.kernel32-sys-0.2.2.bazel
new file mode 100644 (file)
index 0000000..1f29a5d
--- /dev/null
@@ -0,0 +1,94 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "kernel32_sys_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.2",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__winapi_build__0_1_1//:winapi_build",
+    ],
+)
+
+alias(
+    name = "kernel32_sys",
+    actual = ":kernel32",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+rust_library(
+    name = "kernel32",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.2",
+    # buildifier: leave-alone
+    deps = [
+        ":kernel32_sys_build_script",
+        "@raze__winapi__0_2_8//:winapi",
+    ],
+)
diff --git a/cargo/remote/BUILD.lock_api-0.3.4.bazel b/cargo/remote/BUILD.lock_api-0.3.4.bazel
new file mode 100644 (file)
index 0000000..1103cef
--- /dev/null
@@ -0,0 +1,54 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "lock_api",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.3.4",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__scopeguard__1_1_0//:scopeguard",
+    ],
+)
diff --git a/cargo/remote/BUILD.maybe-uninit-2.0.0.bazel b/cargo/remote/BUILD.maybe-uninit-2.0.0.bazel
new file mode 100644 (file)
index 0000000..282fc9a
--- /dev/null
@@ -0,0 +1,85 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "maybe_uninit_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "2.0.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ],
+)
+
+rust_library(
+    name = "maybe_uninit",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "2.0.0",
+    # buildifier: leave-alone
+    deps = [
+        ":maybe_uninit_build_script",
+    ],
+)
+
+# Unsupported target "doesnt_drop" with type "test" omitted
diff --git a/cargo/remote/BUILD.memoffset-0.5.6.bazel b/cargo/remote/BUILD.memoffset-0.5.6.bazel
new file mode 100644 (file)
index 0000000..876b9bd
--- /dev/null
@@ -0,0 +1,86 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "memoffset_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+        "default",
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.5.6",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__autocfg__1_0_1//:autocfg",
+    ],
+)
+
+rust_library(
+    name = "memoffset",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.5.6",
+    # buildifier: leave-alone
+    deps = [
+        ":memoffset_build_script",
+    ],
+)
diff --git a/cargo/remote/BUILD.mio-0.6.23.bazel b/cargo/remote/BUILD.mio-0.6.23.bazel
new file mode 100644 (file)
index 0000000..64c3d2f
--- /dev/null
@@ -0,0 +1,98 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "mio",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+        "default",
+        "with-deprecated",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.6.23",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__cfg_if__0_1_10//:cfg_if",
+        "@raze__iovec__0_1_4//:iovec",
+        "@raze__log__0_4_14//:log",
+        "@raze__net2__0_2_37//:net2",
+        "@raze__slab__0_4_4//:slab",
+    ] + selects.with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__libc__0_2_101//:libc",
+        ],
+        "//conditions:default": [],
+    }) + selects.with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            "@raze__kernel32_sys__0_2_2//:kernel32_sys",
+            "@raze__miow__0_2_2//:miow",
+            "@raze__winapi__0_2_8//:winapi",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+# Unsupported target "test" with type "test" omitted
diff --git a/cargo/remote/BUILD.mio-uds-0.6.8.bazel b/cargo/remote/BUILD.mio-uds-0.6.8.bazel
new file mode 100644 (file)
index 0000000..adcb5e5
--- /dev/null
@@ -0,0 +1,80 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "mio_uds",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.6.8",
+    # buildifier: leave-alone
+    deps = [
+    ] + selects.with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__iovec__0_1_4//:iovec",
+            "@raze__libc__0_2_101//:libc",
+            "@raze__mio__0_6_23//:mio",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff --git a/cargo/remote/BUILD.miow-0.2.2.bazel b/cargo/remote/BUILD.miow-0.2.2.bazel
new file mode 100644 (file)
index 0000000..f005223
--- /dev/null
@@ -0,0 +1,57 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "miow",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.2",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__kernel32_sys__0_2_2//:kernel32_sys",
+        "@raze__net2__0_2_37//:net2",
+        "@raze__winapi__0_2_8//:winapi",
+        "@raze__ws2_32_sys__0_2_1//:ws2_32_sys",
+    ],
+)
diff --git a/cargo/remote/BUILD.net2-0.2.37.bazel b/cargo/remote/BUILD.net2-0.2.37.bazel
new file mode 100644 (file)
index 0000000..68a6e45
--- /dev/null
@@ -0,0 +1,91 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "net2",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+        "default",
+        "duration",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.37",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__cfg_if__0_1_10//:cfg_if",
+    ] + selects.with_or({
+        # cfg(any(target_os = "redox", unix, target_os = "wasi"))
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__libc__0_2_101//:libc",
+        ],
+        "//conditions:default": [],
+    }) + selects.with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            "@raze__winapi__0_3_9//:winapi",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff --git a/cargo/remote/BUILD.parking_lot-0.9.0.bazel b/cargo/remote/BUILD.parking_lot-0.9.0.bazel
new file mode 100644 (file)
index 0000000..5e0946e
--- /dev/null
@@ -0,0 +1,88 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "parking_lot_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+        "default",
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.9.0",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__rustc_version__0_2_3//:rustc_version",
+    ],
+)
+
+rust_library(
+    name = "parking_lot",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.9.0",
+    # buildifier: leave-alone
+    deps = [
+        ":parking_lot_build_script",
+        "@raze__lock_api__0_3_4//:lock_api",
+        "@raze__parking_lot_core__0_6_2//:parking_lot_core",
+    ],
+)
diff --git a/cargo/remote/BUILD.parking_lot_core-0.6.2.bazel b/cargo/remote/BUILD.parking_lot_core-0.6.2.bazel
new file mode 100644 (file)
index 0000000..853dc3c
--- /dev/null
@@ -0,0 +1,150 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # Apache-2.0 from expression "Apache-2.0 OR MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "parking_lot_core_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.6.2",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__rustc_version__0_2_3//:rustc_version",
+    ] + selects.with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+        ],
+        "//conditions:default": [],
+    }) + selects.with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+rust_library(
+    name = "parking_lot_core",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.6.2",
+    # buildifier: leave-alone
+    deps = [
+        ":parking_lot_core_build_script",
+        "@raze__cfg_if__0_1_10//:cfg_if",
+        "@raze__smallvec__0_6_14//:smallvec",
+    ] + selects.with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__libc__0_2_101//:libc",
+        ],
+        "//conditions:default": [],
+    }) + selects.with_or({
+        # cfg(windows)
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            "@raze__winapi__0_3_9//:winapi",
+        ],
+        "//conditions:default": [],
+    }),
+)
diff --git a/cargo/remote/BUILD.prometheus-0.12.0.bazel b/cargo/remote/BUILD.prometheus-0.12.0.bazel
new file mode 100644 (file)
index 0000000..d448c8a
--- /dev/null
@@ -0,0 +1,146 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # Apache-2.0 from expression "Apache-2.0"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "prometheus_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+        "default",
+        "protobuf",
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.12.0",
+    visibility = ["//visibility:private"],
+    deps = [
+    ] + selects.with_or({
+        # cfg(target_os = "linux")
+        (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+# Unsupported target "atomic" with type "bench" omitted
+
+# Unsupported target "counter" with type "bench" omitted
+
+# Unsupported target "desc" with type "bench" omitted
+
+# Unsupported target "gauge" with type "bench" omitted
+
+# Unsupported target "histogram" with type "bench" omitted
+
+# Unsupported target "text_encoder" with type "bench" omitted
+
+# Unsupported target "example_custom_registry" with type "example" omitted
+
+# Unsupported target "example_edition_2018" with type "example" omitted
+
+# Unsupported target "example_embed" with type "example" omitted
+
+# Unsupported target "example_hyper" with type "example" omitted
+
+# Unsupported target "example_int_metrics" with type "example" omitted
+
+# Unsupported target "example_process_collector" with type "example" omitted
+
+# Unsupported target "example_push" with type "example" omitted
+
+rust_library(
+    name = "prometheus",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+        "default",
+        "protobuf",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.12.0",
+    # buildifier: leave-alone
+    deps = [
+        ":prometheus_build_script",
+        "@raze__cfg_if__1_0_0//:cfg_if",
+        "@raze__fnv__1_0_7//:fnv",
+        "@raze__lazy_static__1_4_0//:lazy_static",
+        "@raze__memchr__2_4_1//:memchr",
+        "@raze__parking_lot__0_11_2//:parking_lot",
+        "@raze__protobuf__2_25_1//:protobuf",
+        "@raze__thiserror__1_0_29//:thiserror",
+    ] + selects.with_or({
+        # cfg(target_os = "linux")
+        (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+        ],
+        "//conditions:default": [],
+    }),
+)
diff --git a/cargo/remote/BUILD.protobuf-2.25.1.bazel b/cargo/remote/BUILD.protobuf-2.25.1.bazel
new file mode 100644 (file)
index 0000000..d28e555
--- /dev/null
@@ -0,0 +1,87 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "protobuf_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "2.25.1",
+    visibility = ["//visibility:private"],
+    deps = [
+    ],
+)
+
+# Unsupported target "coded_input_stream" with type "bench" omitted
+
+# Unsupported target "coded_output_stream" with type "bench" omitted
+
+rust_library(
+    name = "protobuf",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2018",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "2.25.1",
+    # buildifier: leave-alone
+    deps = [
+        ":protobuf_build_script",
+    ],
+)
diff --git a/cargo/remote/BUILD.redox_syscall-0.1.57.bazel b/cargo/remote/BUILD.redox_syscall-0.1.57.bazel
new file mode 100644 (file)
index 0000000..c0f5949
--- /dev/null
@@ -0,0 +1,62 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+alias(
+    name = "redox_syscall",
+    actual = ":syscall",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+rust_library(
+    name = "syscall",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.57",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
diff --git a/cargo/remote/BUILD.rustc_version-0.2.3.bazel b/cargo/remote/BUILD.rustc_version-0.2.3.bazel
new file mode 100644 (file)
index 0000000..a030b3a
--- /dev/null
@@ -0,0 +1,54 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "rustc_version",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.3",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__semver__0_9_0//:semver",
+    ],
+)
diff --git a/cargo/remote/BUILD.semver-0.9.0.bazel b/cargo/remote/BUILD.semver-0.9.0.bazel
new file mode 100644 (file)
index 0000000..0e8cb82
--- /dev/null
@@ -0,0 +1,61 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "semver",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.9.0",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__semver_parser__0_7_0//:semver_parser",
+    ],
+)
+
+# Unsupported target "deprecation" with type "test" omitted
+
+# Unsupported target "regression" with type "test" omitted
+
+# Unsupported target "serde" with type "test" omitted
diff --git a/cargo/remote/BUILD.semver-parser-0.7.0.bazel b/cargo/remote/BUILD.semver-parser-0.7.0.bazel
new file mode 100644 (file)
index 0000000..8fada11
--- /dev/null
@@ -0,0 +1,53 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "semver_parser",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.7.0",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
diff --git a/cargo/remote/BUILD.smallvec-0.6.14.bazel b/cargo/remote/BUILD.smallvec-0.6.14.bazel
new file mode 100644 (file)
index 0000000..306894f
--- /dev/null
@@ -0,0 +1,58 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT OR Apache-2.0"
+])
+
+# Generated Targets
+
+# Unsupported target "bench" with type "bench" omitted
+
+rust_library(
+    name = "smallvec",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+        "default",
+        "std",
+    ],
+    crate_root = "lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.6.14",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__maybe_uninit__2_0_0//:maybe_uninit",
+    ],
+)
diff --git a/cargo/remote/BUILD.tokio-0.1.22.bazel b/cargo/remote/BUILD.tokio-0.1.22.bazel
new file mode 100644 (file)
index 0000000..838b5e9
--- /dev/null
@@ -0,0 +1,171 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "blocking" with type "example" omitted
+
+# Unsupported target "chat" with type "example" omitted
+
+# Unsupported target "chat-combinator" with type "example" omitted
+
+# Unsupported target "chat-combinator-current-thread" with type "example" omitted
+
+# Unsupported target "connect" with type "example" omitted
+
+# Unsupported target "echo" with type "example" omitted
+
+# Unsupported target "echo-udp" with type "example" omitted
+
+# Unsupported target "hello_world" with type "example" omitted
+
+# Unsupported target "manual-runtime" with type "example" omitted
+
+# Unsupported target "print_each_packet" with type "example" omitted
+
+# Unsupported target "proxy" with type "example" omitted
+
+# Unsupported target "tinydb" with type "example" omitted
+
+# Unsupported target "tinyhttp" with type "example" omitted
+
+# Unsupported target "udp-client" with type "example" omitted
+
+# Unsupported target "udp-codec" with type "example" omitted
+
+rust_library(
+    name = "tokio",
+    srcs = glob(["**/*.rs"]),
+    aliases = {
+    },
+    crate_features = [
+        "bytes",
+        "codec",
+        "default",
+        "fs",
+        "io",
+        "mio",
+        "num_cpus",
+        "reactor",
+        "rt-full",
+        "sync",
+        "tcp",
+        "timer",
+        "tokio-codec",
+        "tokio-current-thread",
+        "tokio-executor",
+        "tokio-fs",
+        "tokio-io",
+        "tokio-reactor",
+        "tokio-sync",
+        "tokio-tcp",
+        "tokio-threadpool",
+        "tokio-timer",
+        "tokio-udp",
+        "tokio-uds",
+        "udp",
+        "uds",
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.22",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__0_4_12//:bytes",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__mio__0_6_23//:mio",
+        "@raze__num_cpus__1_13_0//:num_cpus",
+        "@raze__tokio_codec__0_1_2//:tokio_codec",
+        "@raze__tokio_current_thread__0_1_7//:tokio_current_thread",
+        "@raze__tokio_executor__0_1_10//:tokio_executor",
+        "@raze__tokio_fs__0_1_7//:tokio_fs",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+        "@raze__tokio_reactor__0_1_12//:tokio_reactor",
+        "@raze__tokio_sync__0_1_8//:tokio_sync",
+        "@raze__tokio_tcp__0_1_4//:tokio_tcp",
+        "@raze__tokio_threadpool__0_1_18//:tokio_threadpool",
+        "@raze__tokio_timer__0_2_13//:tokio_timer",
+        "@raze__tokio_udp__0_1_6//:tokio_udp",
+    ] + selects.with_or({
+        # cfg(unix)
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-apple-ios",
+            "@rules_rust//rust/platform:aarch64-linux-android",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:arm-unknown-linux-gnueabi",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-linux-android",
+            "@rules_rust//rust/platform:i686-unknown-freebsd",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:powerpc-unknown-linux-gnu",
+            "@rules_rust//rust/platform:s390x-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-apple-ios",
+            "@rules_rust//rust/platform:x86_64-linux-android",
+            "@rules_rust//rust/platform:x86_64-unknown-freebsd",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@raze__tokio_uds__0_2_7//:tokio_uds",
+        ],
+        "//conditions:default": [],
+    }),
+)
+
+# Unsupported target "buffered" with type "test" omitted
+
+# Unsupported target "clock" with type "test" omitted
+
+# Unsupported target "drop-core" with type "test" omitted
+
+# Unsupported target "enumerate" with type "test" omitted
+
+# Unsupported target "global" with type "test" omitted
+
+# Unsupported target "length_delimited" with type "test" omitted
+
+# Unsupported target "line-frames" with type "test" omitted
+
+# Unsupported target "pipe-hup" with type "test" omitted
+
+# Unsupported target "reactor" with type "test" omitted
+
+# Unsupported target "runtime" with type "test" omitted
+
+# Unsupported target "timer" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-codec-0.1.2.bazel b/cargo/remote/BUILD.tokio-codec-0.1.2.bazel
new file mode 100644 (file)
index 0000000..69780c5
--- /dev/null
@@ -0,0 +1,64 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_codec",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.2",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__0_4_12//:bytes",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+    ],
+)
+
+# Unsupported target "codecs" with type "test" omitted
+
+# Unsupported target "framed" with type "test" omitted
+
+# Unsupported target "framed_read" with type "test" omitted
+
+# Unsupported target "framed_write" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-current-thread-0.1.7.bazel b/cargo/remote/BUILD.tokio-current-thread-0.1.7.bazel
new file mode 100644 (file)
index 0000000..5565261
--- /dev/null
@@ -0,0 +1,57 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_current_thread",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.7",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__futures__0_1_31//:futures",
+        "@raze__tokio_executor__0_1_10//:tokio_executor",
+    ],
+)
+
+# Unsupported target "current_thread" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-executor-0.1.10.bazel b/cargo/remote/BUILD.tokio-executor-0.1.10.bazel
new file mode 100644 (file)
index 0000000..a8f53bd
--- /dev/null
@@ -0,0 +1,57 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_executor",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.10",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__futures__0_1_31//:futures",
+    ],
+)
+
+# Unsupported target "executor" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-fs-0.1.7.bazel b/cargo/remote/BUILD.tokio-fs-0.1.7.bazel
new file mode 100644 (file)
index 0000000..09e49e3
--- /dev/null
@@ -0,0 +1,64 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "std-echo" with type "example" omitted
+
+rust_library(
+    name = "tokio_fs",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.7",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__futures__0_1_31//:futures",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+        "@raze__tokio_threadpool__0_1_18//:tokio_threadpool",
+    ],
+)
+
+# Unsupported target "dir" with type "test" omitted
+
+# Unsupported target "file" with type "test" omitted
+
+# Unsupported target "link" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-io-0.1.13.bazel b/cargo/remote/BUILD.tokio-io-0.1.13.bazel
new file mode 100644 (file)
index 0000000..fe63e76
--- /dev/null
@@ -0,0 +1,60 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_io",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.13",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__0_4_12//:bytes",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__log__0_4_14//:log",
+    ],
+)
+
+# Unsupported target "async_read" with type "test" omitted
+
+# Unsupported target "length_delimited" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-reactor-0.1.12.bazel b/cargo/remote/BUILD.tokio-reactor-0.1.12.bazel
new file mode 100644 (file)
index 0000000..cce7e02
--- /dev/null
@@ -0,0 +1,66 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "basic" with type "bench" omitted
+
+rust_library(
+    name = "tokio_reactor",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.12",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__lazy_static__1_4_0//:lazy_static",
+        "@raze__log__0_4_14//:log",
+        "@raze__mio__0_6_23//:mio",
+        "@raze__num_cpus__1_13_0//:num_cpus",
+        "@raze__parking_lot__0_9_0//:parking_lot",
+        "@raze__slab__0_4_4//:slab",
+        "@raze__tokio_executor__0_1_10//:tokio_executor",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+        "@raze__tokio_sync__0_1_8//:tokio_sync",
+    ],
+)
diff --git a/cargo/remote/BUILD.tokio-scoped-0.1.0.bazel b/cargo/remote/BUILD.tokio-scoped-0.1.0.bazel
new file mode 100644 (file)
index 0000000..4ee3e7d
--- /dev/null
@@ -0,0 +1,55 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_scoped",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.0",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__futures__0_1_31//:futures",
+        "@raze__tokio__0_1_22//:tokio",
+    ],
+)
diff --git a/cargo/remote/BUILD.tokio-sync-0.1.8.bazel b/cargo/remote/BUILD.tokio-sync-0.1.8.bazel
new file mode 100644 (file)
index 0000000..8239383
--- /dev/null
@@ -0,0 +1,83 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "mpsc" with type "bench" omitted
+
+# Unsupported target "oneshot" with type "bench" omitted
+
+rust_library(
+    name = "tokio_sync",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.8",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__fnv__1_0_7//:fnv",
+        "@raze__futures__0_1_31//:futures",
+    ],
+)
+
+# Unsupported target "atomic_task" with type "test" omitted
+
+# Unsupported target "errors" with type "test" omitted
+
+# Unsupported target "fuzz_atomic_task" with type "test" omitted
+
+# Unsupported target "fuzz_list" with type "test" omitted
+
+# Unsupported target "fuzz_mpsc" with type "test" omitted
+
+# Unsupported target "fuzz_oneshot" with type "test" omitted
+
+# Unsupported target "fuzz_semaphore" with type "test" omitted
+
+# Unsupported target "lock" with type "test" omitted
+
+# Unsupported target "mpsc" with type "test" omitted
+
+# Unsupported target "oneshot" with type "test" omitted
+
+# Unsupported target "semaphore" with type "test" omitted
+
+# Unsupported target "watch" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-tcp-0.1.4.bazel b/cargo/remote/BUILD.tokio-tcp-0.1.4.bazel
new file mode 100644 (file)
index 0000000..de96893
--- /dev/null
@@ -0,0 +1,69 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_tcp",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.4",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__0_4_12//:bytes",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__iovec__0_1_4//:iovec",
+        "@raze__mio__0_6_23//:mio",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+        "@raze__tokio_reactor__0_1_12//:tokio_reactor",
+    ],
+)
+
+# Unsupported target "chain" with type "test" omitted
+
+# Unsupported target "echo" with type "test" omitted
+
+# Unsupported target "limit" with type "test" omitted
+
+# Unsupported target "stream-buffered" with type "test" omitted
+
+# Unsupported target "tcp" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-threadpool-0.1.18.bazel b/cargo/remote/BUILD.tokio-threadpool-0.1.18.bazel
new file mode 100644 (file)
index 0000000..6866671
--- /dev/null
@@ -0,0 +1,78 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+# Unsupported target "basic" with type "bench" omitted
+
+# Unsupported target "blocking" with type "bench" omitted
+
+# Unsupported target "depth" with type "bench" omitted
+
+# Unsupported target "depth" with type "example" omitted
+
+# Unsupported target "hello" with type "example" omitted
+
+rust_library(
+    name = "tokio_threadpool",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.18",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__crossbeam_deque__0_7_4//:crossbeam_deque",
+        "@raze__crossbeam_queue__0_2_3//:crossbeam_queue",
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__lazy_static__1_4_0//:lazy_static",
+        "@raze__log__0_4_14//:log",
+        "@raze__num_cpus__1_13_0//:num_cpus",
+        "@raze__slab__0_4_4//:slab",
+        "@raze__tokio_executor__0_1_10//:tokio_executor",
+    ],
+)
+
+# Unsupported target "blocking" with type "test" omitted
+
+# Unsupported target "hammer" with type "test" omitted
+
+# Unsupported target "threadpool" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-timer-0.2.13.bazel b/cargo/remote/BUILD.tokio-timer-0.2.13.bazel
new file mode 100644 (file)
index 0000000..b2427d5
--- /dev/null
@@ -0,0 +1,73 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_timer",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.13",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__crossbeam_utils__0_7_2//:crossbeam_utils",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__slab__0_4_4//:slab",
+        "@raze__tokio_executor__0_1_10//:tokio_executor",
+    ],
+)
+
+# Unsupported target "clock" with type "test" omitted
+
+# Unsupported target "deadline" with type "test" omitted
+
+# Unsupported target "delay" with type "test" omitted
+
+# Unsupported target "hammer" with type "test" omitted
+
+# Unsupported target "interval" with type "test" omitted
+
+# Unsupported target "queue" with type "test" omitted
+
+# Unsupported target "throttle" with type "test" omitted
+
+# Unsupported target "timeout" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-udp-0.1.6.bazel b/cargo/remote/BUILD.tokio-udp-0.1.6.bazel
new file mode 100644 (file)
index 0000000..b72d7b2
--- /dev/null
@@ -0,0 +1,62 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_udp",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.6",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__0_4_12//:bytes",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__log__0_4_14//:log",
+        "@raze__mio__0_6_23//:mio",
+        "@raze__tokio_codec__0_1_2//:tokio_codec",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+        "@raze__tokio_reactor__0_1_12//:tokio_reactor",
+    ],
+)
+
+# Unsupported target "udp" with type "test" omitted
diff --git a/cargo/remote/BUILD.tokio-uds-0.2.7.bazel b/cargo/remote/BUILD.tokio-uds-0.2.7.bazel
new file mode 100644 (file)
index 0000000..139e2c9
--- /dev/null
@@ -0,0 +1,67 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "tokio_uds",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.7",
+    # buildifier: leave-alone
+    deps = [
+        "@raze__bytes__0_4_12//:bytes",
+        "@raze__futures__0_1_31//:futures",
+        "@raze__iovec__0_1_4//:iovec",
+        "@raze__libc__0_2_101//:libc",
+        "@raze__log__0_4_14//:log",
+        "@raze__mio__0_6_23//:mio",
+        "@raze__mio_uds__0_6_8//:mio_uds",
+        "@raze__tokio_codec__0_1_2//:tokio_codec",
+        "@raze__tokio_io__0_1_13//:tokio_io",
+        "@raze__tokio_reactor__0_1_12//:tokio_reactor",
+    ],
+)
+
+# Unsupported target "datagram" with type "test" omitted
+
+# Unsupported target "stream" with type "test" omitted
diff --git a/cargo/remote/BUILD.winapi-0.2.8.bazel b/cargo/remote/BUILD.winapi-0.2.8.bazel
new file mode 100644 (file)
index 0000000..385cb3a
--- /dev/null
@@ -0,0 +1,53 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+rust_library(
+    name = "winapi",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.8",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
diff --git a/cargo/remote/BUILD.winapi-build-0.1.1.bazel b/cargo/remote/BUILD.winapi-build-0.1.1.bazel
new file mode 100644 (file)
index 0000000..efdb57a
--- /dev/null
@@ -0,0 +1,62 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+
+alias(
+    name = "winapi_build",
+    actual = ":build",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+rust_library(
+    name = "build",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.1.1",
+    # buildifier: leave-alone
+    deps = [
+    ],
+)
diff --git a/cargo/remote/BUILD.ws2_32-sys-0.2.1.bazel b/cargo/remote/BUILD.ws2_32-sys-0.2.1.bazel
new file mode 100644 (file)
index 0000000..4f08810
--- /dev/null
@@ -0,0 +1,94 @@
+"""
+@generated
+cargo-raze crate build file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+# buildifier: disable=load
+load("@bazel_skylib//lib:selects.bzl", "selects")
+
+# buildifier: disable=load
+load(
+    "@rules_rust//rust:rust.bzl",
+    "rust_binary",
+    "rust_library",
+    "rust_test",
+)
+
+package(default_visibility = [
+    # Public for visibility by "@raze__crate__version//" targets.
+    #
+    # Prefer access through "//cargo", which limits external
+    # visibility to explicit Cargo.toml dependencies.
+    "//visibility:public",
+])
+
+licenses([
+    "notice",  # MIT from expression "MIT"
+])
+
+# Generated Targets
+# buildifier: disable=out-of-order-load
+# buildifier: disable=load-on-top
+load(
+    "@rules_rust//cargo:cargo_build_script.bzl",
+    "cargo_build_script",
+)
+
+cargo_build_script(
+    name = "ws2_32_sys_build_script",
+    srcs = glob(["**/*.rs"]),
+    build_script_env = {
+    },
+    crate_features = [
+    ],
+    crate_root = "build.rs",
+    data = glob(["**"]),
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.1",
+    visibility = ["//visibility:private"],
+    deps = [
+        "@raze__winapi_build__0_1_1//:winapi_build",
+    ],
+)
+
+alias(
+    name = "ws2_32_sys",
+    actual = ":ws2_32",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+rust_library(
+    name = "ws2_32",
+    srcs = glob(["**/*.rs"]),
+    crate_features = [
+    ],
+    crate_root = "src/lib.rs",
+    crate_type = "lib",
+    data = [],
+    edition = "2015",
+    rustc_flags = [
+        "--cap-lints=allow",
+    ],
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+    version = "0.2.1",
+    # buildifier: leave-alone
+    deps = [
+        ":ws2_32_sys_build_script",
+        "@raze__winapi__0_2_8//:winapi",
+    ],
+)
diff --git a/common/Cargo.toml b/common/Cargo.toml
deleted file mode 100644 (file)
index cc36f14..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-[package]
-name = "common"
-version = "0.1.0"
-edition = "2018"
-
-[dependencies]
-tonic = "0.5"
-prost = "0.8"
-tokio = { version = "1", features = ["full"] }
-
-
-[build-dependencies]
-tonic-build = { version = "0.5", features = ["transport", "prost"], default-features = false }
-
-[dev-dependencies]
-tonic-build = { version = "0.5", features = ["transport", "prost"], default-features = false }
-
diff --git a/common/cargo/BUILD.bazel b/common/cargo/BUILD.bazel
new file mode 100644 (file)
index 0000000..35f9c72
--- /dev/null
@@ -0,0 +1,49 @@
+"""
+@generated
+cargo-raze generated Bazel file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+package(default_visibility = ["//visibility:public"])
+
+licenses([
+    "notice",  # See individual crates for specific licenses
+])
+
+# Aliased targets
+alias(
+    name = "config",
+    actual = "@raze__config__0_11_0//:config",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "log",
+    actual = "@raze__log__0_4_14//:log",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "pretty_env_logger",
+    actual = "@raze__pretty_env_logger__0_4_0//:pretty_env_logger",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "serde",
+    actual = "@raze__serde__1_0_130//:serde",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
diff --git a/common/gateway/BUILD.bazel b/common/gateway/BUILD.bazel
deleted file mode 100644 (file)
index ae38896..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library")
-
-go_library(
-    name = "gateway",
-    srcs = [
-        "compressor.go",
-        "event-names.go",
-        "transporter.go",
-    ],
-    importpath = "github.com/discordnova/nova/common/gateway",
-    visibility = ["//visibility:public"],
-    deps = ["//common/discord/types/payloads/gateway"],
-)
diff --git a/common/gateway/compressor.go b/common/gateway/compressor.go
deleted file mode 100644 (file)
index c8dbb93..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-package gateway\r
-\r
-import "github.com/discordnova/nova/common/discord/types/payloads/gateway"\r
-\r
-// GatewayConnectionOptions is the options given to gateway when the connector is passed to it.\r
-type GatewayConnectionOptions struct {\r
-       Encoding             string\r
-       TransportCompression string\r
-}\r
-\r
-// Compression is the interface that needs to be implemented by a generic compressor.\r
-type Compression interface {\r
-       GetConnectionOptions() GatewayConnectionOptions\r
-       DecodeMessage(data []byte) (*gateway.Payload, error)\r
-       Reset() error\r
-}\r
diff --git a/common/gateway/event-names.go b/common/gateway/event-names.go
deleted file mode 100644 (file)
index c1c3054..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-package gateway\r
-\r
-// This is used to map the discord dispatch events\r
-// to internal names used by the event broker.\r
-\r
-// TODO: Update the types of events for the gateway v9\r
-var EventNames = map[string]string{\r
-       "READY":     "gateway.ready",\r
-       "RESUMED":   "gateway.resumed",\r
-       "RECONNECT": "gateway.reconnect",\r
-\r
-       "CHANNEL_CREATE": "channel.create",\r
-       "CHANNEL_UPDATE": "channel.update",\r
-       "CHANNEL_DELETE": "channel.delete",\r
-\r
-       "GUILD_CREATE": "guild.create",\r
-       "GUILD_UPDATE": "guild.update",\r
-       "GUILD_DELETE": "guild.delete",\r
-\r
-       "GUILD_BAN_ADD":    "guild.ban.add",\r
-       "GUILD_BAN_REMOVE": "guild.ban.remove",\r
-\r
-       "GUILD_EMOJIS_UPDATE":       "guild.emojis_update",\r
-       "GUILD_INTEGRATIONS_UPDATE": "guild.integrations_update",\r
-\r
-       "GUILD_MEMBER_ADD":     "guild.member.add",\r
-       "GUILD_MEMBER_REMOVE":  "guild.member.remove",\r
-       "GUILD_MEMBERS_UPDATE": "guild.member.update",\r
-\r
-       "GUILD_MEMBERS_CHUNK": "guild_members_chunk",\r
-\r
-       "GUILD_ROLE_CREATE": "guild.role.create",\r
-       "GUILD_ROLE_UPDATE": "guild.role.update",\r
-       "GUILD_ROLE_DELETE": "guild.role.delete",\r
-\r
-       "INVITE_CREATE": "guild.invite.create",\r
-       "INVITE_DELETE": "guild.invite.guild",\r
-\r
-       "MESSAGE_CREATE":                "message.create",\r
-       "MESSAGE_UPDATE":                "message.update",\r
-       "MESSAGE_DELETE_BULK":           "message.delete_bulk",\r
-       "MESSAGE_REACTION_ADD":          "message.reactions.add",\r
-       "MESSAGE_REACTION_REMOVE":       "message.reactions.remove",\r
-       "MESSAGE_REACTION_REMOVE_ALL":   "message.reactions.remove_all",\r
-       "MESSAGE_REACTION_REMOVE_EMOJI": "message.reactions.remove_emoji",\r
-       "PRESENCE_UPDATE":               "users.presence_update",\r
-       "TYPING_START":                  "message.typing_start",\r
-       "USER_UPDATE":                   "users.update",\r
-       "VOICE_STATE_UPDATE":            "voice.state_update",\r
-       "VOICE_SERVER_UPDATE":           "voice.server_update",\r
-       "WEBHOOKS_UPDATE":               "guild.webhooks.update",\r
-}\r
diff --git a/common/gateway/transporter.go b/common/gateway/transporter.go
deleted file mode 100644 (file)
index 9e43262..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-package gateway\r
-\r
-type PushData struct {\r
-       Data []byte\r
-       Name string\r
-}\r
-\r
-// Transporter is the base interface for the transportation layer of Nova\r
-type Transporter interface {\r
-       PushChannel() chan PushData\r
-       PullChannel() chan []byte\r
-}\r
diff --git a/common/lib/lib.rs b/common/lib/lib.rs
deleted file mode 100644 (file)
index 45c84fe..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-use std::env;
-
-use config::{Config, ConfigError, Environment, File};
-use log::info;
-use serde::Deserialize;
-
-/// Executes the required configuration steps for the program,
-/// excluding build information, Sentry and logging.
-pub fn setup_program(_name: &str) {
-    pretty_env_logger::init();
-}
-
-#[derive(Debug, Deserialize, Clone)]
-pub struct Server {
-    pub port: u16,
-    pub address: String,
-}
-
-#[derive(Debug, Deserialize, Clone)]
-pub struct Discord {
-    pub public_key: String,
-    pub client_id: u32,
-}
-
-#[derive(Debug, Deserialize, Clone)]
-pub struct Settings {
-    pub server: Server,
-    pub discord: Discord,
-}
-
-impl Settings {
-    pub fn new() -> Result<Self, ConfigError> {
-        let mut default = Config::default();
-        default.merge(File::with_name("config/default"))?;
-        let mode = env::var("ENV").unwrap_or_else(|_| "development".into());
-        info!("Configuration Environment: {}", mode);
-
-        default.merge(File::with_name(&format!("config/{}", mode)).required(false))?;
-        default.merge(File::with_name("config/local").required(false))?;
-        default.merge(Environment::with_prefix("NOVA_GATEWAY"))?;
-
-        println!("Debug mode: {:?}", default.get_bool("debug"));
-
-        let config: Self = default.try_into().unwrap();
-
-        Ok(config)
-    }
-}
diff --git a/common/rust/BUILD.bazel b/common/rust/BUILD.bazel
new file mode 100644 (file)
index 0000000..0fbd9b2
--- /dev/null
@@ -0,0 +1,9 @@
+load("@rules_rust//rust:defs.bzl", "rust_library")
+load("//cargo:crates.bzl", "all_crate_deps")
+
+rust_library(
+    name = "common",
+    srcs = glob(["src/**"]),
+    visibility = ["//visibility:public"],
+    deps = all_crate_deps(),
+)
diff --git a/common/rust/Cargo.toml b/common/rust/Cargo.toml
new file mode 100644 (file)
index 0000000..d631c6c
--- /dev/null
@@ -0,0 +1,13 @@
+[package]
+name = "common"
+version = "0.1.0"
+edition = "2018"
+
+[dependencies]
+pretty_env_logger = "0.4"
+log = { version = "0.4", features = ["std"] }
+serde = { version = "1.0.8", features = ["derive"] }
+config = "0.11"
+hyper = { version = "0.14", features = ["full"] }
+tokio = { version = "1", features = ["full"] }
+prometheus = "0.12.0"
\ No newline at end of file
diff --git a/common/rust/cargo/BUILD.bazel b/common/rust/cargo/BUILD.bazel
new file mode 100644 (file)
index 0000000..ff92458
--- /dev/null
@@ -0,0 +1,76 @@
+"""
+@generated
+cargo-raze generated Bazel file.
+
+DO NOT EDIT! Replaced on runs of cargo-raze
+"""
+
+package(default_visibility = ["//visibility:public"])
+
+licenses([
+    "notice",  # See individual crates for specific licenses
+])
+
+# Aliased targets
+alias(
+    name = "config",
+    actual = "@raze__config__0_11_0//:config",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "hyper",
+    actual = "@raze__hyper__0_14_12//:hyper",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "log",
+    actual = "@raze__log__0_4_14//:log",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "pretty_env_logger",
+    actual = "@raze__pretty_env_logger__0_4_0//:pretty_env_logger",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "prometheus",
+    actual = "@raze__prometheus__0_12_0//:prometheus",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "serde",
+    actual = "@raze__serde__1_0_130//:serde",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
+alias(
+    name = "tokio",
+    actual = "@raze__tokio__1_11_0//:tokio",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
diff --git a/common/rust/src/config.rs b/common/rust/src/config.rs
new file mode 100644 (file)
index 0000000..6d8fb33
--- /dev/null
@@ -0,0 +1,41 @@
+use std::env;
+
+use config::{Config, ConfigError, Environment, File};
+use log::info;
+use serde::{Deserialize};
+
+
+#[derive(Debug, Deserialize, Clone)]
+#[serde(bound(deserialize = "T: Deserialize<'de> + std::default::Default + Clone"))]
+pub struct Settings<T> {
+    #[serde(skip_deserializing)]
+    pub config: T,
+    pub monitoring: crate::monitoring::MonitoringConfiguration,
+}
+
+impl<T> Settings<T> where T: Deserialize<'static> + std::default::Default + Clone {
+    pub fn new(service_name: &str) -> Result<Settings<T>, ConfigError> {
+        let mut default = Config::default();
+        // this file my be shared with all the components
+        default.merge(File::with_name("config/default"))?;
+        let mode = env::var("ENV").unwrap_or_else(|_| "development".into());
+        info!("Configuration Environment: {}", mode);
+
+        default.merge(File::with_name(&format!("config/{}", mode)).required(false))?;
+        default.merge(File::with_name("config/local").required(false))?;
+
+        // we can configure each component using environment variables
+        default.merge(Environment::with_prefix(&format!("NOVA_{}", service_name)))?;
+        let mut config: Settings<T> = default.clone().try_into().unwrap();
+
+        //  try to load the config
+        config.config = default.get::<T>(&service_name).unwrap();
+
+        // setup the logger
+        pretty_env_logger::init_custom_env(&format!("NOVA_{}_LOG", service_name));
+
+        // start the monitoring system if needed
+        crate::monitoring::start_monitoring(&config.monitoring);
+        Ok(config)
+    }
+}
diff --git a/common/rust/src/lib.rs b/common/rust/src/lib.rs
new file mode 100644 (file)
index 0000000..5122334
--- /dev/null
@@ -0,0 +1,4 @@
+/// This crate contains shared code in all the rust projects
+/// It contains utilities such as monitoring, logging and more.
+pub mod config;
+pub mod monitoring;
\ No newline at end of file
diff --git a/common/rust/src/monitoring.rs b/common/rust/src/monitoring.rs
new file mode 100644 (file)
index 0000000..ded1d95
--- /dev/null
@@ -0,0 +1,60 @@
+use hyper::{
+    Response, Body, Request, Server,
+    header::{CONTENT_TYPE},
+    service::{make_service_fn, service_fn},
+};
+use std::net::ToSocketAddrs;
+use prometheus::{Encoder, TextEncoder};
+use log::{info,error};
+use serde::Deserialize;
+
+#[derive(Clone, Debug, Deserialize)]
+/// Options for the monitoring service
+pub struct MonitoringConfiguration {
+    enabled: bool,
+    address: Option<String>,
+    port: Option<i32>,
+}
+
+/// Handler for the hyper http server
+async fn serve_metrics(_request: Request<Body>) -> Result<Response<Body>, hyper::Error> {
+    let encoder = TextEncoder::new();
+    let metrics = prometheus::gather();
+
+    let mut buffer = vec![];
+    encoder.encode(&metrics, &mut buffer).unwrap();
+
+    let response = Response::builder()
+        .status(200)
+        .header(CONTENT_TYPE, encoder.format_type())
+        .body(Body::from(buffer))
+        .unwrap();
+    Ok(response)
+}
+
+/// Starts a monitoring server on the requested port
+pub fn start_monitoring(configuration: &MonitoringConfiguration) {
+    let config = configuration.clone();
+    tokio::task::spawn(async move {
+        if config.enabled {
+            let address = format!("{}:{}",
+                config.address.expect("a listening address must be specified for the metrics server"),
+                config.port.expect("a listening port must be specified for the metrics server")
+            );
+            info!("Starting monitoring server on {}", address);
+            
+            let listen_address = address
+                .to_socket_addrs()
+                .unwrap()
+                .next()
+                .unwrap();
+            let server = Server::bind(&listen_address).serve(make_service_fn(|_| async {
+                Ok::<_, hyper::Error>(service_fn(serve_metrics))
+            }));
+
+            if let Err(e) = server.await {
+                error!("failed to start the monitoring server {}", e);
+            }
+        }
+    });
+}
\ No newline at end of file
diff --git a/examples/config/gateway.yaml b/examples/config/gateway.yaml
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/examples/config/webhook.yaml b/examples/config/webhook.yaml
new file mode 100644 (file)
index 0000000..db8b3a3
--- /dev/null
@@ -0,0 +1,8 @@
+debug: true
+server:
+  address: "0.0.0.0"
+  port: 8000
+discord:
+  # Theses credentials are public anyways
+  client_id: 738817757650485300
+  public_key: "475bed67e20fb1e2d9b9007607f08d7b25b5a0aa936ef2d4ddaf7d592c993860"
diff --git a/examples/docker-compose.gateway.yml b/examples/docker-compose.gateway.yml
new file mode 100644 (file)
index 0000000..0cd1472
--- /dev/null
@@ -0,0 +1,8 @@
+version: "3.3"
+
+services:
+  gateway:
+    image: "ghcr.io/discordnova/nova/gateway@sha256:3432794af8d6f910b06bf8502bc92e5ecca3d6f4c0ec302ca77df03c6a94b014"
+    environment:
+      - DISCORD_TOKEN="<your discord token>"
+      - RUST_LOG=info
\ No newline at end of file
diff --git a/examples/docker-compose.webhook.yml b/examples/docker-compose.webhook.yml
new file mode 100644 (file)
index 0000000..165b4cf
--- /dev/null
@@ -0,0 +1,13 @@
+version: "3.3"
+
+services:
+  webhook:
+    image: "ghcr.io/discordnova/nova/webhook@sha256:df10d97bb1707aaefca97150ffeae0908981da496c351bb51aa65bdf66eee41b"
+    networks:
+      - internal
+    volumes:
+      - ./config/webhook.yaml:/app/webhook/image_binary.runfiles/nova/config/default.yaml
+    environment:
+      - RUST_LOG=info
+    ports:
+      - 8000:8000
\ No newline at end of file
diff --git a/examples/docker-compose.yml b/examples/docker-compose.yml
new file mode 100644 (file)
index 0000000..d639fcf
--- /dev/null
@@ -0,0 +1,16 @@
+version: "3.3"
+
+services:
+  nats:
+    image: "nats"
+    expose:
+      - "4222"
+    ports:
+      - "8222:8222"
+      - "4222:4222"
+    hostname: nats
+    networks:
+      - internal
+
+networks:
+  internal: {}
\ No newline at end of file
index c0a9f5d26c1899bc6c853cec936243abf5dbd76f..f63e1cadf45cbb8f63684a3162c02add67378523 100644 (file)
@@ -8,7 +8,7 @@ rust_binary(
     name = "gateway",
     srcs = glob(["src/**/*.rs"]),
     proc_macro_deps = crate_deps(["serde_repr"]),
-    deps = all_crate_deps(),
+    deps = all_crate_deps() + ["//common/rust:common"],
     visibility = ["//visibility:public"],
 )
 
index f73d70a8c1893f041b574112412685f82df2b395..70da62e9333c93e48c86b8a198d46f8ff093ac21 100644 (file)
@@ -17,4 +17,8 @@ async-stream = "0.3.2"
 futures-core = "0.3.17"
 serde_repr = "0.1"
 flate2 = "1.0"
-async-nats = "0.10.1"
\ No newline at end of file
+async-nats = "0.10.1"
+enumflags2 = { version ="0.7.1", features = ["serde"] }
+common = { path = "../common/rust" }
+tokio-scoped = "0.1.0"
+futures = "0.3.17"
\ No newline at end of file
index bd87c7cfe4a832818af6fbd8c3baa3f8bd9316f8..9f1d69e9b39987be2883ed37ee822ad70c14faec 100644 (file)
@@ -30,6 +30,15 @@ alias(
     ],
 )
 
+alias(
+    name = "enumflags2",
+    actual = "@raze__enumflags2__0_7_1//:enumflags2",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
 alias(
     name = "flate2",
     actual = "@raze__flate2__1_0_21//:flate2",
@@ -39,6 +48,15 @@ alias(
     ],
 )
 
+alias(
+    name = "futures",
+    actual = "@raze__futures__0_3_17//:futures",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
 alias(
     name = "futures_core",
     actual = "@raze__futures_core__0_3_17//:futures_core",
@@ -111,6 +129,15 @@ alias(
     ],
 )
 
+alias(
+    name = "tokio_scoped",
+    actual = "@raze__tokio_scoped__0_1_0//:tokio_scoped",
+    tags = [
+        "cargo-raze",
+        "manual",
+    ],
+)
+
 alias(
     name = "tokio_stream",
     actual = "@raze__tokio_stream__0_1_7//:tokio_stream",
diff --git a/gateway/config/default.yaml b/gateway/config/default.yaml
new file mode 100644 (file)
index 0000000..519810c
--- /dev/null
@@ -0,0 +1,13 @@
+monitoring:
+  enabled: false
+gateway:
+  relaying:
+    relay_instances: 0
+  clustering:
+    cluster_size: 1 # The total number of clusters
+    cluster_id: 0 # Current cluster id
+    shard_count: 10 # 10 shards by cluster
+  discord:
+    token: "token"
+    large_threshold: 100
+    intents: 0
\ No newline at end of file
index 5cd13eb8b33abcb0ac95db022d71437a494967cb..8d68158f6e51ea2b4b3d78aecf6abc3e5e59e030 100644 (file)
@@ -4,12 +4,13 @@ use super::{
     state::{Stage, State},
     utils::get_gateway_url,
 };
-use flate2::write::ZlibDecoder;
 use futures_util::{SinkExt, StreamExt};
-use log::{debug, error, info, trace, warn};
+use log::{error, info, trace, warn};
 use std::{str::from_utf8, time::Duration};
 use tokio::{net::TcpStream, select, time::Instant};
 use tokio_tungstenite::{MaybeTlsStream, WebSocketStream, connect_async, tungstenite::{self, Message, handshake::client::Request}};
+use crate::client::structs::ClientConfig;
+use tokio::sync::mpsc;
 
 #[derive(Debug)]
 pub enum CloseReason {
@@ -18,55 +19,35 @@ pub enum CloseReason {
     ErrorEncountered(&'static str),
     ConnexionError(tungstenite::Error),
 }
-
-pub struct Config {
-    pub token: String,
-    pub compress: bool,
-}
-
 pub enum HandleResult {
     Success,
     Error(CloseReason),
 }
 
-/// This struct represents a single connexion to the gateway,
-/// it does not have any retry logic or reconnexion mechanism,
-/// everything is handled in the Shard struct.
-/// The purpose of this struct is to handle the encoding,
-/// compression and other gateway-transport related stuff.
-/// All the messages are send through another struct implementing
-/// the MessageHandler trait.
 pub struct Connexion {
     state: State,
-    config: Config,
-    zlib: ZlibDecoder<Vec<u8>>,
+    config: ClientConfig,
     connexion: Option<WebSocketStream<MaybeTlsStream<TcpStream>>>,
-    nats: Option<async_nats::Connection>,
+    terminate: Option<mpsc::Sender<CloseReason>>,
 }
 
 impl Connexion {
-    /// Creates a new instance of a discord websocket connexion using the options
-    /// this is used internally by the shard struct to initialize a single
-    /// websocket connexion. This instance is not initialized by default.
-    /// a websocket connexion like this can be re-used multiple times
-    /// to allow reconnexion mechanisms.
-    pub async fn new(config: Config) -> Self {
+    pub fn new(config: ClientConfig) -> Self {
         Connexion {
             state: State::default(),
             connexion: None,
             config,
-            zlib: ZlibDecoder::<Vec<u8>>::new(vec![]),
-            nats: None,
+            terminate: None
         }
     }
 
     /// Terminate the connexion and the "start" method related to it.
-    async fn _terminate_websocket(&mut self, message: CloseReason) {
+    async fn _terminate_websocket(&mut self, message: &CloseReason) {
         if let Some(connexion) = &mut self.connexion {
             if let Err(err) = connexion.close(None).await {
                 error!("failed to close socket {}", err);
             } else {
-                info!("closed the socket: {:?}", message)
+                info!("closed the socket: {:?}", message);
             }
         } else {
             warn!("a termination request was sent without a connexion openned")
@@ -82,7 +63,6 @@ impl Connexion {
             // we reset the state before starting the connection
             self.state = State::default();
             let request = Request::builder()
-                .header("User-Agant", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36")
                 .uri(get_gateway_url(false, "json", 9))
                 .body(())
                 .unwrap();
@@ -93,26 +73,34 @@ impl Connexion {
                 return CloseReason::ConnexionError(err);
             }
             self.connexion = Some(connexion_result.unwrap().0);
-            self.nats = Some(async_nats::connect("localhost:4222").await.unwrap());
+
+            let (tx, mut rx) = mpsc::channel::<CloseReason>(1);
+            self.terminate = Some(tx);
+
             // this is the loop that will maintain the whole connexion
             loop {
                 if let Some(connexion) = &mut self.connexion {
                     // if we do not have a hello message received yet, then we do not use the heartbeat interval
                     // and we just wait for messages to arrive
                     if self.state.stage == Stage::Unknown {
-                        let msg = connexion.next().await;
-                        if let HandleResult::Error(reason) = self._handle_message(&msg).await {
-                            return reason;
+                        select! {
+                            msg = connexion.next() => self._handle_message(&msg).await,
+                            Some(reason) = rx.recv() => {
+                                // gateway termination requested
+                                self._terminate_websocket(&reason);
+                                return reason
+                            }
                         }
                     } else {
                         let timer = self.state.interval.as_mut().unwrap().tick();
                         select! {
-                            msg = connexion.next() => {
-                                if let HandleResult::Error(reason) = self._handle_message(&msg).await {
-                                    return reason
-                                }
-                            },
-                            _ = timer => self._do_heartbeat().await
+                            msg = connexion.next() => self._handle_message(&msg).await,
+                            _ = timer => self._do_heartbeat().await,
+                            Some(reason) = rx.recv() => {
+                                // gateway termination requested
+                                self._terminate_websocket(&reason);
+                                return reason
+                            }
                         }
                     }
                 } else {
@@ -125,36 +113,34 @@ impl Connexion {
     async fn _handle_message(
         &mut self,
         data: &Option<Result<Message, tokio_tungstenite::tungstenite::Error>>,
-    ) -> HandleResult {
+    ) {
         if let Some(message) = data {
             match message {
                 Ok(message) => match message {
                     Message::Text(text) => {
                         self._handle_discord_message(&text).await;
-                        HandleResult::Success
                     }
                     Message::Binary(message) => {
                         self._handle_discord_message(from_utf8(message).unwrap())
                             .await;
-                        HandleResult::Success
                     }
-                    Message::Close(_) => {
-                        error!("discord connexion closed");
-                        HandleResult::Error(CloseReason::ConnexionEnded)
+                    Message::Close(code) => {
+                        error!("discord connexion closed: {:?}", code);
+                        self.terminate.as_ref().unwrap().send(CloseReason::ConnexionEnded).await.unwrap();
                     }
 
-                    _ => HandleResult::Error(CloseReason::ErrorEncountered(
+                    _ => self.terminate.as_ref().unwrap().send(CloseReason::ErrorEncountered(
                         "unsupported message type encountered",
-                    )),
+                    )).await.unwrap(),
                 },
-                Err(_error) => HandleResult::Error(CloseReason::ErrorEncountered(
+                Err(_error) => self.terminate.as_ref().unwrap().send(CloseReason::ErrorEncountered(
                     "error while reading a message",
-                )),
+                )).await.unwrap(),
             }
         } else {
-            HandleResult::Error(CloseReason::ErrorEncountered(
+            self.terminate.as_ref().unwrap().send(CloseReason::ErrorEncountered(
                 "error while reading a message",
-            ))
+            )).await.unwrap()
         }
     }
 
@@ -171,18 +157,19 @@ impl Connexion {
             OpCodes::Dispatch => {
                 let t = message.t.unwrap();
                 trace!("dispatch message received: {:?}", t);
-                let topic = format!("nova.gateway.{}", t);
-                if let Err(e) = self.nats.as_ref().unwrap().publish(
-                    &topic,
-                    &serde_json::to_vec(&message.d).unwrap(),
-                ).await {
-                    error!("failed to publish message {}", e);
-                }
             },
-            OpCodes::PresenceUpdate => todo!(),
-            OpCodes::VoiceStateUpdate => todo!(),
-            OpCodes::Reconnect => todo!(),
-            OpCodes::InvalidSession => todo!(),
+            OpCodes::PresenceUpdate => {
+                println!("presence update message received: {:?}", message.d);
+            },
+            OpCodes::VoiceStateUpdate => {
+                println!("voice update");
+            }
+            OpCodes::Reconnect => {
+                println!("reconnect {:?}", message.d);
+            },
+            OpCodes::InvalidSession => {
+                println!("invalid session: {:?}", message.d);
+            },
             OpCodes::Hello => {
                 if let Ok(hello) = serde_json::from_value::<Hello>(message.d) {
                     info!("server sent hello {:?}", hello);
@@ -192,32 +179,24 @@ impl Connexion {
                         Duration::from_millis(hello.heartbeat_interval),
                     ));
                     self.state.stage = Stage::Initialized;
+                    let mut shard: Option<[i64; 2]> = None;
+                    if let Some(sharding) = &self.config.shard {
+                        shard = Some([sharding.current_shard.clone(), sharding.total_shards.clone()]);
+                        info!("shard information: {:?}", shard);
+                    }
                     self._send(&MessageBase {
                         t: None,
                         op: OpCodes::Identify,
                         s: None,
                         d: serde_json::to_value(&Identify{
                             token: self.config.token.clone(),
-                            intents: 1 << 0 |
-                                1 << 1 |
-                                1 << 2 |
-                                1 << 3 |
-                                1 << 4 |
-                                1 << 5 |
-                                1 << 6 |
-                                1 << 7 |
-                                1 << 8 |
-                                1 << 9 | 
-                                1 << 10 |
-                                1 << 11 |
-                                1 << 12 |
-                                1 << 13 |
-                                1 << 14,
+                            intents: self.config.intents.clone().bits(),
                             properties: IdentifyProprerties {
                                 os: "Linux".into(),
                                 browser: "Nova".into(),
                                 device: "Linux".into(),
-                            }
+                            },
+                            shard: shard,
                         }).unwrap(),
                     }).await;
                     // do login
@@ -237,10 +216,9 @@ impl Connexion {
 
     async fn _do_heartbeat(&mut self) {
         if !self.state.last_heartbeat_acknowledged {
-            self._terminate_websocket(CloseReason::ErrorEncountered(
+            self.terminate.as_ref().unwrap().send(CloseReason::ErrorEncountered(
                 "the server did not acknowledged the last heartbeat",
-            ))
-            .await;
+            )).await.unwrap();
             return;
         }
         self.state.last_heartbeat_acknowledged = false;
@@ -261,16 +239,16 @@ impl Connexion {
             if let Ok(json) = serde_json::to_vec(data) {
                 if let Err(error) = connexion.send(Message::Binary(json)).await {
                     error!("failed to write to socket: {}", error);
-                    self._terminate_websocket(CloseReason::ErrorEncountered(
+                    self.terminate.as_ref().unwrap().send(CloseReason::ErrorEncountered(
                         "failed to write to the socket",
                     ))
-                    .await;
+                    .await.unwrap();
                 }
             } else {
-                self._terminate_websocket(CloseReason::ErrorEncountered(
+                self.terminate.as_ref().unwrap().send(CloseReason::ErrorEncountered(
                     "failed to serialize the message",
                 ))
-                .await;
+                .await.unwrap();
             }
         }
     }
diff --git a/gateway/src/client/error.rs b/gateway/src/client/error.rs
deleted file mode 100644 (file)
index bac6894..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#[derive(Debug)]
-struct MyError(String);
-
-impl fmt::Display for MyError {
-    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-        write!(f, "There is an error: {}", self.0)
-    }
-}
-
-impl Error for NovaError {}
-
-pub fn run() -> Result<(), Box<dyn Error>> {
-    let condition = true;
-
-    if condition {
-        return Err(Box::new(MyError("Oops".into())));
-    }
-
-    Ok(())
-}
\ No newline at end of file
index 179c40dd0ffece97f23d5259b7e49a87d1050eca..3ffd4890f9e7f5120db4b371d87ce6602fbaf068 100644 (file)
@@ -1,6 +1,5 @@
-pub mod connexion;
 mod utils;
 mod state;
-mod shard;
 pub mod payloads;
-pub mod traits;
\ No newline at end of file
+pub mod connexion;
+pub mod structs;
\ No newline at end of file
index cf519df5ea8f2fab55bebb6eca6b161f3e24561a..0fec3dcc6642b2d6b1b32ae5c963ef5ff6695244 100644 (file)
@@ -22,6 +22,7 @@ pub struct IdentifyProprerties {
 #[derive(Debug, Serialize, Deserialize)]
 pub struct Identify {
     pub token: String,
-    pub intents: i64,
+    pub intents: u16,
     pub properties: IdentifyProprerties,
+    pub shard: Option<[i64; 2]>,
 }
\ No newline at end of file
diff --git a/gateway/src/client/shard.rs b/gateway/src/client/shard.rs
deleted file mode 100644 (file)
index fb1ceda..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-struct Shard {
-
-}
\ No newline at end of file
diff --git a/gateway/src/client/structs.rs b/gateway/src/client/structs.rs
new file mode 100644 (file)
index 0000000..1f186c6
--- /dev/null
@@ -0,0 +1,35 @@
+use enumflags2::{bitflags, BitFlags};
+
+#[bitflags]
+#[repr(u16)]
+#[derive(Clone, Copy, Debug)]
+pub enum Intents {
+    Guilds = 1 << 0,
+    GuildMembers = 1 << 1,
+    GuildBans = 1 << 2,
+    GuildEmojisAndStickers = 1 << 3,
+    GuildIntegrations = 1 << 4,
+    GuildWebhoks = 1 << 5,
+    GuildInvites = 1 << 6,
+    GuildVoiceStates = 1 << 7,
+    GuildPresences = 1 << 8,
+    GuildMessages = 1 << 9,
+    GuildMessagesReactions = 1 << 10,
+    GuildMessageTyping = 1 << 11,
+    DirectMessages = 1 << 12,
+    DirectMessagesReactions = 1 << 13,
+    DirectMessageTyping = 1 << 14,
+}
+
+pub struct Sharding {
+    pub total_shards: i64,
+    pub current_shard: i64
+}
+
+/// Config for the client connection.
+pub struct ClientConfig {
+    pub token: String,
+    pub large_threshold: Option<u64>,
+    pub shard: Option<Sharding>,
+    pub intents: BitFlags<Intents>
+}
\ No newline at end of file
diff --git a/gateway/src/client/traits/message_handler.rs b/gateway/src/client/traits/message_handler.rs
deleted file mode 100644 (file)
index a5bfd20..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-/// This trait is used by the Connexion<H> struct
-/// It implements a basic interface for handling events.
-pub trait MessageHandler {}
\ No newline at end of file
diff --git a/gateway/src/client/traits/mod.rs b/gateway/src/client/traits/mod.rs
deleted file mode 100644 (file)
index 98d0c32..0000000
+++ /dev/null
@@ -1 +0,0 @@
-pub mod message_handler;
\ No newline at end of file
index 023b6b9a13cbf624d6c8ebe9d0cf3ccc30f3d0e9..141740e06ce0d513eed7f5cab39b86e24197fe5f 100644 (file)
@@ -1,3 +1,5 @@
+
+/// Formats a url of connection to the gateway
 pub fn get_gateway_url (compress: bool, encoding: &str, v: i16) -> String {
     return format!(
         "wss://gateway.discord.gg/?v={}&encoding={}&compress={}",
diff --git a/gateway/src/cluster_manager.rs b/gateway/src/cluster_manager.rs
new file mode 100644 (file)
index 0000000..8900979
--- /dev/null
@@ -0,0 +1,46 @@
+use crate::client::connexion::Connexion;
+use crate::client::structs::*;
+use crate::config::Config;
+use log::info;
+use futures::future::select_all;
+
+pub struct ClusterManager {
+    gateway_connexions: Vec<Connexion>,
+    config: Config,
+}
+
+impl ClusterManager {
+
+    pub fn new(config: crate::config::Config) -> ClusterManager {
+        // create the memory for containing all the gateways
+        let gateways: Vec<Connexion> = Vec::with_capacity(config.clustering.shard_count as usize);
+
+        ClusterManager {
+            gateway_connexions: gateways,
+            config,
+        }
+    }
+
+    pub async fn start(mut self) {
+        info!("Starting cluster manager...");
+        info!("I am cluster {}/{} managing {} discord shards", self.config.clustering.cluster_id+1, self.config.clustering.cluster_size, self.config.clustering.shard_count);
+
+        for i in 0..self.config.clustering.shard_count {
+            let shard_id = self.config.clustering.cluster_id * self.config.clustering.cluster_size + i;
+            info!("Starting shard {} for cluster {} for discord shard {}", i, self.config.clustering.cluster_id, shard_id);
+            self.gateway_connexions.push(Connexion::new(ClientConfig{
+                token: self.config.discord.token.clone(),
+                intents: self.config.discord.intents,
+                large_threshold: self.config.discord.large_threshold,
+                shard: Some(Sharding {
+                    total_shards: self.config.clustering.cluster_size * self.config.clustering.shard_count,
+                    current_shard: shard_id,
+                }),
+            }));
+        }
+        let tasks = self.gateway_connexions.into_iter().map(|item| Box::pin(item.start()));
+        select_all(tasks).await;
+
+        info!("one shard crashed, we need a restart");
+    }
+}
\ No newline at end of file
diff --git a/gateway/src/config.rs b/gateway/src/config.rs
new file mode 100644 (file)
index 0000000..6dc2c28
--- /dev/null
@@ -0,0 +1,33 @@
+use enumflags2::BitFlags;
+use crate::client::structs::Intents;
+use serde::Deserialize;
+
+/// Config for the client connection.
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct ClusterClientConfig {
+    pub token: String,
+    pub large_threshold: Option<u64>,
+    pub intents: BitFlags<Intents>
+}
+
+/// Configuration for the cluster manager
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct ClusterClientSharding {
+    pub cluster_size: i64,
+    pub cluster_id: i64,
+    pub shard_count: i64
+}
+
+/// Configuration for the output of the cluster
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct ClusterRelay {
+    pub relay_instances: i64
+}
+
+/// Configuration for the gateway component
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct Config {
+    pub discord: ClusterClientConfig,
+    pub clustering: ClusterClientSharding,
+    pub relaying: ClusterRelay,
+}
index 709e26b4e64d2ee230811a423294ce8b9aca369f..4e4836c36b9da158ea4d27d8a5d93150d8de5eeb 100644 (file)
@@ -1,24 +1,12 @@
-use std::env;
-
-use client::{connexion::Config, traits::message_handler::MessageHandler};
-extern crate serde_json;
-extern crate serde_repr;
-
 mod client;
+mod config;
+mod cluster_manager;
 
-struct Handler {}
-impl MessageHandler for Handler {}
+use common::config::Settings;
 
 #[tokio::main]
 async fn main() {    
-    pretty_env_logger::init();
-    for _ in 0..1 {
-        tokio::spawn(async move {
-            let con = client::connexion::Connexion::new(Config {
-                token: env::var("DISCORD_TOKEN").expect("A valid token is required").into(),
-                compress: false,
-            }).await;
-            println!("{:?}", con.start().await);
-        }).await.unwrap();
-    }
-}
\ No newline at end of file
+    let settings: Settings<config::Config> = Settings::new("gateway").unwrap();
+    let manager = cluster_manager::ClusterManager::new(settings.config);
+    manager.start().await;
+}
index 65ce039f82454d368e487fa6546eac0d15b44d85..f29da5f4f552c32389d789240f0757a1b237d754 100644 (file)
@@ -7,20 +7,18 @@ test_suite(name = "tests")
 rust_binary(
     name = "webhook",
     srcs = glob(["src/**"]),
-    deps = all_crate_deps(),
+    deps = all_crate_deps() + ["//common/rust:common"],
     visibility = ["//visibility:public"],
 )
 
 rust_test(
     name = "webhook_test",
-    crate = ":webhook",
-    deps = all_crate_deps(),
+    crate = ":webhook"
 )
 
 rust_image(
     name = "image",
-    srcs = glob(["src/**"]),
-    deps = all_crate_deps(),
+    binary = ":webhook",
     visibility = ["//visibility:public"],
     base = "//bazel:base",
 )
index 2df8dff8a9ae2e0c4253780c4e02f9e82edd0ed2..fb3da5101e209dee2e1ad15cda8ebed21918c548 100644 (file)
@@ -13,6 +13,7 @@ libsodium-sys = "0.2.7"
 hex = "0.4.3"
 pretty_env_logger = "0.4"
 serde_json = { version = "1.0" }
+common = { path = "../common/rust" }
 
 [[bin]]
 name = "webhook"
index 9324008079d8fa3a08625560068070c3df9277cf..15d40a4c1f030b264e42aaeaae2e113dff907bae 100644 (file)
@@ -1,3 +1,16 @@
-server:\r
-  address: "0.0.0.0"\r
-  port: 8000
\ No newline at end of file
+monitoring:\r
+  enabled: true\r
+  address: 0.0.0.0\r
+  port: 8001\r
+\r
+\r
+webhook:\r
+  server:\r
+    address: 0.0.0.0\r
+    port: 8000\r
+  discord:\r
+    client_id: 738817757650485300\r
+    public_key: "475bed67e20fb1e2d9b9007607f08d7b25b5a0aa936ef2d4ddaf7d592c993860"\r
+\r
+gateway:\r
+  truc_machin: "aaaaaaaa"\r
diff --git a/webhook/src/config.rs b/webhook/src/config.rs
new file mode 100644 (file)
index 0000000..eead97b
--- /dev/null
@@ -0,0 +1,19 @@
+use serde::Deserialize;
+
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct ServerSettings {
+    pub port: u16,
+    pub address: String,
+}
+
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct Discord {
+    pub public_key: String,
+    pub client_id: u32,
+}
+
+#[derive(Debug, Deserialize, Clone, Default)]
+pub struct Config {
+    pub server: ServerSettings,
+    pub discord: Discord,
+}
\ No newline at end of file
index d08ee1f781313d31d67b0b81d09dabda0e51b985..b60889e1581a30a4d7de1fd7f0220ee3533619f0 100644 (file)
@@ -10,8 +10,7 @@ use std::pin::Pin;
 use std::str::from_utf8;\r
 use std::task::{Context, Poll};\r
 use serde::{Deserialize, Serialize};\r
-\r
-use super::utils::Settings;\r
+use crate::config::Config;\r
 \r
 pub fn validate_signature(b64_public_key: &str, data: &Vec<u8>, b64_signature: &str) -> bool {\r
     // First, we need to check if the signature & private key is valid base64.\r
@@ -56,7 +55,7 @@ fn get_signature(headers: &HeaderMap) -> Option<(&str, &str)> {
 }\r
 \r
 pub struct HandlerService {\r
-    pub config: Settings,\r
+    pub config: Config,\r
 }\r
 \r
 #[derive(Debug, Serialize, Deserialize)]\r
@@ -116,7 +115,7 @@ impl Service<Request<Body>> for HandlerService {
 }\r
 \r
 pub struct MakeSvc {\r
-    pub settings: Settings,\r
+    pub settings: Config,\r
 }\r
 \r
 impl<T> Service<T> for MakeSvc {\r
index 2daaa4d124127ae536c2dc96d9bbd10e38201823..312537380dcd9ce0370456282eff664c9ce3abd7 100644 (file)
@@ -1,21 +1,18 @@
 use std::net::ToSocketAddrs;\r
+mod handle;\r
+mod config;\r
 \r
 use hyper::Server;\r
 use log::info;\r
-\r
-extern crate log;\r
-pub mod handle;\r
-pub mod utils;\r
-\r
 use handle::MakeSvc;\r
-use utils::{setup_program, Settings};\r
+use common::config::Settings;\r
+use crate::config::Config;\r
 \r
 #[tokio::main]\r
 async fn main() {\r
-    setup_program("webhook");\r
-    let config = Settings::new().unwrap();\r
+    let settings: Settings<Config> = Settings::new("webhook").unwrap();\r
 \r
-    let addr = format!("{}:{}", config.server.address, config.server.port)\r
+    let addr = format!("{}:{}", settings.config.server.address, settings.config.server.port)\r
         .to_socket_addrs()\r
         .unwrap()\r
         .next()\r
@@ -23,10 +20,10 @@ async fn main() {
 \r
     info!(\r
         "Starting server on {}:{}",\r
-        config.server.address, config.server.port\r
+        settings.config.server.address, settings.config.server.port\r
     );\r
     let server = Server::bind(&addr).serve(MakeSvc {\r
-        settings: config.clone(),\r
+        settings: settings.config.clone(),\r
     });\r
 \r
     if let Err(e) = server.await {\r
diff --git a/webhook/src/utils.rs b/webhook/src/utils.rs
deleted file mode 100644 (file)
index 442b5ba..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-use std::env;\r
-\r
-use config::{Config, ConfigError, Environment, File};\r
-use log::info;\r
-use serde::Deserialize;\r
-\r
-/// Executes the required configuration steps for the program,\r
-/// excluding build information, Sentry and logging.\r
-pub fn setup_program(_name: &str) {\r
-    pretty_env_logger::init();\r
-}\r
-\r
-#[derive(Debug, Deserialize, Clone)]\r
-pub struct Server {\r
-    pub port: u16,\r
-    pub address: String,\r
-}\r
-\r
-#[derive(Debug, Deserialize, Clone)]\r
-pub struct Discord {\r
-    pub public_key: String,\r
-    pub client_id: u32,\r
-}\r
-\r
-#[derive(Debug, Deserialize, Clone)]\r
-pub struct Settings {\r
-    pub server: Server,\r
-    pub discord: Discord,\r
-}\r
-\r
-impl Settings {\r
-    pub fn new() -> Result<Self, ConfigError> {\r
-        let mut default = Config::default();\r
-        default.merge(File::with_name("config/default"))?;\r
-        let mode = env::var("ENV").unwrap_or_else(|_| "development".into());\r
-        info!("Configuration Environment: {}", mode);\r
-\r
-        default.merge(File::with_name(&format!("config/{}", mode)).required(false))?;\r
-        default.merge(File::with_name("config/local").required(false))?;\r
-        default.merge(Environment::with_prefix("NOVA_GATEWAY"))?;\r
-\r
-        println!("Debug mode: {:?}", default.get_bool("debug"));\r
-\r
-        let config: Self = default.try_into().unwrap();\r
-\r
-        Ok(config)\r
-    }\r
-}\r