├── .dockerignore ├── .envrc ├── .gitignore ├── shell.nix ├── nix ├── rust.nix ├── sources.json └── sources.nix ├── client ├── Cargo.toml └── src │ └── main.rs ├── default.nix ├── helloworld.dhall ├── Dockerfile ├── Cargo.toml ├── helloworld.nix ├── src ├── TODO.org └── main.rs ├── LICENSE └── Cargo.lock /.dockerignore: -------------------------------------------------------------------------------- 1 | target 2 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | eval "$(lorri direnv)" 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | result* 3 | -------------------------------------------------------------------------------- /shell.nix: -------------------------------------------------------------------------------- 1 | let 2 | sources = import ./nix/sources.nix; 3 | rust = import ./nix/rust.nix { inherit sources; }; 4 | pkgs = import sources.nixpkgs { }; 5 | in 6 | pkgs.mkShell { 7 | buildInputs = with pkgs; [ 8 | rust 9 | openssl 10 | pkg-config 11 | ]; 12 | } 13 | -------------------------------------------------------------------------------- /nix/rust.nix: -------------------------------------------------------------------------------- 1 | { sources ? import ./sources.nix }: 2 | 3 | let 4 | pkgs = 5 | import sources.nixpkgs { overlays = [ (import sources.nixpkgs-mozilla) ]; }; 6 | channel = "nightly"; 7 | date = "2020-03-08"; 8 | targets = [ ]; 9 | chan = pkgs.rustChannelOfTargets channel date targets; 10 | in chan 11 | -------------------------------------------------------------------------------- /client/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "helloworld-client" 3 | version = "0.1.0" 4 | authors = ["Christine Dodrill "] 5 | edition = "2018" 6 | 7 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 8 | 9 | [dependencies] 10 | log = "0.4" 11 | reqwest = { version = "0.10", features = ["blocking", "json"] } 12 | serde_json = "1.0" 13 | serde = { version = "1.0", features = ["derive"] } 14 | env_logger = "0.7" 15 | envy = "0.4" 16 | -------------------------------------------------------------------------------- /default.nix: -------------------------------------------------------------------------------- 1 | { system ? builtins.currentSystem }: 2 | 3 | let 4 | sources = import ./nix/sources.nix; 5 | pkgs = import sources.nixpkgs { }; 6 | helloworld = import ./helloworld.nix { inherit sources pkgs; }; 7 | 8 | name = "xena/helloworld"; 9 | tag = "latest"; 10 | 11 | in pkgs.dockerTools.buildLayeredImage { 12 | inherit name tag; 13 | contents = [ helloworld ]; 14 | 15 | config = { 16 | Cmd = [ "/bin/helloworld" ]; 17 | Env = [ "ROCKET_PORT=5000" ]; 18 | WorkingDir = "/"; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /helloworld.dhall: -------------------------------------------------------------------------------- 1 | let kms = 2 | https://xena.greedo.xeserv.us/pkg/dhall/kubermemes/k8s/package.dhall sha256:e47e95aba6a08f8ca3e38fbabc436566d6558a05a9b4ac149e8e712c8583b8f0 3 | 4 | let tag = env:GITHUB_SHA as Text ? "latest" 5 | 6 | let image = "xena/helloworld:${tag}" 7 | 8 | in kms.app.make 9 | kms.app.Config::{ 10 | , name = "helloworld" 11 | , appPort = 8000 12 | , image = image 13 | , replicas = 1 14 | , domain = "helloworld.cetacean.club" 15 | , leIssuer = "prod" 16 | } 17 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | # Use the minimal alpine image 2 | FROM rustlang/rust:nightly-slim AS build 3 | 4 | # Where we will build the program 5 | WORKDIR /src/helloworld 6 | 7 | # Copy source code into the container 8 | COPY . . 9 | 10 | # Build the program in release mode 11 | RUN cargo build --release 12 | 13 | # Create the runtime image 14 | FROM ubuntu:18.04 15 | 16 | # Copy the compiled service binary 17 | COPY --from=build /src/helloworld/target/release/helloworld /usr/local/bin/helloworld 18 | 19 | # Start the helloworld service on container boot 20 | CMD ["usr/local/bin/helloworld"] -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "helloworld" 3 | version = "0.1.1" 4 | authors = ["Christine Dodrill "] 5 | edition = "2018" 6 | 7 | [dependencies] 8 | rocket = "0.4.4" 9 | gethostname = "0.2.1" 10 | serde_json = "1.0" 11 | serde = { version = "1.0", features = ["derive"] } 12 | psutil = "3.0.1" 13 | rocket_okapi = "^0.3" 14 | rocket_prometheus = "^0.4" 15 | schemars = "0.6" 16 | okapi = { version = "0.3", features = ["derive_json_schema"] } 17 | 18 | [dependencies.rocket_contrib] 19 | version = "0.4.4" 20 | default-features = false 21 | features = ["json"] 22 | 23 | [workspace] 24 | members = [ 25 | "./client" 26 | ] 27 | -------------------------------------------------------------------------------- /helloworld.nix: -------------------------------------------------------------------------------- 1 | # import niv sources and the pinned nixpkgs 2 | { sources ? import ./nix/sources.nix, pkgs ? import sources.nixpkgs { } }: 3 | let 4 | # import rust compiler 5 | rust = import ./nix/rust.nix { inherit sources; }; 6 | 7 | # configure naersk to use our pinned rust compiler 8 | naersk = pkgs.callPackage sources.naersk { 9 | rustc = rust; 10 | cargo = rust; 11 | }; 12 | 13 | # tell nix-build to ignore the `target` directory 14 | src = builtins.filterSource 15 | (path: type: type != "directory" || builtins.baseNameOf path != "target") 16 | ./.; 17 | in naersk.buildPackage { 18 | inherit src; 19 | remapPathPrefix = 20 | true; # remove nix store references for a smaller output package 21 | } 22 | -------------------------------------------------------------------------------- /src/TODO.org: -------------------------------------------------------------------------------- 1 | #+TITLE: TODO 2 | 3 | * API 4 | ** DONE Add JSON endpoint with rocket_contrib json 5 | CLOSED: [2020-03-15 Sun 15:04] 6 | :LOGBOOK: 7 | CLOCK: [2020-03-15 Sun 14:39]--[2020-03-15 Sun 15:04] => 0:25 8 | :END: 9 | ** DONE OpenAPI spec generation 10 | CLOSED: [2020-03-15 Sun 15:13] 11 | :LOGBOOK: 12 | CLOCK: [2020-03-15 Sun 15:04]--[2020-03-15 Sun 15:13] => 0:09 13 | :END: 14 | ** DONE API consumption 15 | CLOSED: [2020-03-15 Sun 15:29] 16 | :LOGBOOK: 17 | CLOCK: [2020-03-15 Sun 15:13]--[2020-03-15 Sun 15:29] => 0:16 18 | :END: 19 | * DONE proper howistart article for Rust 20 | CLOSED: [2020-03-15 Sun 17:06] 21 | :LOGBOOK: 22 | CLOCK: [2020-03-15 Sun 15:32]--[2020-03-15 Sun 17:06] => 1:34 23 | :END: 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2020 Christine Dodrill 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /client/src/main.rs: -------------------------------------------------------------------------------- 1 | use serde::Deserialize; 2 | 3 | #[derive(Deserialize, Debug)] 4 | struct Config { 5 | helloworld_url: String, 6 | } 7 | 8 | // Host information structure returned at /hostinfo 9 | #[derive(Deserialize, Debug)] 10 | struct HostInfo { 11 | hostname: String, 12 | pid: u32, 13 | uptime: u64, 14 | } 15 | 16 | // Name your user agent after your app 17 | pub static APP_USER_AGENT: &str = concat!( 18 | env!("CARGO_PKG_NAME"), 19 | "/", 20 | env!("CARGO_PKG_VERSION"), 21 | " (+https://github.com/Xe/helloworld)", 22 | ); 23 | 24 | fn main() -> reqwest::Result<()> { 25 | let cfg: Config; 26 | 27 | match envy::from_env::() { 28 | Ok(my_cfg) => cfg = my_cfg, 29 | Err(why) => panic!("{:?}", why), 30 | } 31 | 32 | println!("{:?}", cfg); 33 | 34 | let client = reqwest::blocking::Client::builder() 35 | .user_agent(APP_USER_AGENT) 36 | .build()?; 37 | 38 | let msg = client.get(&cfg.helloworld_url).send()?.text()?; 39 | println!("{}", msg); 40 | 41 | let hostinfo: HostInfo = client 42 | .get(&format!("{}/{}", &cfg.helloworld_url, "hostinfo")) 43 | .send()? 44 | .json()?; 45 | 46 | println!("{:?}", hostinfo); 47 | 48 | Ok(()) 49 | } 50 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #![feature(proc_macro_hygiene, decl_macro)] // language features needed by Rocket 2 | 3 | // Import the rocket macros 4 | #[macro_use] 5 | extern crate rocket; 6 | 7 | // Import OpenAPI macros 8 | #[macro_use] 9 | extern crate rocket_okapi; 10 | 11 | use rocket_contrib::json::Json; 12 | use rocket_okapi::swagger_ui::{make_swagger_ui, SwaggerUIConfig}; 13 | use rocket_okapi::{JsonSchema, OpenApiError, Result}; 14 | use serde::*; 15 | 16 | /// Host information structure returned at /hostinfo 17 | #[derive(Serialize, JsonSchema, Debug)] 18 | struct HostInfo { 19 | hostname: String, 20 | pid: u32, 21 | uptime: u64, 22 | } 23 | 24 | /// Create route / that returns "Hello, world!" 25 | #[openapi] 26 | #[get("/")] 27 | fn index() -> &'static str { 28 | "Hello, world!" 29 | } 30 | 31 | /// Create route /hostinfo that returns information about the host serving 32 | /// this page. 33 | #[openapi] 34 | #[get("/hostinfo")] 35 | fn hostinfo() -> Result> { 36 | match gethostname::gethostname().into_string() { 37 | Ok(hostname) => Ok(Json(HostInfo { 38 | hostname: hostname, 39 | pid: std::process::id(), 40 | uptime: psutil::host::uptime().unwrap().as_secs(), 41 | })), 42 | Err(_) => Err(OpenApiError::new(format!( 43 | "hostname does not parse as UTF-8" 44 | ))), 45 | } 46 | } 47 | 48 | fn main() { 49 | rocket::ignite() 50 | .mount("/", routes_with_openapi![index, hostinfo]) 51 | .mount( 52 | "/swagger-ui/", 53 | make_swagger_ui(&SwaggerUIConfig { 54 | url: Some("../openapi.json".to_owned()), 55 | urls: None, 56 | }), 57 | ) 58 | .launch(); 59 | } 60 | 61 | #[cfg(test)] 62 | mod tests { 63 | use super::*; 64 | use rocket::http::Status; 65 | use rocket::local::*; 66 | 67 | #[test] 68 | fn test_index() { 69 | let rkt = rocket::ignite().mount("/", routes![index]); 70 | let client = Client::new(rkt).expect("valid rocket"); 71 | let mut response = client.get("/").dispatch(); 72 | assert_eq!(response.status(), Status::Ok); 73 | assert_eq!(response.body_string(), Some("Hello, world!".into())); 74 | } 75 | 76 | #[test] 77 | fn test_hostinfo() { 78 | let rkt = rocket::ignite().mount("/", routes![hostinfo]); 79 | let client = Client::new(rkt).expect("valid rocket"); 80 | let response = client.get("/hostinfo").dispatch(); 81 | assert_eq!(response.status(), Status::Ok); 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /nix/sources.json: -------------------------------------------------------------------------------- 1 | { 2 | "naersk": { 3 | "branch": "master", 4 | "description": "Build rust crates in Nix. No configuration, no code generation, no IFD. Sandbox friendly.", 5 | "homepage": "", 6 | "owner": "nmattia", 7 | "repo": "naersk", 8 | "rev": "ee15d1214a8fb58967a24d629062e4ccdd9a925a", 9 | "sha256": "1x5yjbizwvsqrwvfjaljd6wsfmd3ijvw2zgk89545nipqi5ibx7b", 10 | "type": "tarball", 11 | "url": "https://github.com/nmattia/naersk/archive/ee15d1214a8fb58967a24d629062e4ccdd9a925a.tar.gz", 12 | "url_template": "https://github.com///archive/.tar.gz" 13 | }, 14 | "niv": { 15 | "branch": "master", 16 | "description": "Easy dependency management for Nix projects", 17 | "homepage": "https://github.com/nmattia/niv", 18 | "owner": "nmattia", 19 | "repo": "niv", 20 | "rev": "98c74a80934123cb4c3bf3314567f67311eb711a", 21 | "sha256": "1w8n54hapd4x9f1am33icvngkqns7m3hl9yair38yqq08ffwg0kn", 22 | "type": "tarball", 23 | "url": "https://github.com/nmattia/niv/archive/98c74a80934123cb4c3bf3314567f67311eb711a.tar.gz", 24 | "url_template": "https://github.com///archive/.tar.gz" 25 | }, 26 | "nixpkgs": { 27 | "branch": "nixpkgs-unstable", 28 | "description": "A read-only mirror of NixOS/nixpkgs tracking the released channels. Send issues and PRs to", 29 | "homepage": "https://github.com/NixOS/nixpkgs", 30 | "owner": "NixOS", 31 | "repo": "nixpkgs-channels", 32 | "rev": "6b6f9d769a5086df38a06b680104d0c5fd1a8e0e", 33 | "sha256": "1pc6ypxas76i2l2dhr58bml2f0hmgz8py0d8zylwivhs6zg9fcgs", 34 | "type": "tarball", 35 | "url": "https://github.com/NixOS/nixpkgs-channels/archive/6b6f9d769a5086df38a06b680104d0c5fd1a8e0e.tar.gz", 36 | "url_template": "https://github.com///archive/.tar.gz" 37 | }, 38 | "nixpkgs-mozilla": { 39 | "branch": "master", 40 | "description": "mozilla related nixpkgs (extends nixos/nixpkgs repo)", 41 | "homepage": null, 42 | "owner": "mozilla", 43 | "repo": "nixpkgs-mozilla", 44 | "rev": "e912ed483e980dfb4666ae0ed17845c4220e5e7c", 45 | "sha256": "08fvzb8w80bkkabc1iyhzd15f4sm7ra10jn32kfch5klgl0gj3j3", 46 | "type": "tarball", 47 | "url": "https://github.com/mozilla/nixpkgs-mozilla/archive/e912ed483e980dfb4666ae0ed17845c4220e5e7c.tar.gz", 48 | "url_template": "https://github.com///archive/.tar.gz" 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /nix/sources.nix: -------------------------------------------------------------------------------- 1 | # This file has been generated by Niv. 2 | 3 | let 4 | 5 | # 6 | # The fetchers. fetch_ fetches specs of type . 7 | # 8 | 9 | fetch_file = pkgs: spec: 10 | if spec.builtin or true then 11 | builtins_fetchurl { inherit (spec) url sha256; } 12 | else 13 | pkgs.fetchurl { inherit (spec) url sha256; }; 14 | 15 | fetch_tarball = pkgs: spec: 16 | if spec.builtin or true then 17 | builtins_fetchTarball { inherit (spec) url sha256; } 18 | else 19 | pkgs.fetchzip { inherit (spec) url sha256; }; 20 | 21 | fetch_git = spec: 22 | builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; }; 23 | 24 | fetch_builtin-tarball = spec: 25 | builtins.trace 26 | '' 27 | WARNING: 28 | The niv type "builtin-tarball" will soon be deprecated. You should 29 | instead use `builtin = true`. 30 | 31 | $ niv modify -a type=tarball -a builtin=true 32 | '' 33 | builtins_fetchTarball { inherit (spec) url sha256; }; 34 | 35 | fetch_builtin-url = spec: 36 | builtins.trace 37 | '' 38 | WARNING: 39 | The niv type "builtin-url" will soon be deprecated. You should 40 | instead use `builtin = true`. 41 | 42 | $ niv modify -a type=file -a builtin=true 43 | '' 44 | (builtins_fetchurl { inherit (spec) url sha256; }); 45 | 46 | # 47 | # Various helpers 48 | # 49 | 50 | # The set of packages used when specs are fetched using non-builtins. 51 | mkPkgs = sources: 52 | let 53 | sourcesNixpkgs = 54 | import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) {}; 55 | hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; 56 | hasThisAsNixpkgsPath = == ./.; 57 | in 58 | if builtins.hasAttr "nixpkgs" sources 59 | then sourcesNixpkgs 60 | else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then 61 | import {} 62 | else 63 | abort 64 | '' 65 | Please specify either (through -I or NIX_PATH=nixpkgs=...) or 66 | add a package called "nixpkgs" to your sources.json. 67 | ''; 68 | 69 | # The actual fetching function. 70 | fetch = pkgs: name: spec: 71 | 72 | if ! builtins.hasAttr "type" spec then 73 | abort "ERROR: niv spec ${name} does not have a 'type' attribute" 74 | else if spec.type == "file" then fetch_file pkgs spec 75 | else if spec.type == "tarball" then fetch_tarball pkgs spec 76 | else if spec.type == "git" then fetch_git spec 77 | else if spec.type == "builtin-tarball" then fetch_builtin-tarball spec 78 | else if spec.type == "builtin-url" then fetch_builtin-url spec 79 | else 80 | abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; 81 | 82 | # Ports of functions for older nix versions 83 | 84 | # a Nix version of mapAttrs if the built-in doesn't exist 85 | mapAttrs = builtins.mapAttrs or ( 86 | f: set: with builtins; 87 | listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) 88 | ); 89 | 90 | # fetchTarball version that is compatible between all the versions of Nix 91 | builtins_fetchTarball = { url, sha256 }@attrs: 92 | let 93 | inherit (builtins) lessThan nixVersion fetchTarball; 94 | in 95 | if lessThan nixVersion "1.12" then 96 | fetchTarball { inherit url; } 97 | else 98 | fetchTarball attrs; 99 | 100 | # fetchurl version that is compatible between all the versions of Nix 101 | builtins_fetchurl = { url, sha256 }@attrs: 102 | let 103 | inherit (builtins) lessThan nixVersion fetchurl; 104 | in 105 | if lessThan nixVersion "1.12" then 106 | fetchurl { inherit url; } 107 | else 108 | fetchurl attrs; 109 | 110 | # Create the final "sources" from the config 111 | mkSources = config: 112 | mapAttrs ( 113 | name: spec: 114 | if builtins.hasAttr "outPath" spec 115 | then abort 116 | "The values in sources.json should not have an 'outPath' attribute" 117 | else 118 | spec // { outPath = fetch config.pkgs name spec; } 119 | ) config.sources; 120 | 121 | # The "config" used by the fetchers 122 | mkConfig = 123 | { sourcesFile ? ./sources.json 124 | , sources ? builtins.fromJSON (builtins.readFile sourcesFile) 125 | , pkgs ? mkPkgs sources 126 | }: rec { 127 | # The sources, i.e. the attribute set of spec name to spec 128 | inherit sources; 129 | 130 | # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers 131 | inherit pkgs; 132 | }; 133 | in 134 | mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } 135 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | [[package]] 4 | name = "aho-corasick" 5 | version = "0.7.10" 6 | source = "registry+https://github.com/rust-lang/crates.io-index" 7 | checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" 8 | dependencies = [ 9 | "memchr", 10 | ] 11 | 12 | [[package]] 13 | name = "atty" 14 | version = "0.2.14" 15 | source = "registry+https://github.com/rust-lang/crates.io-index" 16 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" 17 | dependencies = [ 18 | "hermit-abi", 19 | "libc", 20 | "winapi 0.3.8", 21 | ] 22 | 23 | [[package]] 24 | name = "autocfg" 25 | version = "1.0.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" 28 | 29 | [[package]] 30 | name = "base64" 31 | version = "0.9.3" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" 34 | dependencies = [ 35 | "byteorder", 36 | "safemem", 37 | ] 38 | 39 | [[package]] 40 | name = "base64" 41 | version = "0.10.1" 42 | source = "registry+https://github.com/rust-lang/crates.io-index" 43 | checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" 44 | dependencies = [ 45 | "byteorder", 46 | ] 47 | 48 | [[package]] 49 | name = "base64" 50 | version = "0.11.0" 51 | source = "registry+https://github.com/rust-lang/crates.io-index" 52 | checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" 53 | 54 | [[package]] 55 | name = "bitflags" 56 | version = "1.2.1" 57 | source = "registry+https://github.com/rust-lang/crates.io-index" 58 | checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" 59 | 60 | [[package]] 61 | name = "bumpalo" 62 | version = "3.2.0" 63 | source = "registry+https://github.com/rust-lang/crates.io-index" 64 | checksum = "1f359dc14ff8911330a51ef78022d376f25ed00248912803b58f00cb1c27f742" 65 | 66 | [[package]] 67 | name = "byteorder" 68 | version = "1.3.4" 69 | source = "registry+https://github.com/rust-lang/crates.io-index" 70 | checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" 71 | 72 | [[package]] 73 | name = "bytes" 74 | version = "0.5.4" 75 | source = "registry+https://github.com/rust-lang/crates.io-index" 76 | checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" 77 | 78 | [[package]] 79 | name = "cc" 80 | version = "1.0.50" 81 | source = "registry+https://github.com/rust-lang/crates.io-index" 82 | checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd" 83 | 84 | [[package]] 85 | name = "cfg-if" 86 | version = "0.1.10" 87 | source = "registry+https://github.com/rust-lang/crates.io-index" 88 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" 89 | 90 | [[package]] 91 | name = "cookie" 92 | version = "0.11.2" 93 | source = "registry+https://github.com/rust-lang/crates.io-index" 94 | checksum = "d9fac5e7bdefb6160fb181ee0eaa6f96704b625c70e6d61c465cb35750a4ea12" 95 | dependencies = [ 96 | "base64 0.9.3", 97 | "ring", 98 | "time", 99 | "url 1.7.2", 100 | ] 101 | 102 | [[package]] 103 | name = "core-foundation" 104 | version = "0.7.0" 105 | source = "registry+https://github.com/rust-lang/crates.io-index" 106 | checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" 107 | dependencies = [ 108 | "core-foundation-sys", 109 | "libc", 110 | ] 111 | 112 | [[package]] 113 | name = "core-foundation-sys" 114 | version = "0.7.0" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" 117 | 118 | [[package]] 119 | name = "darling" 120 | version = "0.10.2" 121 | source = "registry+https://github.com/rust-lang/crates.io-index" 122 | checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" 123 | dependencies = [ 124 | "darling_core", 125 | "darling_macro", 126 | ] 127 | 128 | [[package]] 129 | name = "darling_core" 130 | version = "0.10.2" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" 133 | dependencies = [ 134 | "fnv", 135 | "ident_case", 136 | "proc-macro2 1.0.9", 137 | "quote 1.0.3", 138 | "strsim", 139 | "syn 1.0.16", 140 | ] 141 | 142 | [[package]] 143 | name = "darling_macro" 144 | version = "0.10.2" 145 | source = "registry+https://github.com/rust-lang/crates.io-index" 146 | checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" 147 | dependencies = [ 148 | "darling_core", 149 | "quote 1.0.3", 150 | "syn 1.0.16", 151 | ] 152 | 153 | [[package]] 154 | name = "darwin-libproc" 155 | version = "0.1.2" 156 | source = "registry+https://github.com/rust-lang/crates.io-index" 157 | checksum = "9fb90051930c9a0f09e585762152048e23ac74d20c10590ef7cf01c0343c3046" 158 | dependencies = [ 159 | "darwin-libproc-sys", 160 | "libc", 161 | "memchr", 162 | ] 163 | 164 | [[package]] 165 | name = "darwin-libproc-sys" 166 | version = "0.1.2" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "57cebb5bde66eecdd30ddc4b9cd208238b15db4982ccc72db59d699ea10867c1" 169 | dependencies = [ 170 | "libc", 171 | ] 172 | 173 | [[package]] 174 | name = "derive_more" 175 | version = "0.99.3" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "a806e96c59a76a5ba6e18735b6cf833344671e61e7863f2edb5c518ea2cac95c" 178 | dependencies = [ 179 | "proc-macro2 1.0.9", 180 | "quote 1.0.3", 181 | "syn 1.0.16", 182 | ] 183 | 184 | [[package]] 185 | name = "devise" 186 | version = "0.2.0" 187 | source = "registry+https://github.com/rust-lang/crates.io-index" 188 | checksum = "74e04ba2d03c5fa0d954c061fc8c9c288badadffc272ebb87679a89846de3ed3" 189 | dependencies = [ 190 | "devise_codegen", 191 | "devise_core", 192 | ] 193 | 194 | [[package]] 195 | name = "devise_codegen" 196 | version = "0.2.0" 197 | source = "registry+https://github.com/rust-lang/crates.io-index" 198 | checksum = "066ceb7928ca93a9bedc6d0e612a8a0424048b0ab1f75971b203d01420c055d7" 199 | dependencies = [ 200 | "devise_core", 201 | "quote 0.6.13", 202 | ] 203 | 204 | [[package]] 205 | name = "devise_core" 206 | version = "0.2.0" 207 | source = "registry+https://github.com/rust-lang/crates.io-index" 208 | checksum = "cf41c59b22b5e3ec0ea55c7847e5f358d340f3a8d6d53a5cf4f1564967f96487" 209 | dependencies = [ 210 | "bitflags", 211 | "proc-macro2 0.4.30", 212 | "quote 0.6.13", 213 | "syn 0.15.44", 214 | ] 215 | 216 | [[package]] 217 | name = "doc-comment" 218 | version = "0.3.2" 219 | source = "registry+https://github.com/rust-lang/crates.io-index" 220 | checksum = "807e5847c39ad6a11eac66de492ed1406f76a260eb8656e8740cad9eabc69c27" 221 | 222 | [[package]] 223 | name = "dtoa" 224 | version = "0.4.5" 225 | source = "registry+https://github.com/rust-lang/crates.io-index" 226 | checksum = "4358a9e11b9a09cf52383b451b49a169e8d797b68aa02301ff586d70d9661ea3" 227 | 228 | [[package]] 229 | name = "encoding_rs" 230 | version = "0.8.22" 231 | source = "registry+https://github.com/rust-lang/crates.io-index" 232 | checksum = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28" 233 | dependencies = [ 234 | "cfg-if", 235 | ] 236 | 237 | [[package]] 238 | name = "env_logger" 239 | version = "0.7.1" 240 | source = "registry+https://github.com/rust-lang/crates.io-index" 241 | checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" 242 | dependencies = [ 243 | "atty", 244 | "humantime", 245 | "log 0.4.8", 246 | "regex", 247 | "termcolor", 248 | ] 249 | 250 | [[package]] 251 | name = "envy" 252 | version = "0.4.1" 253 | source = "registry+https://github.com/rust-lang/crates.io-index" 254 | checksum = "f938a4abd5b75fe3737902dbc2e79ca142cc1526827a9e40b829a086758531a9" 255 | dependencies = [ 256 | "serde", 257 | ] 258 | 259 | [[package]] 260 | name = "filetime" 261 | version = "0.2.8" 262 | source = "registry+https://github.com/rust-lang/crates.io-index" 263 | checksum = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d" 264 | dependencies = [ 265 | "cfg-if", 266 | "libc", 267 | "redox_syscall", 268 | "winapi 0.3.8", 269 | ] 270 | 271 | [[package]] 272 | name = "fnv" 273 | version = "1.0.6" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" 276 | 277 | [[package]] 278 | name = "foreign-types" 279 | version = "0.3.2" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 282 | dependencies = [ 283 | "foreign-types-shared", 284 | ] 285 | 286 | [[package]] 287 | name = "foreign-types-shared" 288 | version = "0.1.1" 289 | source = "registry+https://github.com/rust-lang/crates.io-index" 290 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 291 | 292 | [[package]] 293 | name = "fsevent" 294 | version = "0.4.0" 295 | source = "registry+https://github.com/rust-lang/crates.io-index" 296 | checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6" 297 | dependencies = [ 298 | "bitflags", 299 | "fsevent-sys", 300 | ] 301 | 302 | [[package]] 303 | name = "fsevent-sys" 304 | version = "2.0.1" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0" 307 | dependencies = [ 308 | "libc", 309 | ] 310 | 311 | [[package]] 312 | name = "fuchsia-zircon" 313 | version = "0.3.3" 314 | source = "registry+https://github.com/rust-lang/crates.io-index" 315 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" 316 | dependencies = [ 317 | "bitflags", 318 | "fuchsia-zircon-sys", 319 | ] 320 | 321 | [[package]] 322 | name = "fuchsia-zircon-sys" 323 | version = "0.3.3" 324 | source = "registry+https://github.com/rust-lang/crates.io-index" 325 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" 326 | 327 | [[package]] 328 | name = "futures-channel" 329 | version = "0.3.4" 330 | source = "registry+https://github.com/rust-lang/crates.io-index" 331 | checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8" 332 | dependencies = [ 333 | "futures-core", 334 | ] 335 | 336 | [[package]] 337 | name = "futures-core" 338 | version = "0.3.4" 339 | source = "registry+https://github.com/rust-lang/crates.io-index" 340 | checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a" 341 | 342 | [[package]] 343 | name = "futures-io" 344 | version = "0.3.4" 345 | source = "registry+https://github.com/rust-lang/crates.io-index" 346 | checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6" 347 | 348 | [[package]] 349 | name = "futures-sink" 350 | version = "0.3.4" 351 | source = "registry+https://github.com/rust-lang/crates.io-index" 352 | checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6" 353 | 354 | [[package]] 355 | name = "futures-task" 356 | version = "0.3.4" 357 | source = "registry+https://github.com/rust-lang/crates.io-index" 358 | checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27" 359 | 360 | [[package]] 361 | name = "futures-util" 362 | version = "0.3.4" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5" 365 | dependencies = [ 366 | "futures-core", 367 | "futures-io", 368 | "futures-task", 369 | "memchr", 370 | "pin-utils", 371 | "slab", 372 | ] 373 | 374 | [[package]] 375 | name = "gethostname" 376 | version = "0.2.1" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "e692e296bfac1d2533ef168d0b60ff5897b8b70a4009276834014dd8924cc028" 379 | dependencies = [ 380 | "libc", 381 | "winapi 0.3.8", 382 | ] 383 | 384 | [[package]] 385 | name = "getrandom" 386 | version = "0.1.14" 387 | source = "registry+https://github.com/rust-lang/crates.io-index" 388 | checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" 389 | dependencies = [ 390 | "cfg-if", 391 | "libc", 392 | "wasi", 393 | ] 394 | 395 | [[package]] 396 | name = "glob" 397 | version = "0.3.0" 398 | source = "registry+https://github.com/rust-lang/crates.io-index" 399 | checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" 400 | 401 | [[package]] 402 | name = "h2" 403 | version = "0.2.2" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | checksum = "9d5c295d1c0c68e4e42003d75f908f5e16a1edd1cbe0b0d02e4dc2006a384f47" 406 | dependencies = [ 407 | "bytes", 408 | "fnv", 409 | "futures-core", 410 | "futures-sink", 411 | "futures-util", 412 | "http", 413 | "indexmap", 414 | "log 0.4.8", 415 | "slab", 416 | "tokio", 417 | "tokio-util", 418 | ] 419 | 420 | [[package]] 421 | name = "helloworld" 422 | version = "0.1.1" 423 | dependencies = [ 424 | "gethostname", 425 | "okapi", 426 | "psutil", 427 | "rocket", 428 | "rocket_contrib", 429 | "rocket_okapi", 430 | "rocket_prometheus", 431 | "schemars", 432 | "serde", 433 | "serde_json", 434 | ] 435 | 436 | [[package]] 437 | name = "helloworld-client" 438 | version = "0.1.0" 439 | dependencies = [ 440 | "env_logger", 441 | "envy", 442 | "log 0.4.8", 443 | "reqwest", 444 | "serde", 445 | "serde_json", 446 | ] 447 | 448 | [[package]] 449 | name = "hermit-abi" 450 | version = "0.1.8" 451 | source = "registry+https://github.com/rust-lang/crates.io-index" 452 | checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8" 453 | dependencies = [ 454 | "libc", 455 | ] 456 | 457 | [[package]] 458 | name = "http" 459 | version = "0.2.0" 460 | source = "registry+https://github.com/rust-lang/crates.io-index" 461 | checksum = "b708cc7f06493459026f53b9a61a7a121a5d1ec6238dee58ea4941132b30156b" 462 | dependencies = [ 463 | "bytes", 464 | "fnv", 465 | "itoa", 466 | ] 467 | 468 | [[package]] 469 | name = "http-body" 470 | version = "0.3.1" 471 | source = "registry+https://github.com/rust-lang/crates.io-index" 472 | checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b" 473 | dependencies = [ 474 | "bytes", 475 | "http", 476 | ] 477 | 478 | [[package]] 479 | name = "httparse" 480 | version = "1.3.4" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" 483 | 484 | [[package]] 485 | name = "humantime" 486 | version = "1.3.0" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" 489 | dependencies = [ 490 | "quick-error", 491 | ] 492 | 493 | [[package]] 494 | name = "hyper" 495 | version = "0.10.16" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273" 498 | dependencies = [ 499 | "base64 0.9.3", 500 | "httparse", 501 | "language-tags", 502 | "log 0.3.9", 503 | "mime 0.2.6", 504 | "num_cpus", 505 | "time", 506 | "traitobject", 507 | "typeable", 508 | "unicase 1.4.2", 509 | "url 1.7.2", 510 | ] 511 | 512 | [[package]] 513 | name = "hyper" 514 | version = "0.13.3" 515 | source = "registry+https://github.com/rust-lang/crates.io-index" 516 | checksum = "e7b15203263d1faa615f9337d79c1d37959439dc46c2b4faab33286fadc2a1c5" 517 | dependencies = [ 518 | "bytes", 519 | "futures-channel", 520 | "futures-core", 521 | "futures-util", 522 | "h2", 523 | "http", 524 | "http-body", 525 | "httparse", 526 | "itoa", 527 | "log 0.4.8", 528 | "net2", 529 | "pin-project", 530 | "time", 531 | "tokio", 532 | "tower-service", 533 | "want", 534 | ] 535 | 536 | [[package]] 537 | name = "hyper-tls" 538 | version = "0.4.1" 539 | source = "registry+https://github.com/rust-lang/crates.io-index" 540 | checksum = "3adcd308402b9553630734e9c36b77a7e48b3821251ca2493e8cd596763aafaa" 541 | dependencies = [ 542 | "bytes", 543 | "hyper 0.13.3", 544 | "native-tls", 545 | "tokio", 546 | "tokio-tls", 547 | ] 548 | 549 | [[package]] 550 | name = "ident_case" 551 | version = "1.0.1" 552 | source = "registry+https://github.com/rust-lang/crates.io-index" 553 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 554 | 555 | [[package]] 556 | name = "idna" 557 | version = "0.1.5" 558 | source = "registry+https://github.com/rust-lang/crates.io-index" 559 | checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" 560 | dependencies = [ 561 | "matches", 562 | "unicode-bidi", 563 | "unicode-normalization", 564 | ] 565 | 566 | [[package]] 567 | name = "idna" 568 | version = "0.2.0" 569 | source = "registry+https://github.com/rust-lang/crates.io-index" 570 | checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9" 571 | dependencies = [ 572 | "matches", 573 | "unicode-bidi", 574 | "unicode-normalization", 575 | ] 576 | 577 | [[package]] 578 | name = "indexmap" 579 | version = "1.3.2" 580 | source = "registry+https://github.com/rust-lang/crates.io-index" 581 | checksum = "076f042c5b7b98f31d205f1249267e12a6518c1481e9dae9764af19b707d2292" 582 | dependencies = [ 583 | "autocfg", 584 | ] 585 | 586 | [[package]] 587 | name = "inotify" 588 | version = "0.7.0" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8" 591 | dependencies = [ 592 | "bitflags", 593 | "inotify-sys", 594 | "libc", 595 | ] 596 | 597 | [[package]] 598 | name = "inotify-sys" 599 | version = "0.1.3" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0" 602 | dependencies = [ 603 | "libc", 604 | ] 605 | 606 | [[package]] 607 | name = "iovec" 608 | version = "0.1.4" 609 | source = "registry+https://github.com/rust-lang/crates.io-index" 610 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" 611 | dependencies = [ 612 | "libc", 613 | ] 614 | 615 | [[package]] 616 | name = "itoa" 617 | version = "0.4.5" 618 | source = "registry+https://github.com/rust-lang/crates.io-index" 619 | checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e" 620 | 621 | [[package]] 622 | name = "js-sys" 623 | version = "0.3.36" 624 | source = "registry+https://github.com/rust-lang/crates.io-index" 625 | checksum = "1cb931d43e71f560c81badb0191596562bafad2be06a3f9025b845c847c60df5" 626 | dependencies = [ 627 | "wasm-bindgen", 628 | ] 629 | 630 | [[package]] 631 | name = "kernel32-sys" 632 | version = "0.2.2" 633 | source = "registry+https://github.com/rust-lang/crates.io-index" 634 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" 635 | dependencies = [ 636 | "winapi 0.2.8", 637 | "winapi-build", 638 | ] 639 | 640 | [[package]] 641 | name = "language-tags" 642 | version = "0.2.2" 643 | source = "registry+https://github.com/rust-lang/crates.io-index" 644 | checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" 645 | 646 | [[package]] 647 | name = "lazy_static" 648 | version = "1.4.0" 649 | source = "registry+https://github.com/rust-lang/crates.io-index" 650 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" 651 | 652 | [[package]] 653 | name = "lazycell" 654 | version = "1.2.1" 655 | source = "registry+https://github.com/rust-lang/crates.io-index" 656 | checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" 657 | 658 | [[package]] 659 | name = "libc" 660 | version = "0.2.67" 661 | source = "registry+https://github.com/rust-lang/crates.io-index" 662 | checksum = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018" 663 | 664 | [[package]] 665 | name = "log" 666 | version = "0.3.9" 667 | source = "registry+https://github.com/rust-lang/crates.io-index" 668 | checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" 669 | dependencies = [ 670 | "log 0.4.8", 671 | ] 672 | 673 | [[package]] 674 | name = "log" 675 | version = "0.4.8" 676 | source = "registry+https://github.com/rust-lang/crates.io-index" 677 | checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" 678 | dependencies = [ 679 | "cfg-if", 680 | ] 681 | 682 | [[package]] 683 | name = "mach" 684 | version = "0.3.2" 685 | source = "registry+https://github.com/rust-lang/crates.io-index" 686 | checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" 687 | dependencies = [ 688 | "libc", 689 | ] 690 | 691 | [[package]] 692 | name = "matches" 693 | version = "0.1.8" 694 | source = "registry+https://github.com/rust-lang/crates.io-index" 695 | checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" 696 | 697 | [[package]] 698 | name = "memchr" 699 | version = "2.3.3" 700 | source = "registry+https://github.com/rust-lang/crates.io-index" 701 | checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" 702 | 703 | [[package]] 704 | name = "mime" 705 | version = "0.2.6" 706 | source = "registry+https://github.com/rust-lang/crates.io-index" 707 | checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0" 708 | dependencies = [ 709 | "log 0.3.9", 710 | ] 711 | 712 | [[package]] 713 | name = "mime" 714 | version = "0.3.16" 715 | source = "registry+https://github.com/rust-lang/crates.io-index" 716 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" 717 | 718 | [[package]] 719 | name = "mime_guess" 720 | version = "2.0.3" 721 | source = "registry+https://github.com/rust-lang/crates.io-index" 722 | checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212" 723 | dependencies = [ 724 | "mime 0.3.16", 725 | "unicase 2.6.0", 726 | ] 727 | 728 | [[package]] 729 | name = "mio" 730 | version = "0.6.21" 731 | source = "registry+https://github.com/rust-lang/crates.io-index" 732 | checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" 733 | dependencies = [ 734 | "cfg-if", 735 | "fuchsia-zircon", 736 | "fuchsia-zircon-sys", 737 | "iovec", 738 | "kernel32-sys", 739 | "libc", 740 | "log 0.4.8", 741 | "miow", 742 | "net2", 743 | "slab", 744 | "winapi 0.2.8", 745 | ] 746 | 747 | [[package]] 748 | name = "mio-extras" 749 | version = "2.0.6" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" 752 | dependencies = [ 753 | "lazycell", 754 | "log 0.4.8", 755 | "mio", 756 | "slab", 757 | ] 758 | 759 | [[package]] 760 | name = "miow" 761 | version = "0.2.1" 762 | source = "registry+https://github.com/rust-lang/crates.io-index" 763 | checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" 764 | dependencies = [ 765 | "kernel32-sys", 766 | "net2", 767 | "winapi 0.2.8", 768 | "ws2_32-sys", 769 | ] 770 | 771 | [[package]] 772 | name = "native-tls" 773 | version = "0.2.4" 774 | source = "registry+https://github.com/rust-lang/crates.io-index" 775 | checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" 776 | dependencies = [ 777 | "lazy_static", 778 | "libc", 779 | "log 0.4.8", 780 | "openssl", 781 | "openssl-probe", 782 | "openssl-sys", 783 | "schannel", 784 | "security-framework", 785 | "security-framework-sys", 786 | "tempfile", 787 | ] 788 | 789 | [[package]] 790 | name = "net2" 791 | version = "0.2.33" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" 794 | dependencies = [ 795 | "cfg-if", 796 | "libc", 797 | "winapi 0.3.8", 798 | ] 799 | 800 | [[package]] 801 | name = "nix" 802 | version = "0.17.0" 803 | source = "registry+https://github.com/rust-lang/crates.io-index" 804 | checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" 805 | dependencies = [ 806 | "bitflags", 807 | "cc", 808 | "cfg-if", 809 | "libc", 810 | "void", 811 | ] 812 | 813 | [[package]] 814 | name = "notify" 815 | version = "4.0.15" 816 | source = "registry+https://github.com/rust-lang/crates.io-index" 817 | checksum = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd" 818 | dependencies = [ 819 | "bitflags", 820 | "filetime", 821 | "fsevent", 822 | "fsevent-sys", 823 | "inotify", 824 | "libc", 825 | "mio", 826 | "mio-extras", 827 | "walkdir", 828 | "winapi 0.3.8", 829 | ] 830 | 831 | [[package]] 832 | name = "num_cpus" 833 | version = "1.12.0" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6" 836 | dependencies = [ 837 | "hermit-abi", 838 | "libc", 839 | ] 840 | 841 | [[package]] 842 | name = "okapi" 843 | version = "0.3.0" 844 | source = "registry+https://github.com/rust-lang/crates.io-index" 845 | checksum = "6a62e8c05972b7b21c71e66fa99e61e36fc6f771c649a0592f0aeef56f30f9ec" 846 | dependencies = [ 847 | "schemars", 848 | "serde", 849 | "serde_json", 850 | ] 851 | 852 | [[package]] 853 | name = "once_cell" 854 | version = "1.3.1" 855 | source = "registry+https://github.com/rust-lang/crates.io-index" 856 | checksum = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b" 857 | 858 | [[package]] 859 | name = "openssl" 860 | version = "0.10.28" 861 | source = "registry+https://github.com/rust-lang/crates.io-index" 862 | checksum = "973293749822d7dd6370d6da1e523b0d1db19f06c459134c658b2a4261378b52" 863 | dependencies = [ 864 | "bitflags", 865 | "cfg-if", 866 | "foreign-types", 867 | "lazy_static", 868 | "libc", 869 | "openssl-sys", 870 | ] 871 | 872 | [[package]] 873 | name = "openssl-probe" 874 | version = "0.1.2" 875 | source = "registry+https://github.com/rust-lang/crates.io-index" 876 | checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de" 877 | 878 | [[package]] 879 | name = "openssl-sys" 880 | version = "0.9.54" 881 | source = "registry+https://github.com/rust-lang/crates.io-index" 882 | checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986" 883 | dependencies = [ 884 | "autocfg", 885 | "cc", 886 | "libc", 887 | "pkg-config", 888 | "vcpkg", 889 | ] 890 | 891 | [[package]] 892 | name = "pear" 893 | version = "0.1.2" 894 | source = "registry+https://github.com/rust-lang/crates.io-index" 895 | checksum = "c26d2b92e47063ffce70d3e3b1bd097af121a9e0db07ca38a6cc1cf0cc85ff25" 896 | dependencies = [ 897 | "pear_codegen", 898 | ] 899 | 900 | [[package]] 901 | name = "pear_codegen" 902 | version = "0.1.2" 903 | source = "registry+https://github.com/rust-lang/crates.io-index" 904 | checksum = "336db4a192cc7f54efeb0c4e11a9245394824cc3bcbd37ba3ff51240c35d7a6e" 905 | dependencies = [ 906 | "proc-macro2 0.4.30", 907 | "quote 0.6.13", 908 | "syn 0.15.44", 909 | "version_check 0.1.5", 910 | "yansi 0.4.0", 911 | ] 912 | 913 | [[package]] 914 | name = "percent-encoding" 915 | version = "1.0.1" 916 | source = "registry+https://github.com/rust-lang/crates.io-index" 917 | checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" 918 | 919 | [[package]] 920 | name = "percent-encoding" 921 | version = "2.1.0" 922 | source = "registry+https://github.com/rust-lang/crates.io-index" 923 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" 924 | 925 | [[package]] 926 | name = "pin-project" 927 | version = "0.4.8" 928 | source = "registry+https://github.com/rust-lang/crates.io-index" 929 | checksum = "7804a463a8d9572f13453c516a5faea534a2403d7ced2f0c7e100eeff072772c" 930 | dependencies = [ 931 | "pin-project-internal", 932 | ] 933 | 934 | [[package]] 935 | name = "pin-project-internal" 936 | version = "0.4.8" 937 | source = "registry+https://github.com/rust-lang/crates.io-index" 938 | checksum = "385322a45f2ecf3410c68d2a549a4a2685e8051d0f278e39743ff4e451cb9b3f" 939 | dependencies = [ 940 | "proc-macro2 1.0.9", 941 | "quote 1.0.3", 942 | "syn 1.0.16", 943 | ] 944 | 945 | [[package]] 946 | name = "pin-project-lite" 947 | version = "0.1.4" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" 950 | 951 | [[package]] 952 | name = "pin-utils" 953 | version = "0.1.0-alpha.4" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587" 956 | 957 | [[package]] 958 | name = "pkg-config" 959 | version = "0.3.17" 960 | source = "registry+https://github.com/rust-lang/crates.io-index" 961 | checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" 962 | 963 | [[package]] 964 | name = "platforms" 965 | version = "0.2.1" 966 | source = "registry+https://github.com/rust-lang/crates.io-index" 967 | checksum = "feb3b2b1033b8a60b4da6ee470325f887758c95d5320f52f9ce0df055a55940e" 968 | 969 | [[package]] 970 | name = "ppv-lite86" 971 | version = "0.2.6" 972 | source = "registry+https://github.com/rust-lang/crates.io-index" 973 | checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" 974 | 975 | [[package]] 976 | name = "proc-macro2" 977 | version = "0.4.30" 978 | source = "registry+https://github.com/rust-lang/crates.io-index" 979 | checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" 980 | dependencies = [ 981 | "unicode-xid 0.1.0", 982 | ] 983 | 984 | [[package]] 985 | name = "proc-macro2" 986 | version = "1.0.9" 987 | source = "registry+https://github.com/rust-lang/crates.io-index" 988 | checksum = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435" 989 | dependencies = [ 990 | "unicode-xid 0.2.0", 991 | ] 992 | 993 | [[package]] 994 | name = "prometheus" 995 | version = "0.8.0" 996 | source = "registry+https://github.com/rust-lang/crates.io-index" 997 | checksum = "b0575e258dab62268e7236d7307caa38848acbda7ec7ab87bd9093791e999d20" 998 | dependencies = [ 999 | "cfg-if", 1000 | "fnv", 1001 | "lazy_static", 1002 | "protobuf", 1003 | "spin", 1004 | "thiserror", 1005 | ] 1006 | 1007 | [[package]] 1008 | name = "protobuf" 1009 | version = "2.10.2" 1010 | source = "registry+https://github.com/rust-lang/crates.io-index" 1011 | checksum = "37a5325d019a4d837d3abde0a836920f959e33d350f77b5f1e289e061e774942" 1012 | 1013 | [[package]] 1014 | name = "psutil" 1015 | version = "3.0.1" 1016 | source = "registry+https://github.com/rust-lang/crates.io-index" 1017 | checksum = "ad9583ff1d00dadb495067e92785d1ca4cf0b6214d1692bf0ccfbb0039d3ba21" 1018 | dependencies = [ 1019 | "cfg-if", 1020 | "darwin-libproc", 1021 | "derive_more", 1022 | "glob", 1023 | "mach", 1024 | "nix", 1025 | "num_cpus", 1026 | "once_cell", 1027 | "platforms", 1028 | "snafu", 1029 | "unescape", 1030 | ] 1031 | 1032 | [[package]] 1033 | name = "quick-error" 1034 | version = "1.2.3" 1035 | source = "registry+https://github.com/rust-lang/crates.io-index" 1036 | checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" 1037 | 1038 | [[package]] 1039 | name = "quote" 1040 | version = "0.6.13" 1041 | source = "registry+https://github.com/rust-lang/crates.io-index" 1042 | checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" 1043 | dependencies = [ 1044 | "proc-macro2 0.4.30", 1045 | ] 1046 | 1047 | [[package]] 1048 | name = "quote" 1049 | version = "1.0.3" 1050 | source = "registry+https://github.com/rust-lang/crates.io-index" 1051 | checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" 1052 | dependencies = [ 1053 | "proc-macro2 1.0.9", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "rand" 1058 | version = "0.7.3" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" 1061 | dependencies = [ 1062 | "getrandom", 1063 | "libc", 1064 | "rand_chacha", 1065 | "rand_core", 1066 | "rand_hc", 1067 | ] 1068 | 1069 | [[package]] 1070 | name = "rand_chacha" 1071 | version = "0.2.2" 1072 | source = "registry+https://github.com/rust-lang/crates.io-index" 1073 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" 1074 | dependencies = [ 1075 | "ppv-lite86", 1076 | "rand_core", 1077 | ] 1078 | 1079 | [[package]] 1080 | name = "rand_core" 1081 | version = "0.5.1" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" 1084 | dependencies = [ 1085 | "getrandom", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "rand_hc" 1090 | version = "0.2.0" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" 1093 | dependencies = [ 1094 | "rand_core", 1095 | ] 1096 | 1097 | [[package]] 1098 | name = "redox_syscall" 1099 | version = "0.1.56" 1100 | source = "registry+https://github.com/rust-lang/crates.io-index" 1101 | checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" 1102 | 1103 | [[package]] 1104 | name = "regex" 1105 | version = "1.3.5" 1106 | source = "registry+https://github.com/rust-lang/crates.io-index" 1107 | checksum = "8900ebc1363efa7ea1c399ccc32daed870b4002651e0bed86e72d501ebbe0048" 1108 | dependencies = [ 1109 | "aho-corasick", 1110 | "memchr", 1111 | "regex-syntax", 1112 | "thread_local", 1113 | ] 1114 | 1115 | [[package]] 1116 | name = "regex-syntax" 1117 | version = "0.6.17" 1118 | source = "registry+https://github.com/rust-lang/crates.io-index" 1119 | checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" 1120 | 1121 | [[package]] 1122 | name = "remove_dir_all" 1123 | version = "0.5.2" 1124 | source = "registry+https://github.com/rust-lang/crates.io-index" 1125 | checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" 1126 | dependencies = [ 1127 | "winapi 0.3.8", 1128 | ] 1129 | 1130 | [[package]] 1131 | name = "reqwest" 1132 | version = "0.10.4" 1133 | source = "registry+https://github.com/rust-lang/crates.io-index" 1134 | checksum = "02b81e49ddec5109a9dcfc5f2a317ff53377c915e9ae9d4f2fb50914b85614e2" 1135 | dependencies = [ 1136 | "base64 0.11.0", 1137 | "bytes", 1138 | "encoding_rs", 1139 | "futures-core", 1140 | "futures-util", 1141 | "http", 1142 | "http-body", 1143 | "hyper 0.13.3", 1144 | "hyper-tls", 1145 | "js-sys", 1146 | "lazy_static", 1147 | "log 0.4.8", 1148 | "mime 0.3.16", 1149 | "mime_guess", 1150 | "native-tls", 1151 | "percent-encoding 2.1.0", 1152 | "pin-project-lite", 1153 | "serde", 1154 | "serde_json", 1155 | "serde_urlencoded", 1156 | "time", 1157 | "tokio", 1158 | "tokio-tls", 1159 | "url 2.1.1", 1160 | "wasm-bindgen", 1161 | "wasm-bindgen-futures", 1162 | "web-sys", 1163 | "winreg", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "ring" 1168 | version = "0.13.5" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "2c4db68a2e35f3497146b7e4563df7d4773a2433230c5e4b448328e31740458a" 1171 | dependencies = [ 1172 | "cc", 1173 | "lazy_static", 1174 | "libc", 1175 | "untrusted", 1176 | ] 1177 | 1178 | [[package]] 1179 | name = "rocket" 1180 | version = "0.4.4" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "e20afbad214b001cabbe31dd270b48b3be980a7153ee2ed8392e241f856d651b" 1183 | dependencies = [ 1184 | "atty", 1185 | "base64 0.10.1", 1186 | "log 0.4.8", 1187 | "memchr", 1188 | "num_cpus", 1189 | "pear", 1190 | "rocket_codegen", 1191 | "rocket_http", 1192 | "state", 1193 | "time", 1194 | "toml", 1195 | "version_check 0.9.1", 1196 | "yansi 0.5.0", 1197 | ] 1198 | 1199 | [[package]] 1200 | name = "rocket_codegen" 1201 | version = "0.4.4" 1202 | source = "registry+https://github.com/rust-lang/crates.io-index" 1203 | checksum = "2108b35e2c3a35759d3f16cc3002ece05523191d884d3ad6523693fd43324dde" 1204 | dependencies = [ 1205 | "devise", 1206 | "glob", 1207 | "indexmap", 1208 | "quote 0.6.13", 1209 | "rocket_http", 1210 | "version_check 0.9.1", 1211 | "yansi 0.5.0", 1212 | ] 1213 | 1214 | [[package]] 1215 | name = "rocket_contrib" 1216 | version = "0.4.4" 1217 | source = "registry+https://github.com/rust-lang/crates.io-index" 1218 | checksum = "a10e7471279bc2d4a21b6fddd9589016bb119e6fbb547b216dd54ef237f28341" 1219 | dependencies = [ 1220 | "log 0.4.8", 1221 | "notify", 1222 | "rocket", 1223 | "serde", 1224 | "serde_json", 1225 | ] 1226 | 1227 | [[package]] 1228 | name = "rocket_http" 1229 | version = "0.4.4" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "6ce8ca76247376ea21cf271af0f95e3f2014596e3e4c7cc04e44ee6242a40ff2" 1232 | dependencies = [ 1233 | "cookie", 1234 | "hyper 0.10.16", 1235 | "indexmap", 1236 | "pear", 1237 | "percent-encoding 1.0.1", 1238 | "smallvec", 1239 | "state", 1240 | "time", 1241 | "unicode-xid 0.1.0", 1242 | ] 1243 | 1244 | [[package]] 1245 | name = "rocket_okapi" 1246 | version = "0.3.6" 1247 | source = "registry+https://github.com/rust-lang/crates.io-index" 1248 | checksum = "dfb62bf82c06d7559d092e50ed7ee421d5148be3f91d4070489c5c07a6746e54" 1249 | dependencies = [ 1250 | "okapi", 1251 | "rocket", 1252 | "rocket_contrib", 1253 | "rocket_okapi_codegen", 1254 | "schemars", 1255 | "serde", 1256 | "serde_json", 1257 | ] 1258 | 1259 | [[package]] 1260 | name = "rocket_okapi_codegen" 1261 | version = "0.3.6" 1262 | source = "registry+https://github.com/rust-lang/crates.io-index" 1263 | checksum = "9c2de170428639743f5203076f7caded064f0f5cbcd5bdf10222ee3f5f5a6432" 1264 | dependencies = [ 1265 | "darling", 1266 | "proc-macro2 1.0.9", 1267 | "quote 1.0.3", 1268 | "rocket_http", 1269 | "syn 1.0.16", 1270 | ] 1271 | 1272 | [[package]] 1273 | name = "rocket_prometheus" 1274 | version = "0.4.0" 1275 | source = "registry+https://github.com/rust-lang/crates.io-index" 1276 | checksum = "da320c747c27c53ad07eaec0f51c058c76b46f7a3628807edbcc3d29e29894f0" 1277 | dependencies = [ 1278 | "prometheus", 1279 | "rocket", 1280 | ] 1281 | 1282 | [[package]] 1283 | name = "ryu" 1284 | version = "1.0.3" 1285 | source = "registry+https://github.com/rust-lang/crates.io-index" 1286 | checksum = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76" 1287 | 1288 | [[package]] 1289 | name = "safemem" 1290 | version = "0.3.3" 1291 | source = "registry+https://github.com/rust-lang/crates.io-index" 1292 | checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" 1293 | 1294 | [[package]] 1295 | name = "same-file" 1296 | version = "1.0.6" 1297 | source = "registry+https://github.com/rust-lang/crates.io-index" 1298 | checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" 1299 | dependencies = [ 1300 | "winapi-util", 1301 | ] 1302 | 1303 | [[package]] 1304 | name = "schannel" 1305 | version = "0.1.17" 1306 | source = "registry+https://github.com/rust-lang/crates.io-index" 1307 | checksum = "507a9e6e8ffe0a4e0ebb9a10293e62fdf7657c06f1b8bb07a8fcf697d2abf295" 1308 | dependencies = [ 1309 | "lazy_static", 1310 | "winapi 0.3.8", 1311 | ] 1312 | 1313 | [[package]] 1314 | name = "schemars" 1315 | version = "0.6.5" 1316 | source = "registry+https://github.com/rust-lang/crates.io-index" 1317 | checksum = "07569773d6aaf3324812c6572244aec08521b64ce056f2be3b5cc135fb63caec" 1318 | dependencies = [ 1319 | "schemars_derive", 1320 | "serde", 1321 | "serde_json", 1322 | ] 1323 | 1324 | [[package]] 1325 | name = "schemars_derive" 1326 | version = "0.6.5" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | checksum = "38535ecef477d8495dc6c288e876c03c4428b8141ffa57803111348cf14230a9" 1329 | dependencies = [ 1330 | "proc-macro2 1.0.9", 1331 | "quote 1.0.3", 1332 | "serde_derive_internals", 1333 | "syn 1.0.16", 1334 | ] 1335 | 1336 | [[package]] 1337 | name = "security-framework" 1338 | version = "0.4.1" 1339 | source = "registry+https://github.com/rust-lang/crates.io-index" 1340 | checksum = "97bbedbe81904398b6ebb054b3e912f99d55807125790f3198ac990d98def5b0" 1341 | dependencies = [ 1342 | "bitflags", 1343 | "core-foundation", 1344 | "core-foundation-sys", 1345 | "security-framework-sys", 1346 | ] 1347 | 1348 | [[package]] 1349 | name = "security-framework-sys" 1350 | version = "0.4.1" 1351 | source = "registry+https://github.com/rust-lang/crates.io-index" 1352 | checksum = "06fd2f23e31ef68dd2328cc383bd493142e46107a3a0e24f7d734e3f3b80fe4c" 1353 | dependencies = [ 1354 | "core-foundation-sys", 1355 | "libc", 1356 | ] 1357 | 1358 | [[package]] 1359 | name = "serde" 1360 | version = "1.0.104" 1361 | source = "registry+https://github.com/rust-lang/crates.io-index" 1362 | checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449" 1363 | dependencies = [ 1364 | "serde_derive", 1365 | ] 1366 | 1367 | [[package]] 1368 | name = "serde_derive" 1369 | version = "1.0.104" 1370 | source = "registry+https://github.com/rust-lang/crates.io-index" 1371 | checksum = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64" 1372 | dependencies = [ 1373 | "proc-macro2 1.0.9", 1374 | "quote 1.0.3", 1375 | "syn 1.0.16", 1376 | ] 1377 | 1378 | [[package]] 1379 | name = "serde_derive_internals" 1380 | version = "0.25.0" 1381 | source = "registry+https://github.com/rust-lang/crates.io-index" 1382 | checksum = "1dbab34ca63057a1f15280bdf3c39f2b1eb1b54c17e98360e511637aef7418c6" 1383 | dependencies = [ 1384 | "proc-macro2 1.0.9", 1385 | "quote 1.0.3", 1386 | "syn 1.0.16", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "serde_json" 1391 | version = "1.0.48" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "9371ade75d4c2d6cb154141b9752cf3781ec9c05e0e5cf35060e1e70ee7b9c25" 1394 | dependencies = [ 1395 | "itoa", 1396 | "ryu", 1397 | "serde", 1398 | ] 1399 | 1400 | [[package]] 1401 | name = "serde_urlencoded" 1402 | version = "0.6.1" 1403 | source = "registry+https://github.com/rust-lang/crates.io-index" 1404 | checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97" 1405 | dependencies = [ 1406 | "dtoa", 1407 | "itoa", 1408 | "serde", 1409 | "url 2.1.1", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "slab" 1414 | version = "0.4.2" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" 1417 | 1418 | [[package]] 1419 | name = "smallvec" 1420 | version = "1.2.0" 1421 | source = "registry+https://github.com/rust-lang/crates.io-index" 1422 | checksum = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc" 1423 | 1424 | [[package]] 1425 | name = "snafu" 1426 | version = "0.6.2" 1427 | source = "registry+https://github.com/rust-lang/crates.io-index" 1428 | checksum = "546db9181bce2aa22ed883c33d65603b76335b4c2533a98289f54265043de7a1" 1429 | dependencies = [ 1430 | "doc-comment", 1431 | "snafu-derive", 1432 | ] 1433 | 1434 | [[package]] 1435 | name = "snafu-derive" 1436 | version = "0.6.2" 1437 | source = "registry+https://github.com/rust-lang/crates.io-index" 1438 | checksum = "bdc75da2e0323f297402fd9c8fdba709bb04e4c627cbe31d19a2c91fc8d9f0e2" 1439 | dependencies = [ 1440 | "proc-macro2 1.0.9", 1441 | "quote 1.0.3", 1442 | "syn 1.0.16", 1443 | ] 1444 | 1445 | [[package]] 1446 | name = "spin" 1447 | version = "0.5.2" 1448 | source = "registry+https://github.com/rust-lang/crates.io-index" 1449 | checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" 1450 | 1451 | [[package]] 1452 | name = "state" 1453 | version = "0.4.1" 1454 | source = "registry+https://github.com/rust-lang/crates.io-index" 1455 | checksum = "7345c971d1ef21ffdbd103a75990a15eb03604fc8b8852ca8cb418ee1a099028" 1456 | 1457 | [[package]] 1458 | name = "strsim" 1459 | version = "0.9.3" 1460 | source = "registry+https://github.com/rust-lang/crates.io-index" 1461 | checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" 1462 | 1463 | [[package]] 1464 | name = "syn" 1465 | version = "0.15.44" 1466 | source = "registry+https://github.com/rust-lang/crates.io-index" 1467 | checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" 1468 | dependencies = [ 1469 | "proc-macro2 0.4.30", 1470 | "quote 0.6.13", 1471 | "unicode-xid 0.1.0", 1472 | ] 1473 | 1474 | [[package]] 1475 | name = "syn" 1476 | version = "1.0.16" 1477 | source = "registry+https://github.com/rust-lang/crates.io-index" 1478 | checksum = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859" 1479 | dependencies = [ 1480 | "proc-macro2 1.0.9", 1481 | "quote 1.0.3", 1482 | "unicode-xid 0.2.0", 1483 | ] 1484 | 1485 | [[package]] 1486 | name = "tempfile" 1487 | version = "3.1.0" 1488 | source = "registry+https://github.com/rust-lang/crates.io-index" 1489 | checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" 1490 | dependencies = [ 1491 | "cfg-if", 1492 | "libc", 1493 | "rand", 1494 | "redox_syscall", 1495 | "remove_dir_all", 1496 | "winapi 0.3.8", 1497 | ] 1498 | 1499 | [[package]] 1500 | name = "termcolor" 1501 | version = "1.1.0" 1502 | source = "registry+https://github.com/rust-lang/crates.io-index" 1503 | checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" 1504 | dependencies = [ 1505 | "winapi-util", 1506 | ] 1507 | 1508 | [[package]] 1509 | name = "thiserror" 1510 | version = "1.0.11" 1511 | source = "registry+https://github.com/rust-lang/crates.io-index" 1512 | checksum = "ee14bf8e6767ab4c687c9e8bc003879e042a96fd67a3ba5934eadb6536bef4db" 1513 | dependencies = [ 1514 | "thiserror-impl", 1515 | ] 1516 | 1517 | [[package]] 1518 | name = "thiserror-impl" 1519 | version = "1.0.11" 1520 | source = "registry+https://github.com/rust-lang/crates.io-index" 1521 | checksum = "a7b51e1fbc44b5a0840be594fbc0f960be09050f2617e61e6aa43bef97cd3ef4" 1522 | dependencies = [ 1523 | "proc-macro2 1.0.9", 1524 | "quote 1.0.3", 1525 | "syn 1.0.16", 1526 | ] 1527 | 1528 | [[package]] 1529 | name = "thread_local" 1530 | version = "1.0.1" 1531 | source = "registry+https://github.com/rust-lang/crates.io-index" 1532 | checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" 1533 | dependencies = [ 1534 | "lazy_static", 1535 | ] 1536 | 1537 | [[package]] 1538 | name = "time" 1539 | version = "0.1.42" 1540 | source = "registry+https://github.com/rust-lang/crates.io-index" 1541 | checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f" 1542 | dependencies = [ 1543 | "libc", 1544 | "redox_syscall", 1545 | "winapi 0.3.8", 1546 | ] 1547 | 1548 | [[package]] 1549 | name = "tokio" 1550 | version = "0.2.13" 1551 | source = "registry+https://github.com/rust-lang/crates.io-index" 1552 | checksum = "0fa5e81d6bc4e67fe889d5783bd2a128ab2e0cfa487e0be16b6a8d177b101616" 1553 | dependencies = [ 1554 | "bytes", 1555 | "fnv", 1556 | "iovec", 1557 | "lazy_static", 1558 | "memchr", 1559 | "mio", 1560 | "num_cpus", 1561 | "pin-project-lite", 1562 | "slab", 1563 | ] 1564 | 1565 | [[package]] 1566 | name = "tokio-tls" 1567 | version = "0.3.0" 1568 | source = "registry+https://github.com/rust-lang/crates.io-index" 1569 | checksum = "7bde02a3a5291395f59b06ec6945a3077602fac2b07eeeaf0dee2122f3619828" 1570 | dependencies = [ 1571 | "native-tls", 1572 | "tokio", 1573 | ] 1574 | 1575 | [[package]] 1576 | name = "tokio-util" 1577 | version = "0.2.0" 1578 | source = "registry+https://github.com/rust-lang/crates.io-index" 1579 | checksum = "571da51182ec208780505a32528fc5512a8fe1443ab960b3f2f3ef093cd16930" 1580 | dependencies = [ 1581 | "bytes", 1582 | "futures-core", 1583 | "futures-sink", 1584 | "log 0.4.8", 1585 | "pin-project-lite", 1586 | "tokio", 1587 | ] 1588 | 1589 | [[package]] 1590 | name = "toml" 1591 | version = "0.4.10" 1592 | source = "registry+https://github.com/rust-lang/crates.io-index" 1593 | checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f" 1594 | dependencies = [ 1595 | "serde", 1596 | ] 1597 | 1598 | [[package]] 1599 | name = "tower-service" 1600 | version = "0.3.0" 1601 | source = "registry+https://github.com/rust-lang/crates.io-index" 1602 | checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860" 1603 | 1604 | [[package]] 1605 | name = "traitobject" 1606 | version = "0.1.0" 1607 | source = "registry+https://github.com/rust-lang/crates.io-index" 1608 | checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079" 1609 | 1610 | [[package]] 1611 | name = "try-lock" 1612 | version = "0.2.2" 1613 | source = "registry+https://github.com/rust-lang/crates.io-index" 1614 | checksum = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382" 1615 | 1616 | [[package]] 1617 | name = "typeable" 1618 | version = "0.1.2" 1619 | source = "registry+https://github.com/rust-lang/crates.io-index" 1620 | checksum = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887" 1621 | 1622 | [[package]] 1623 | name = "unescape" 1624 | version = "0.1.0" 1625 | source = "registry+https://github.com/rust-lang/crates.io-index" 1626 | checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" 1627 | 1628 | [[package]] 1629 | name = "unicase" 1630 | version = "1.4.2" 1631 | source = "registry+https://github.com/rust-lang/crates.io-index" 1632 | checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33" 1633 | dependencies = [ 1634 | "version_check 0.1.5", 1635 | ] 1636 | 1637 | [[package]] 1638 | name = "unicase" 1639 | version = "2.6.0" 1640 | source = "registry+https://github.com/rust-lang/crates.io-index" 1641 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" 1642 | dependencies = [ 1643 | "version_check 0.9.1", 1644 | ] 1645 | 1646 | [[package]] 1647 | name = "unicode-bidi" 1648 | version = "0.3.4" 1649 | source = "registry+https://github.com/rust-lang/crates.io-index" 1650 | checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" 1651 | dependencies = [ 1652 | "matches", 1653 | ] 1654 | 1655 | [[package]] 1656 | name = "unicode-normalization" 1657 | version = "0.1.12" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4" 1660 | dependencies = [ 1661 | "smallvec", 1662 | ] 1663 | 1664 | [[package]] 1665 | name = "unicode-xid" 1666 | version = "0.1.0" 1667 | source = "registry+https://github.com/rust-lang/crates.io-index" 1668 | checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" 1669 | 1670 | [[package]] 1671 | name = "unicode-xid" 1672 | version = "0.2.0" 1673 | source = "registry+https://github.com/rust-lang/crates.io-index" 1674 | checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" 1675 | 1676 | [[package]] 1677 | name = "untrusted" 1678 | version = "0.6.2" 1679 | source = "registry+https://github.com/rust-lang/crates.io-index" 1680 | checksum = "55cd1f4b4e96b46aeb8d4855db4a7a9bd96eeeb5c6a1ab54593328761642ce2f" 1681 | 1682 | [[package]] 1683 | name = "url" 1684 | version = "1.7.2" 1685 | source = "registry+https://github.com/rust-lang/crates.io-index" 1686 | checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" 1687 | dependencies = [ 1688 | "idna 0.1.5", 1689 | "matches", 1690 | "percent-encoding 1.0.1", 1691 | ] 1692 | 1693 | [[package]] 1694 | name = "url" 1695 | version = "2.1.1" 1696 | source = "registry+https://github.com/rust-lang/crates.io-index" 1697 | checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" 1698 | dependencies = [ 1699 | "idna 0.2.0", 1700 | "matches", 1701 | "percent-encoding 2.1.0", 1702 | ] 1703 | 1704 | [[package]] 1705 | name = "vcpkg" 1706 | version = "0.2.8" 1707 | source = "registry+https://github.com/rust-lang/crates.io-index" 1708 | checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" 1709 | 1710 | [[package]] 1711 | name = "version_check" 1712 | version = "0.1.5" 1713 | source = "registry+https://github.com/rust-lang/crates.io-index" 1714 | checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd" 1715 | 1716 | [[package]] 1717 | name = "version_check" 1718 | version = "0.9.1" 1719 | source = "registry+https://github.com/rust-lang/crates.io-index" 1720 | checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" 1721 | 1722 | [[package]] 1723 | name = "void" 1724 | version = "1.0.2" 1725 | source = "registry+https://github.com/rust-lang/crates.io-index" 1726 | checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" 1727 | 1728 | [[package]] 1729 | name = "walkdir" 1730 | version = "2.3.1" 1731 | source = "registry+https://github.com/rust-lang/crates.io-index" 1732 | checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" 1733 | dependencies = [ 1734 | "same-file", 1735 | "winapi 0.3.8", 1736 | "winapi-util", 1737 | ] 1738 | 1739 | [[package]] 1740 | name = "want" 1741 | version = "0.3.0" 1742 | source = "registry+https://github.com/rust-lang/crates.io-index" 1743 | checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" 1744 | dependencies = [ 1745 | "log 0.4.8", 1746 | "try-lock", 1747 | ] 1748 | 1749 | [[package]] 1750 | name = "wasi" 1751 | version = "0.9.0+wasi-snapshot-preview1" 1752 | source = "registry+https://github.com/rust-lang/crates.io-index" 1753 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" 1754 | 1755 | [[package]] 1756 | name = "wasm-bindgen" 1757 | version = "0.2.59" 1758 | source = "registry+https://github.com/rust-lang/crates.io-index" 1759 | checksum = "3557c397ab5a8e347d434782bcd31fc1483d927a6826804cec05cc792ee2519d" 1760 | dependencies = [ 1761 | "cfg-if", 1762 | "serde", 1763 | "serde_json", 1764 | "wasm-bindgen-macro", 1765 | ] 1766 | 1767 | [[package]] 1768 | name = "wasm-bindgen-backend" 1769 | version = "0.2.59" 1770 | source = "registry+https://github.com/rust-lang/crates.io-index" 1771 | checksum = "e0da9c9a19850d3af6df1cb9574970b566d617ecfaf36eb0b706b6f3ef9bd2f8" 1772 | dependencies = [ 1773 | "bumpalo", 1774 | "lazy_static", 1775 | "log 0.4.8", 1776 | "proc-macro2 1.0.9", 1777 | "quote 1.0.3", 1778 | "syn 1.0.16", 1779 | "wasm-bindgen-shared", 1780 | ] 1781 | 1782 | [[package]] 1783 | name = "wasm-bindgen-futures" 1784 | version = "0.4.9" 1785 | source = "registry+https://github.com/rust-lang/crates.io-index" 1786 | checksum = "457414a91863c0ec00090dba537f88ab955d93ca6555862c29b6d860990b8a8a" 1787 | dependencies = [ 1788 | "cfg-if", 1789 | "js-sys", 1790 | "wasm-bindgen", 1791 | "web-sys", 1792 | ] 1793 | 1794 | [[package]] 1795 | name = "wasm-bindgen-macro" 1796 | version = "0.2.59" 1797 | source = "registry+https://github.com/rust-lang/crates.io-index" 1798 | checksum = "0f6fde1d36e75a714b5fe0cffbb78978f222ea6baebb726af13c78869fdb4205" 1799 | dependencies = [ 1800 | "quote 1.0.3", 1801 | "wasm-bindgen-macro-support", 1802 | ] 1803 | 1804 | [[package]] 1805 | name = "wasm-bindgen-macro-support" 1806 | version = "0.2.59" 1807 | source = "registry+https://github.com/rust-lang/crates.io-index" 1808 | checksum = "25bda4168030a6412ea8a047e27238cadf56f0e53516e1e83fec0a8b7c786f6d" 1809 | dependencies = [ 1810 | "proc-macro2 1.0.9", 1811 | "quote 1.0.3", 1812 | "syn 1.0.16", 1813 | "wasm-bindgen-backend", 1814 | "wasm-bindgen-shared", 1815 | ] 1816 | 1817 | [[package]] 1818 | name = "wasm-bindgen-shared" 1819 | version = "0.2.59" 1820 | source = "registry+https://github.com/rust-lang/crates.io-index" 1821 | checksum = "fc9f36ad51f25b0219a3d4d13b90eb44cd075dff8b6280cca015775d7acaddd8" 1822 | 1823 | [[package]] 1824 | name = "web-sys" 1825 | version = "0.3.36" 1826 | source = "registry+https://github.com/rust-lang/crates.io-index" 1827 | checksum = "721c6263e2c66fd44501cc5efbfa2b7dfa775d13e4ea38c46299646ed1f9c70a" 1828 | dependencies = [ 1829 | "js-sys", 1830 | "wasm-bindgen", 1831 | ] 1832 | 1833 | [[package]] 1834 | name = "winapi" 1835 | version = "0.2.8" 1836 | source = "registry+https://github.com/rust-lang/crates.io-index" 1837 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" 1838 | 1839 | [[package]] 1840 | name = "winapi" 1841 | version = "0.3.8" 1842 | source = "registry+https://github.com/rust-lang/crates.io-index" 1843 | checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" 1844 | dependencies = [ 1845 | "winapi-i686-pc-windows-gnu", 1846 | "winapi-x86_64-pc-windows-gnu", 1847 | ] 1848 | 1849 | [[package]] 1850 | name = "winapi-build" 1851 | version = "0.1.1" 1852 | source = "registry+https://github.com/rust-lang/crates.io-index" 1853 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" 1854 | 1855 | [[package]] 1856 | name = "winapi-i686-pc-windows-gnu" 1857 | version = "0.4.0" 1858 | source = "registry+https://github.com/rust-lang/crates.io-index" 1859 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1860 | 1861 | [[package]] 1862 | name = "winapi-util" 1863 | version = "0.1.3" 1864 | source = "registry+https://github.com/rust-lang/crates.io-index" 1865 | checksum = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80" 1866 | dependencies = [ 1867 | "winapi 0.3.8", 1868 | ] 1869 | 1870 | [[package]] 1871 | name = "winapi-x86_64-pc-windows-gnu" 1872 | version = "0.4.0" 1873 | source = "registry+https://github.com/rust-lang/crates.io-index" 1874 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1875 | 1876 | [[package]] 1877 | name = "winreg" 1878 | version = "0.6.2" 1879 | source = "registry+https://github.com/rust-lang/crates.io-index" 1880 | checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9" 1881 | dependencies = [ 1882 | "winapi 0.3.8", 1883 | ] 1884 | 1885 | [[package]] 1886 | name = "ws2_32-sys" 1887 | version = "0.2.1" 1888 | source = "registry+https://github.com/rust-lang/crates.io-index" 1889 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" 1890 | dependencies = [ 1891 | "winapi 0.2.8", 1892 | "winapi-build", 1893 | ] 1894 | 1895 | [[package]] 1896 | name = "yansi" 1897 | version = "0.4.0" 1898 | source = "registry+https://github.com/rust-lang/crates.io-index" 1899 | checksum = "d60c3b48c9cdec42fb06b3b84b5b087405e1fa1c644a1af3930e4dfafe93de48" 1900 | 1901 | [[package]] 1902 | name = "yansi" 1903 | version = "0.5.0" 1904 | source = "registry+https://github.com/rust-lang/crates.io-index" 1905 | checksum = "9fc79f4a1e39857fc00c3f662cbf2651c771f00e9c15fe2abc341806bd46bd71" 1906 | --------------------------------------------------------------------------------