├── src
├── api
│ ├── mod.rs
│ ├── request.rs
│ ├── stories.rs
│ └── items.rs
├── views
│ ├── assets
│ │ ├── favicon.ico
│ │ ├── favicon.svg
│ │ └── styles
│ │ │ └── main.css
│ ├── template.html
│ ├── index.page.prism
│ ├── user.page.prism
│ ├── comment.component.prism
│ ├── story.page.prism
│ ├── main.layout.prism
│ └── story-preview.component.prism
└── main.rs
├── .gitignore
├── prism.config.json
├── package.json
├── Cargo.toml
├── README.md
└── Cargo.lock
/src/api/mod.rs:
--------------------------------------------------------------------------------
1 | pub mod request;
2 | pub mod stories;
3 | pub mod items;
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /target
2 | .vscode
3 | private
4 | public
5 | src/templates
6 | .env
7 | node_modules
--------------------------------------------------------------------------------
/src/views/assets/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/kaleidawave/hackernews-prism/HEAD/src/views/assets/favicon.ico
--------------------------------------------------------------------------------
/src/views/assets/favicon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/views/assets/styles/main.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --yc-orange: #fb641e;
3 | }
4 |
5 | body {
6 | font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', sans-serif;
7 | }
8 |
9 | a {
10 | text-decoration: none;
11 | color: inherit;
12 | }
--------------------------------------------------------------------------------
/prism.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "projectPath": "./src/views",
3 | "templatePath": "./src/views/template.html",
4 | "backendLanguage": "rust",
5 | "serverOutputPath": "./src/templates",
6 | "outputPath": "./public",
7 | "minify": true,
8 | "versioning": false,
9 | "context": "isomorphic"
10 | }
--------------------------------------------------------------------------------
/src/views/template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "hackernews-prism",
3 | "private": true,
4 | "version": "1.0.0",
5 | "scripts": {
6 | "build-client": "prism compile-app",
7 | "build": "npm run build-client && cargo build",
8 | "client": "npm run build-client -- --context client --run",
9 | "start": "npm run build-client && cargo run"
10 | },
11 | "author": "kaleidawave",
12 | "license": "MIT",
13 | "devDependencies": {
14 | "@kaleidawave/prism": "^1.5.0"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Cargo.toml:
--------------------------------------------------------------------------------
1 | [package]
2 | name = "hackernews-prism"
3 | version = "0.1.0"
4 | authors = ["kaleidawave "]
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 | actix-web = "3"
11 | actix-files = "0.3"
12 | futures = "0.3.7"
13 | async-recursion = "0.2"
14 | env_logger = "0.8.1"
15 | lru = "0.6.1"
16 | html-escape = "0.2.6"
17 | lazy_static = "1.4.0"
18 | isahc = { version = "0.9.10", features = ["json"] }
19 | serde = { version = "1.0.117", features = ["derive"] }
20 | serde_json = "1.0.59"
21 | chrono = { version = "0.4.19", features = ["serde"] }
--------------------------------------------------------------------------------
/src/api/request.rs:
--------------------------------------------------------------------------------
1 | use isahc::prelude::*;
2 |
3 | #[derive(Debug)]
4 | pub enum GetError {
5 | Isahc(isahc::Error),
6 | SerdeJson(serde_json::Error),
7 | }
8 |
9 | impl From for GetError {
10 | fn from(error: isahc::Error) -> Self {
11 | GetError::Isahc(error)
12 | }
13 | }
14 |
15 | impl From for GetError {
16 | fn from(error: serde_json::Error) -> Self {
17 | GetError::SerdeJson(error)
18 | }
19 | }
20 |
21 | pub async fn make_json_get_request(url: &str) -> Result {
22 | let mut response = isahc::get_async(url).await?;
23 | return Ok(response.json::()?);
24 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Hackernews Prism
2 |
3 | A clone of [Hackernews](https://news.ycombinator.com/news) built with [Prism](https://github.com/kaleidawave/prism), [Rust](https://www.rust-lang.org/) and [Actix-web](https://github.com/actix/actix-web).
4 |
5 | Built using the [Hackernews REST API](https://github.com/HackerNews/API).
6 |
7 | Inspired by [hn.svelte.dev](https://github.com/sveltejs/hn.svelte.dev).
8 |
9 | This project shows the main benefits of using Prism which no other framework / compiler has:
10 |
11 | - Smallest bundle size
12 | - Isomorphic Rust compilation
13 | - JIT Hydration
14 |
15 | ### Run
16 |
17 | ```
18 | git clone https://github.com/kaleidawave/hackernews-prism.git
19 | cd hackernews-prism
20 | npm install
21 | npm run build
22 | npm start
23 | ```
--------------------------------------------------------------------------------
/src/api/stories.rs:
--------------------------------------------------------------------------------
1 | use crate::templates::story_preview_component_prism::IStoryItem;
2 | use crate::api::request;
3 | use crate::api::items::get_story_preview;
4 | use futures::future::try_join_all;
5 |
6 | const TOP_STORIES: &str = "https://hacker-news.firebaseio.com/v0/topstories.json?print=pretty";
7 | const NEW_STORIES: &str = "https://hacker-news.firebaseio.com/v0/newstories.json?print=pretty";
8 | const BEST_STORIES: &str = "https://hacker-news.firebaseio.com/v0/beststories.json?print=pretty";
9 |
10 | pub enum StorySorting {
11 | Top, New, Best
12 | }
13 |
14 | pub async fn get_stories(
15 | sort: StorySorting,
16 | ) -> Result, request::GetError> {
17 | let url = match sort {
18 | StorySorting::Best => BEST_STORIES,
19 | StorySorting::Top => TOP_STORIES,
20 | StorySorting::New => NEW_STORIES
21 | };
22 |
23 | let result = request::make_json_get_request::>(url).await;
24 | if let Err(e) = result {
25 | return Err(e);
26 | }
27 | let story_ids = result.unwrap();
28 | let first_story_ids = &story_ids[..story_ids.len().min(10)];
29 | let story_futures = first_story_ids.iter().map(|id| get_story_preview(*id as i32));
30 | return try_join_all(story_futures).await;
31 | }
32 |
--------------------------------------------------------------------------------
/src/views/index.page.prism:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 |
44 |
45 |
--------------------------------------------------------------------------------
/src/views/user.page.prism:
--------------------------------------------------------------------------------
1 |
2 | {id}:
3 | {about}
4 | {karma} karma
5 |
6 | -
7 |
8 |
9 |
10 |
11 |
12 |
50 |
--------------------------------------------------------------------------------
/src/views/comment.component.prism:
--------------------------------------------------------------------------------
1 |
2 |
3 | by {by}
4 |
9 |
10 |
11 |
41 |
42 |
--------------------------------------------------------------------------------
/src/views/story.page.prism:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
51 |
52 |
63 |
--------------------------------------------------------------------------------
/src/views/main.layout.prism:
--------------------------------------------------------------------------------
1 |
2 |
3 | Y
4 | Hacker News
5 |
18 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
38 |
42 |
43 |
--------------------------------------------------------------------------------
/src/views/story-preview.component.prism:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
18 |
19 |
20 |
95 |
96 |
114 |
--------------------------------------------------------------------------------
/src/api/items.rs:
--------------------------------------------------------------------------------
1 | use crate::api::request;
2 | use crate::templates::story_page_prism::IStoryPageData;
3 | use crate::templates::comment_component_prism::IComment;
4 | use crate::templates::story_preview_component_prism::IStoryItem;
5 | use crate::templates::user_page_prism::IUserData;
6 | use futures::future::try_join_all;
7 | use async_recursion::async_recursion;
8 | use lru::LruCache;
9 | use lazy_static::lazy_static;
10 | use std::sync::Mutex;
11 |
12 | lazy_static! {
13 | static ref STORY_CACHE: Mutex> = Mutex::new(
14 | LruCache::new(1000)
15 | );
16 | static ref STORY_PREVIEW_CACHE: Mutex> = Mutex::new(
17 | LruCache::new(1000)
18 | );
19 | }
20 |
21 | pub async fn get_story(
22 | id: i32,
23 | ) -> Result {
24 | if let Some(cached_story) = STORY_CACHE.lock().unwrap().get(&id) {
25 | return Ok(cached_story.clone());
26 | }
27 | let url = format!("https://hacker-news.firebaseio.com/v0/item/{}.json", id);
28 | let result = request::make_json_get_request::(&url).await;
29 | if result.is_err() {
30 | return result;
31 | } else {
32 | let mut story = result.unwrap();
33 | let comment_ids = &story.kids[..story.kids.len().min(3)];
34 | let comments = try_join_all(
35 | comment_ids.iter()
36 | .map(|id| get_comment(*id as i32, 3))
37 | ).await;
38 | if comments.is_err() {
39 | println!("{:?}", comments);
40 | // Ignore error at this point in time
41 | } else {
42 | story.comments = comments.unwrap();
43 | }
44 | // TODO could spawn thread as to not block while adding to cache ...?
45 | STORY_CACHE.lock().unwrap().put(id, story.clone());
46 | return Ok(story);
47 | }
48 | }
49 |
50 | // Same as get_story but does not add comments
51 | pub async fn get_story_preview(
52 | id: i32,
53 | ) -> Result {
54 | if let Some(cached_story) = STORY_PREVIEW_CACHE.lock().unwrap().get(&id) {
55 | return Ok(cached_story.clone());
56 | }
57 | let url = format!("https://hacker-news.firebaseio.com/v0/item/{}.json", id);
58 | let story_preview = request::make_json_get_request::(&url).await;
59 | // TODO could spawn thread as to not block while adding to cache ...?
60 | if let Ok(valid_story) = &story_preview {
61 | STORY_PREVIEW_CACHE.lock().unwrap().put(id, valid_story.clone());
62 | }
63 | return story_preview;
64 | }
65 |
66 | #[async_recursion]
67 | pub async fn get_comment(id: i32, depth: i32) -> Result {
68 | let url = format!("https://hacker-news.firebaseio.com/v0/item/{}.json", id);
69 | let result = request::make_json_get_request::(&url).await;
70 | if result.is_err() {
71 | return result;
72 | } else {
73 | let mut comment = result.unwrap();
74 | if depth > 0 {
75 | let sub_comment_ids = &comment.kids[..comment.kids.len().min(3)];
76 | let sub_comments = try_join_all(
77 | sub_comment_ids.iter()
78 | .map(|id| get_comment(*id as i32, depth - 1))
79 | ).await;
80 | if sub_comments.is_err() {
81 | println!("{:?}", sub_comments);
82 | // Ignore error at this point in time
83 | } else {
84 | comment.subComments = sub_comments.unwrap();
85 | }
86 | }
87 | return Ok(comment);
88 | }
89 | }
90 |
91 | pub async fn get_user(
92 | user_id: &String,
93 | ) -> Result {
94 | let url = format!("https://hacker-news.firebaseio.com/v0/user/{}.json", user_id);
95 | let result = request::make_json_get_request::(&url).await;
96 | if let Err(e) = result {
97 | return Err(e);
98 | }
99 | let mut user = result.unwrap();
100 | let first_story_ids = &user.kids[..user.kids.len().min(10)];
101 | let story_futures = first_story_ids.iter().map(|id| get_story_preview(*id as i32));
102 | // TODO stories do not appear ???
103 | match try_join_all(story_futures).await {
104 | Ok(stories) => {user.stories = stories},
105 | Err(err) => {println!("Getting user posts {:?}", err)}
106 | }
107 | return Ok(user);
108 | }
--------------------------------------------------------------------------------
/src/main.rs:
--------------------------------------------------------------------------------
1 | #![allow(non_snake_case)]
2 |
3 | use actix_files::Files;
4 | use actix_web::{get, middleware, web, App, HttpResponse, HttpServer};
5 | mod api;
6 | use api::stories::{get_stories, StorySorting};
7 | mod templates;
8 | use actix_web::middleware::Logger;
9 | use std::time::Instant;
10 | use templates::index_page_prism::{render_index_page_page, IIndexPageData};
11 | use templates::story_page_prism::{render_story_page_page, render_story_page_component_content};
12 | use templates::user_page_prism::render_user_page_page;
13 | use templates::story_preview_component_prism::render_story_preview_component_content;
14 |
15 | async fn best_page() -> HttpResponse {
16 | let now = Instant::now();
17 | let result = get_stories(StorySorting::Best).await;
18 | println!(
19 | "Getting best stories took {:.2} ns",
20 | now.elapsed().as_nanos()
21 | );
22 | if let Ok(stories) = result {
23 | let page = render_index_page_page(&IIndexPageData { stories });
24 | return HttpResponse::Ok().content_type("text/html").body(page);
25 | } else {
26 | println!("{:?} getting best stories", result);
27 | return HttpResponse::InternalServerError().finish();
28 | }
29 | }
30 |
31 | #[get("/new")]
32 | async fn new_page() -> HttpResponse {
33 | let result = get_stories(StorySorting::New).await;
34 | if let Ok(stories) = result {
35 | return HttpResponse::Ok()
36 | .content_type("text/html")
37 | .body(render_index_page_page(&IIndexPageData { stories }));
38 | } else {
39 | println!("{:?} getting new stories", result);
40 | return HttpResponse::InternalServerError().finish();
41 | }
42 | }
43 |
44 | #[get("/top")]
45 | async fn top_page() -> HttpResponse {
46 | let result = get_stories(StorySorting::Top).await;
47 | if let Ok(stories) = result {
48 | return HttpResponse::Ok()
49 | .content_type("text/html")
50 | .body(render_index_page_page(&IIndexPageData { stories }));
51 | } else {
52 | println!("{:?} getting top stories", result);
53 | return HttpResponse::InternalServerError().finish();
54 | }
55 | }
56 |
57 | #[get("/i/{storyID}")]
58 | async fn story_page(web::Path((story_id,)): web::Path<(i32,)>) -> HttpResponse {
59 | let now = Instant::now();
60 | let result = api::items::get_story(story_id).await;
61 | println!(
62 | "Getting full story {} took {:.2} ns",
63 | story_id,
64 | now.elapsed().as_nanos()
65 | );
66 | if let Ok(story) = result {
67 | HttpResponse::Ok()
68 | .content_type("text/html")
69 | .body(render_story_page_page(&story))
70 | } else {
71 | HttpResponse::InternalServerError().finish()
72 | }
73 | }
74 |
75 | #[get("/u/{userID}")]
76 | async fn user_page(web::Path((user_id,)): web::Path<(String,)>) -> HttpResponse {
77 | let now = Instant::now();
78 | let result = api::items::get_user(&user_id).await;
79 | println!(
80 | "Getting full user {} took {:.2} ns",
81 | user_id,
82 | now.elapsed().as_nanos()
83 | );
84 | if result.is_err() {
85 | println!("{:?}", result);
86 | return HttpResponse::InternalServerError().finish();
87 | }
88 | return HttpResponse::Ok()
89 | .content_type("text/html")
90 | .body(render_user_page_page(&result.unwrap()));
91 | }
92 |
93 | // Single story preview
94 | #[get("/story-preview/{storyID}")]
95 | async fn single_story_component(web::Path((story_id,)): web::Path<(i32,)>) -> HttpResponse {
96 | let result = api::items::get_story_preview(story_id).await;
97 | if let Ok(data) = result {
98 | HttpResponse::Ok()
99 | .content_type("text/html")
100 | .body(render_story_preview_component_content(&data))
101 | } else {
102 | HttpResponse::InternalServerError().finish()
103 | }
104 | }
105 |
106 | // Single story page
107 | #[get("/story/{storyID}")]
108 | async fn single_story_page(web::Path((story_id,)): web::Path<(i32,)>) -> HttpResponse {
109 | let result = api::items::get_story(story_id).await;
110 | if let Ok(data) = result {
111 | HttpResponse::Ok()
112 | .content_type("text/html")
113 | .body(render_story_page_component_content(&data))
114 | } else {
115 | HttpResponse::InternalServerError().finish()
116 | }
117 | }
118 |
119 | #[actix_web::main]
120 | async fn main() -> std::io::Result<()> {
121 | std::env::set_var("RUST_LOG", "actix_web=info");
122 | env_logger::init();
123 | println!("Running Hackernews on http://localhost");
124 | HttpServer::new(|| {
125 | App::new()
126 | .wrap(Logger::default())
127 | .wrap(middleware::Compress::default())
128 | .route("/", web::get().to(best_page))
129 | .route("/best", web::get().to(best_page))
130 | .service(new_page)
131 | .service(top_page)
132 | .service(story_page)
133 | .service(user_page)
134 | .service(single_story_component)
135 | .service(single_story_page)
136 | .service(Files::new("/", "public"))
137 | })
138 | .bind("0.0.0.0:80")?
139 | .run()
140 | .await
141 | }
142 |
--------------------------------------------------------------------------------
/Cargo.lock:
--------------------------------------------------------------------------------
1 | # This file is automatically @generated by Cargo.
2 | # It is not intended for manual editing.
3 | [[package]]
4 | name = "actix-codec"
5 | version = "0.3.0"
6 | source = "registry+https://github.com/rust-lang/crates.io-index"
7 | checksum = "78d1833b3838dbe990df0f1f87baf640cf6146e898166afe401839d1b001e570"
8 | dependencies = [
9 | "bitflags",
10 | "bytes",
11 | "futures-core",
12 | "futures-sink",
13 | "log",
14 | "pin-project 0.4.27",
15 | "tokio",
16 | "tokio-util",
17 | ]
18 |
19 | [[package]]
20 | name = "actix-connect"
21 | version = "2.0.0"
22 | source = "registry+https://github.com/rust-lang/crates.io-index"
23 | checksum = "177837a10863f15ba8d3ae3ec12fac1099099529ed20083a27fdfe247381d0dc"
24 | dependencies = [
25 | "actix-codec",
26 | "actix-rt",
27 | "actix-service",
28 | "actix-utils",
29 | "derive_more",
30 | "either",
31 | "futures-util",
32 | "http",
33 | "log",
34 | "trust-dns-proto",
35 | "trust-dns-resolver",
36 | ]
37 |
38 | [[package]]
39 | name = "actix-files"
40 | version = "0.3.0"
41 | source = "registry+https://github.com/rust-lang/crates.io-index"
42 | checksum = "8035f08f194893b199f4928b40425bd727c0257cf0fcf36f4ac214968d649ec7"
43 | dependencies = [
44 | "actix-http",
45 | "actix-service",
46 | "actix-web",
47 | "bitflags",
48 | "bytes",
49 | "derive_more",
50 | "futures-core",
51 | "futures-util",
52 | "log",
53 | "mime",
54 | "mime_guess",
55 | "percent-encoding",
56 | "v_htmlescape",
57 | ]
58 |
59 | [[package]]
60 | name = "actix-http"
61 | version = "2.1.0"
62 | source = "registry+https://github.com/rust-lang/crates.io-index"
63 | checksum = "404df68c297f73b8d36c9c9056404913d25905a8f80127b0e5fe147c9c4b9f02"
64 | dependencies = [
65 | "actix-codec",
66 | "actix-connect",
67 | "actix-rt",
68 | "actix-service",
69 | "actix-threadpool",
70 | "actix-utils",
71 | "base64",
72 | "bitflags",
73 | "brotli2",
74 | "bytes",
75 | "cookie",
76 | "copyless",
77 | "derive_more",
78 | "either",
79 | "encoding_rs",
80 | "flate2",
81 | "futures-channel",
82 | "futures-core",
83 | "futures-util",
84 | "fxhash",
85 | "h2",
86 | "http",
87 | "httparse",
88 | "indexmap",
89 | "itoa",
90 | "language-tags",
91 | "lazy_static",
92 | "log",
93 | "mime",
94 | "percent-encoding",
95 | "pin-project 1.0.1",
96 | "rand",
97 | "regex",
98 | "serde",
99 | "serde_json",
100 | "serde_urlencoded",
101 | "sha-1",
102 | "slab",
103 | "time 0.2.22",
104 | ]
105 |
106 | [[package]]
107 | name = "actix-macros"
108 | version = "0.1.2"
109 | source = "registry+https://github.com/rust-lang/crates.io-index"
110 | checksum = "a60f9ba7c4e6df97f3aacb14bb5c0cd7d98a49dcbaed0d7f292912ad9a6a3ed2"
111 | dependencies = [
112 | "quote",
113 | "syn",
114 | ]
115 |
116 | [[package]]
117 | name = "actix-router"
118 | version = "0.2.5"
119 | source = "registry+https://github.com/rust-lang/crates.io-index"
120 | checksum = "bbd1f7dbda1645bf7da33554db60891755f6c01c1b2169e2f4c492098d30c235"
121 | dependencies = [
122 | "bytestring",
123 | "http",
124 | "log",
125 | "regex",
126 | "serde",
127 | ]
128 |
129 | [[package]]
130 | name = "actix-rt"
131 | version = "1.1.1"
132 | source = "registry+https://github.com/rust-lang/crates.io-index"
133 | checksum = "143fcc2912e0d1de2bcf4e2f720d2a60c28652ab4179685a1ee159e0fb3db227"
134 | dependencies = [
135 | "actix-macros",
136 | "actix-threadpool",
137 | "copyless",
138 | "futures-channel",
139 | "futures-util",
140 | "smallvec",
141 | "tokio",
142 | ]
143 |
144 | [[package]]
145 | name = "actix-server"
146 | version = "1.0.4"
147 | source = "registry+https://github.com/rust-lang/crates.io-index"
148 | checksum = "45407e6e672ca24784baa667c5d32ef109ccdd8d5e0b5ebb9ef8a67f4dfb708e"
149 | dependencies = [
150 | "actix-codec",
151 | "actix-rt",
152 | "actix-service",
153 | "actix-utils",
154 | "futures-channel",
155 | "futures-util",
156 | "log",
157 | "mio",
158 | "mio-uds",
159 | "num_cpus",
160 | "slab",
161 | "socket2",
162 | ]
163 |
164 | [[package]]
165 | name = "actix-service"
166 | version = "1.0.6"
167 | source = "registry+https://github.com/rust-lang/crates.io-index"
168 | checksum = "0052435d581b5be835d11f4eb3bce417c8af18d87ddf8ace99f8e67e595882bb"
169 | dependencies = [
170 | "futures-util",
171 | "pin-project 0.4.27",
172 | ]
173 |
174 | [[package]]
175 | name = "actix-testing"
176 | version = "1.0.1"
177 | source = "registry+https://github.com/rust-lang/crates.io-index"
178 | checksum = "47239ca38799ab74ee6a8a94d1ce857014b2ac36f242f70f3f75a66f691e791c"
179 | dependencies = [
180 | "actix-macros",
181 | "actix-rt",
182 | "actix-server",
183 | "actix-service",
184 | "log",
185 | "socket2",
186 | ]
187 |
188 | [[package]]
189 | name = "actix-threadpool"
190 | version = "0.3.3"
191 | source = "registry+https://github.com/rust-lang/crates.io-index"
192 | checksum = "d209f04d002854b9afd3743032a27b066158817965bf5d036824d19ac2cc0e30"
193 | dependencies = [
194 | "derive_more",
195 | "futures-channel",
196 | "lazy_static",
197 | "log",
198 | "num_cpus",
199 | "parking_lot",
200 | "threadpool",
201 | ]
202 |
203 | [[package]]
204 | name = "actix-tls"
205 | version = "2.0.0"
206 | source = "registry+https://github.com/rust-lang/crates.io-index"
207 | checksum = "24789b7d7361cf5503a504ebe1c10806896f61e96eca9a7350e23001aca715fb"
208 | dependencies = [
209 | "actix-codec",
210 | "actix-service",
211 | "actix-utils",
212 | "futures-util",
213 | ]
214 |
215 | [[package]]
216 | name = "actix-utils"
217 | version = "2.0.0"
218 | source = "registry+https://github.com/rust-lang/crates.io-index"
219 | checksum = "2e9022dec56632d1d7979e59af14f0597a28a830a9c1c7fec8b2327eb9f16b5a"
220 | dependencies = [
221 | "actix-codec",
222 | "actix-rt",
223 | "actix-service",
224 | "bitflags",
225 | "bytes",
226 | "either",
227 | "futures-channel",
228 | "futures-sink",
229 | "futures-util",
230 | "log",
231 | "pin-project 0.4.27",
232 | "slab",
233 | ]
234 |
235 | [[package]]
236 | name = "actix-web"
237 | version = "3.2.0"
238 | source = "registry+https://github.com/rust-lang/crates.io-index"
239 | checksum = "88344b7a5ef27e5e09e73565379f69273dd3e2d29e82afc381b84d170d0a5631"
240 | dependencies = [
241 | "actix-codec",
242 | "actix-http",
243 | "actix-macros",
244 | "actix-router",
245 | "actix-rt",
246 | "actix-server",
247 | "actix-service",
248 | "actix-testing",
249 | "actix-threadpool",
250 | "actix-tls",
251 | "actix-utils",
252 | "actix-web-codegen",
253 | "awc",
254 | "bytes",
255 | "derive_more",
256 | "encoding_rs",
257 | "futures-channel",
258 | "futures-core",
259 | "futures-util",
260 | "fxhash",
261 | "log",
262 | "mime",
263 | "pin-project 1.0.1",
264 | "regex",
265 | "serde",
266 | "serde_json",
267 | "serde_urlencoded",
268 | "socket2",
269 | "time 0.2.22",
270 | "tinyvec 1.0.1",
271 | "url",
272 | ]
273 |
274 | [[package]]
275 | name = "actix-web-codegen"
276 | version = "0.4.0"
277 | source = "registry+https://github.com/rust-lang/crates.io-index"
278 | checksum = "ad26f77093333e0e7c6ffe54ebe3582d908a104e448723eec6d43d08b07143fb"
279 | dependencies = [
280 | "proc-macro2",
281 | "quote",
282 | "syn",
283 | ]
284 |
285 | [[package]]
286 | name = "addr2line"
287 | version = "0.14.0"
288 | source = "registry+https://github.com/rust-lang/crates.io-index"
289 | checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
290 | dependencies = [
291 | "gimli",
292 | ]
293 |
294 | [[package]]
295 | name = "adler"
296 | version = "0.2.3"
297 | source = "registry+https://github.com/rust-lang/crates.io-index"
298 | checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
299 |
300 | [[package]]
301 | name = "ahash"
302 | version = "0.4.6"
303 | source = "registry+https://github.com/rust-lang/crates.io-index"
304 | checksum = "f6789e291be47ace86a60303502173d84af8327e3627ecf334356ee0f87a164c"
305 |
306 | [[package]]
307 | name = "aho-corasick"
308 | version = "0.7.15"
309 | source = "registry+https://github.com/rust-lang/crates.io-index"
310 | checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5"
311 | dependencies = [
312 | "memchr",
313 | ]
314 |
315 | [[package]]
316 | name = "async-recursion"
317 | version = "0.2.0"
318 | source = "registry+https://github.com/rust-lang/crates.io-index"
319 | checksum = "394b41acee32ce53306b9abfa8ad4df10b73b3c003e5c5da4720cca722010878"
320 | dependencies = [
321 | "proc-macro2",
322 | "quote",
323 | "syn",
324 | ]
325 |
326 | [[package]]
327 | name = "async-trait"
328 | version = "0.1.41"
329 | source = "registry+https://github.com/rust-lang/crates.io-index"
330 | checksum = "b246867b8b3b6ae56035f1eb1ed557c1d8eae97f0d53696138a50fa0e3a3b8c0"
331 | dependencies = [
332 | "proc-macro2",
333 | "quote",
334 | "syn",
335 | ]
336 |
337 | [[package]]
338 | name = "atty"
339 | version = "0.2.14"
340 | source = "registry+https://github.com/rust-lang/crates.io-index"
341 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
342 | dependencies = [
343 | "hermit-abi",
344 | "libc",
345 | "winapi 0.3.9",
346 | ]
347 |
348 | [[package]]
349 | name = "autocfg"
350 | version = "1.0.1"
351 | source = "registry+https://github.com/rust-lang/crates.io-index"
352 | checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
353 |
354 | [[package]]
355 | name = "awc"
356 | version = "2.0.1"
357 | source = "registry+https://github.com/rust-lang/crates.io-index"
358 | checksum = "425980a1e58e5030a3e4b065a3d577c8f0e16142ea9d81f30614eae810c98577"
359 | dependencies = [
360 | "actix-codec",
361 | "actix-http",
362 | "actix-rt",
363 | "actix-service",
364 | "base64",
365 | "bytes",
366 | "cfg-if 1.0.0",
367 | "derive_more",
368 | "futures-core",
369 | "log",
370 | "mime",
371 | "percent-encoding",
372 | "rand",
373 | "serde",
374 | "serde_json",
375 | "serde_urlencoded",
376 | ]
377 |
378 | [[package]]
379 | name = "backtrace"
380 | version = "0.3.54"
381 | source = "registry+https://github.com/rust-lang/crates.io-index"
382 | checksum = "2baad346b2d4e94a24347adeee9c7a93f412ee94b9cc26e5b59dea23848e9f28"
383 | dependencies = [
384 | "addr2line",
385 | "cfg-if 1.0.0",
386 | "libc",
387 | "miniz_oxide",
388 | "object",
389 | "rustc-demangle",
390 | ]
391 |
392 | [[package]]
393 | name = "base-x"
394 | version = "0.2.7"
395 | source = "registry+https://github.com/rust-lang/crates.io-index"
396 | checksum = "c2734baf8ed08920ccecce1b48a2dfce4ac74a973144add031163bd21a1c5dab"
397 |
398 | [[package]]
399 | name = "base64"
400 | version = "0.13.0"
401 | source = "registry+https://github.com/rust-lang/crates.io-index"
402 | checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
403 |
404 | [[package]]
405 | name = "bitflags"
406 | version = "1.2.1"
407 | source = "registry+https://github.com/rust-lang/crates.io-index"
408 | checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
409 |
410 | [[package]]
411 | name = "block-buffer"
412 | version = "0.9.0"
413 | source = "registry+https://github.com/rust-lang/crates.io-index"
414 | checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
415 | dependencies = [
416 | "generic-array",
417 | ]
418 |
419 | [[package]]
420 | name = "brotli-sys"
421 | version = "0.3.2"
422 | source = "registry+https://github.com/rust-lang/crates.io-index"
423 | checksum = "4445dea95f4c2b41cde57cc9fee236ae4dbae88d8fcbdb4750fc1bb5d86aaecd"
424 | dependencies = [
425 | "cc",
426 | "libc",
427 | ]
428 |
429 | [[package]]
430 | name = "brotli2"
431 | version = "0.3.2"
432 | source = "registry+https://github.com/rust-lang/crates.io-index"
433 | checksum = "0cb036c3eade309815c15ddbacec5b22c4d1f3983a774ab2eac2e3e9ea85568e"
434 | dependencies = [
435 | "brotli-sys",
436 | "libc",
437 | ]
438 |
439 | [[package]]
440 | name = "buf-min"
441 | version = "0.1.1"
442 | source = "registry+https://github.com/rust-lang/crates.io-index"
443 | checksum = "b6ae7069aad07c7cdefe6a22a671f00650728bd2331a4cc62e1e5d0becdf9ca4"
444 | dependencies = [
445 | "bytes",
446 | ]
447 |
448 | [[package]]
449 | name = "bumpalo"
450 | version = "3.4.0"
451 | source = "registry+https://github.com/rust-lang/crates.io-index"
452 | checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
453 |
454 | [[package]]
455 | name = "byteorder"
456 | version = "1.3.4"
457 | source = "registry+https://github.com/rust-lang/crates.io-index"
458 | checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
459 |
460 | [[package]]
461 | name = "bytes"
462 | version = "0.5.6"
463 | source = "registry+https://github.com/rust-lang/crates.io-index"
464 | checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
465 |
466 | [[package]]
467 | name = "bytestring"
468 | version = "0.1.5"
469 | source = "registry+https://github.com/rust-lang/crates.io-index"
470 | checksum = "fc7c05fa5172da78a62d9949d662d2ac89d4cc7355d7b49adee5163f1fb3f363"
471 | dependencies = [
472 | "bytes",
473 | ]
474 |
475 | [[package]]
476 | name = "cc"
477 | version = "1.0.61"
478 | source = "registry+https://github.com/rust-lang/crates.io-index"
479 | checksum = "ed67cbde08356238e75fc4656be4749481eeffb09e19f320a25237d5221c985d"
480 |
481 | [[package]]
482 | name = "cfg-if"
483 | version = "0.1.10"
484 | source = "registry+https://github.com/rust-lang/crates.io-index"
485 | checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
486 |
487 | [[package]]
488 | name = "cfg-if"
489 | version = "1.0.0"
490 | source = "registry+https://github.com/rust-lang/crates.io-index"
491 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
492 |
493 | [[package]]
494 | name = "chrono"
495 | version = "0.4.19"
496 | source = "registry+https://github.com/rust-lang/crates.io-index"
497 | checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"
498 | dependencies = [
499 | "libc",
500 | "num-integer",
501 | "num-traits",
502 | "serde",
503 | "time 0.1.44",
504 | "winapi 0.3.9",
505 | ]
506 |
507 | [[package]]
508 | name = "cloudabi"
509 | version = "0.1.0"
510 | source = "registry+https://github.com/rust-lang/crates.io-index"
511 | checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
512 | dependencies = [
513 | "bitflags",
514 | ]
515 |
516 | [[package]]
517 | name = "const_fn"
518 | version = "0.4.3"
519 | source = "registry+https://github.com/rust-lang/crates.io-index"
520 | checksum = "c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab"
521 |
522 | [[package]]
523 | name = "cookie"
524 | version = "0.14.2"
525 | source = "registry+https://github.com/rust-lang/crates.io-index"
526 | checksum = "1373a16a4937bc34efec7b391f9c1500c30b8478a701a4f44c9165cc0475a6e0"
527 | dependencies = [
528 | "percent-encoding",
529 | "time 0.2.22",
530 | "version_check 0.9.2",
531 | ]
532 |
533 | [[package]]
534 | name = "copyless"
535 | version = "0.1.5"
536 | source = "registry+https://github.com/rust-lang/crates.io-index"
537 | checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536"
538 |
539 | [[package]]
540 | name = "cpuid-bool"
541 | version = "0.1.2"
542 | source = "registry+https://github.com/rust-lang/crates.io-index"
543 | checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
544 |
545 | [[package]]
546 | name = "crc32fast"
547 | version = "1.2.1"
548 | source = "registry+https://github.com/rust-lang/crates.io-index"
549 | checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a"
550 | dependencies = [
551 | "cfg-if 1.0.0",
552 | ]
553 |
554 | [[package]]
555 | name = "crossbeam-channel"
556 | version = "0.5.0"
557 | source = "registry+https://github.com/rust-lang/crates.io-index"
558 | checksum = "dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775"
559 | dependencies = [
560 | "cfg-if 1.0.0",
561 | "crossbeam-utils",
562 | ]
563 |
564 | [[package]]
565 | name = "crossbeam-utils"
566 | version = "0.8.0"
567 | source = "registry+https://github.com/rust-lang/crates.io-index"
568 | checksum = "ec91540d98355f690a86367e566ecad2e9e579f230230eb7c21398372be73ea5"
569 | dependencies = [
570 | "autocfg",
571 | "cfg-if 1.0.0",
572 | "const_fn",
573 | "lazy_static",
574 | ]
575 |
576 | [[package]]
577 | name = "curl"
578 | version = "0.4.34"
579 | source = "registry+https://github.com/rust-lang/crates.io-index"
580 | checksum = "e268162af1a5fe89917ae25ba3b0a77c8da752bdc58e7dbb4f15b91fbd33756e"
581 | dependencies = [
582 | "curl-sys",
583 | "libc",
584 | "openssl-probe",
585 | "openssl-sys",
586 | "schannel",
587 | "socket2",
588 | "winapi 0.3.9",
589 | ]
590 |
591 | [[package]]
592 | name = "curl-sys"
593 | version = "0.4.38+curl-7.73.0"
594 | source = "registry+https://github.com/rust-lang/crates.io-index"
595 | checksum = "498ecfb4f59997fd40023d62a9f1e506e768b2baeb59a1d311eb9751cdcd7e3f"
596 | dependencies = [
597 | "cc",
598 | "libc",
599 | "libnghttp2-sys",
600 | "libz-sys",
601 | "openssl-sys",
602 | "pkg-config",
603 | "vcpkg",
604 | "winapi 0.3.9",
605 | ]
606 |
607 | [[package]]
608 | name = "derive_more"
609 | version = "0.99.11"
610 | source = "registry+https://github.com/rust-lang/crates.io-index"
611 | checksum = "41cb0e6161ad61ed084a36ba71fbba9e3ac5aee3606fb607fe08da6acbcf3d8c"
612 | dependencies = [
613 | "proc-macro2",
614 | "quote",
615 | "syn",
616 | ]
617 |
618 | [[package]]
619 | name = "digest"
620 | version = "0.9.0"
621 | source = "registry+https://github.com/rust-lang/crates.io-index"
622 | checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
623 | dependencies = [
624 | "generic-array",
625 | ]
626 |
627 | [[package]]
628 | name = "discard"
629 | version = "1.0.4"
630 | source = "registry+https://github.com/rust-lang/crates.io-index"
631 | checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
632 |
633 | [[package]]
634 | name = "dtoa"
635 | version = "0.4.6"
636 | source = "registry+https://github.com/rust-lang/crates.io-index"
637 | checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
638 |
639 | [[package]]
640 | name = "either"
641 | version = "1.6.1"
642 | source = "registry+https://github.com/rust-lang/crates.io-index"
643 | checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
644 |
645 | [[package]]
646 | name = "encoding_rs"
647 | version = "0.8.26"
648 | source = "registry+https://github.com/rust-lang/crates.io-index"
649 | checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283"
650 | dependencies = [
651 | "cfg-if 1.0.0",
652 | ]
653 |
654 | [[package]]
655 | name = "enum-as-inner"
656 | version = "0.3.3"
657 | source = "registry+https://github.com/rust-lang/crates.io-index"
658 | checksum = "7c5f0096a91d210159eceb2ff5e1c4da18388a170e1e3ce948aac9c8fdbbf595"
659 | dependencies = [
660 | "heck",
661 | "proc-macro2",
662 | "quote",
663 | "syn",
664 | ]
665 |
666 | [[package]]
667 | name = "env_logger"
668 | version = "0.8.1"
669 | source = "registry+https://github.com/rust-lang/crates.io-index"
670 | checksum = "54532e3223c5af90a6a757c90b5c5521564b07e5e7a958681bcd2afad421cdcd"
671 | dependencies = [
672 | "atty",
673 | "humantime",
674 | "log",
675 | "regex",
676 | "termcolor",
677 | ]
678 |
679 | [[package]]
680 | name = "flate2"
681 | version = "1.0.19"
682 | source = "registry+https://github.com/rust-lang/crates.io-index"
683 | checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
684 | dependencies = [
685 | "cfg-if 1.0.0",
686 | "crc32fast",
687 | "libc",
688 | "miniz_oxide",
689 | ]
690 |
691 | [[package]]
692 | name = "fnv"
693 | version = "1.0.7"
694 | source = "registry+https://github.com/rust-lang/crates.io-index"
695 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
696 |
697 | [[package]]
698 | name = "fuchsia-zircon"
699 | version = "0.3.3"
700 | source = "registry+https://github.com/rust-lang/crates.io-index"
701 | checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
702 | dependencies = [
703 | "bitflags",
704 | "fuchsia-zircon-sys",
705 | ]
706 |
707 | [[package]]
708 | name = "fuchsia-zircon-sys"
709 | version = "0.3.3"
710 | source = "registry+https://github.com/rust-lang/crates.io-index"
711 | checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
712 |
713 | [[package]]
714 | name = "futures"
715 | version = "0.3.7"
716 | source = "registry+https://github.com/rust-lang/crates.io-index"
717 | checksum = "95314d38584ffbfda215621d723e0a3906f032e03ae5551e650058dac83d4797"
718 | dependencies = [
719 | "futures-channel",
720 | "futures-core",
721 | "futures-executor",
722 | "futures-io",
723 | "futures-sink",
724 | "futures-task",
725 | "futures-util",
726 | ]
727 |
728 | [[package]]
729 | name = "futures-channel"
730 | version = "0.3.7"
731 | source = "registry+https://github.com/rust-lang/crates.io-index"
732 | checksum = "0448174b01148032eed37ac4aed28963aaaa8cfa93569a08e5b479bbc6c2c151"
733 | dependencies = [
734 | "futures-core",
735 | "futures-sink",
736 | ]
737 |
738 | [[package]]
739 | name = "futures-core"
740 | version = "0.3.7"
741 | source = "registry+https://github.com/rust-lang/crates.io-index"
742 | checksum = "18eaa56102984bed2c88ea39026cff3ce3b4c7f508ca970cedf2450ea10d4e46"
743 |
744 | [[package]]
745 | name = "futures-executor"
746 | version = "0.3.7"
747 | source = "registry+https://github.com/rust-lang/crates.io-index"
748 | checksum = "f5f8e0c9258abaea85e78ebdda17ef9666d390e987f006be6080dfe354b708cb"
749 | dependencies = [
750 | "futures-core",
751 | "futures-task",
752 | "futures-util",
753 | ]
754 |
755 | [[package]]
756 | name = "futures-io"
757 | version = "0.3.7"
758 | source = "registry+https://github.com/rust-lang/crates.io-index"
759 | checksum = "6e1798854a4727ff944a7b12aa999f58ce7aa81db80d2dfaaf2ba06f065ddd2b"
760 |
761 | [[package]]
762 | name = "futures-macro"
763 | version = "0.3.7"
764 | source = "registry+https://github.com/rust-lang/crates.io-index"
765 | checksum = "e36fccf3fc58563b4a14d265027c627c3b665d7fed489427e88e7cc929559efe"
766 | dependencies = [
767 | "proc-macro-hack",
768 | "proc-macro2",
769 | "quote",
770 | "syn",
771 | ]
772 |
773 | [[package]]
774 | name = "futures-sink"
775 | version = "0.3.7"
776 | source = "registry+https://github.com/rust-lang/crates.io-index"
777 | checksum = "0e3ca3f17d6e8804ae5d3df7a7d35b2b3a6fe89dac84b31872720fc3060a0b11"
778 |
779 | [[package]]
780 | name = "futures-task"
781 | version = "0.3.7"
782 | source = "registry+https://github.com/rust-lang/crates.io-index"
783 | checksum = "96d502af37186c4fef99453df03e374683f8a1eec9dcc1e66b3b82dc8278ce3c"
784 | dependencies = [
785 | "once_cell",
786 | ]
787 |
788 | [[package]]
789 | name = "futures-util"
790 | version = "0.3.7"
791 | source = "registry+https://github.com/rust-lang/crates.io-index"
792 | checksum = "abcb44342f62e6f3e8ac427b8aa815f724fd705dfad060b18ac7866c15bb8e34"
793 | dependencies = [
794 | "futures-channel",
795 | "futures-core",
796 | "futures-io",
797 | "futures-macro",
798 | "futures-sink",
799 | "futures-task",
800 | "memchr",
801 | "pin-project 1.0.1",
802 | "pin-utils",
803 | "proc-macro-hack",
804 | "proc-macro-nested",
805 | "slab",
806 | ]
807 |
808 | [[package]]
809 | name = "fxhash"
810 | version = "0.2.1"
811 | source = "registry+https://github.com/rust-lang/crates.io-index"
812 | checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
813 | dependencies = [
814 | "byteorder",
815 | ]
816 |
817 | [[package]]
818 | name = "generic-array"
819 | version = "0.14.4"
820 | source = "registry+https://github.com/rust-lang/crates.io-index"
821 | checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817"
822 | dependencies = [
823 | "typenum",
824 | "version_check 0.9.2",
825 | ]
826 |
827 | [[package]]
828 | name = "getrandom"
829 | version = "0.1.15"
830 | source = "registry+https://github.com/rust-lang/crates.io-index"
831 | checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
832 | dependencies = [
833 | "cfg-if 0.1.10",
834 | "libc",
835 | "wasi 0.9.0+wasi-snapshot-preview1",
836 | ]
837 |
838 | [[package]]
839 | name = "gimli"
840 | version = "0.23.0"
841 | source = "registry+https://github.com/rust-lang/crates.io-index"
842 | checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
843 |
844 | [[package]]
845 | name = "h2"
846 | version = "0.2.7"
847 | source = "registry+https://github.com/rust-lang/crates.io-index"
848 | checksum = "5e4728fd124914ad25e99e3d15a9361a879f6620f63cb56bbb08f95abb97a535"
849 | dependencies = [
850 | "bytes",
851 | "fnv",
852 | "futures-core",
853 | "futures-sink",
854 | "futures-util",
855 | "http",
856 | "indexmap",
857 | "slab",
858 | "tokio",
859 | "tokio-util",
860 | "tracing",
861 | "tracing-futures",
862 | ]
863 |
864 | [[package]]
865 | name = "hackernews-prism"
866 | version = "0.1.0"
867 | dependencies = [
868 | "actix-files",
869 | "actix-web",
870 | "async-recursion",
871 | "chrono",
872 | "env_logger",
873 | "futures",
874 | "html-escape",
875 | "isahc",
876 | "lazy_static",
877 | "lru",
878 | "serde",
879 | "serde_json",
880 | ]
881 |
882 | [[package]]
883 | name = "hashbrown"
884 | version = "0.9.1"
885 | source = "registry+https://github.com/rust-lang/crates.io-index"
886 | checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
887 | dependencies = [
888 | "ahash",
889 | ]
890 |
891 | [[package]]
892 | name = "heck"
893 | version = "0.3.1"
894 | source = "registry+https://github.com/rust-lang/crates.io-index"
895 | checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
896 | dependencies = [
897 | "unicode-segmentation",
898 | ]
899 |
900 | [[package]]
901 | name = "hermit-abi"
902 | version = "0.1.17"
903 | source = "registry+https://github.com/rust-lang/crates.io-index"
904 | checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
905 | dependencies = [
906 | "libc",
907 | ]
908 |
909 | [[package]]
910 | name = "hostname"
911 | version = "0.3.1"
912 | source = "registry+https://github.com/rust-lang/crates.io-index"
913 | checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867"
914 | dependencies = [
915 | "libc",
916 | "match_cfg",
917 | "winapi 0.3.9",
918 | ]
919 |
920 | [[package]]
921 | name = "html-escape"
922 | version = "0.2.6"
923 | source = "registry+https://github.com/rust-lang/crates.io-index"
924 | checksum = "d348900ce941b7474395ba922ed3735a517df4546a2939ddb416ce85eeaa988e"
925 | dependencies = [
926 | "utf8-width",
927 | ]
928 |
929 | [[package]]
930 | name = "http"
931 | version = "0.2.1"
932 | source = "registry+https://github.com/rust-lang/crates.io-index"
933 | checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
934 | dependencies = [
935 | "bytes",
936 | "fnv",
937 | "itoa",
938 | ]
939 |
940 | [[package]]
941 | name = "httparse"
942 | version = "1.3.4"
943 | source = "registry+https://github.com/rust-lang/crates.io-index"
944 | checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
945 |
946 | [[package]]
947 | name = "humantime"
948 | version = "2.0.1"
949 | source = "registry+https://github.com/rust-lang/crates.io-index"
950 | checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
951 |
952 | [[package]]
953 | name = "idna"
954 | version = "0.2.0"
955 | source = "registry+https://github.com/rust-lang/crates.io-index"
956 | checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
957 | dependencies = [
958 | "matches",
959 | "unicode-bidi",
960 | "unicode-normalization",
961 | ]
962 |
963 | [[package]]
964 | name = "indexmap"
965 | version = "1.6.0"
966 | source = "registry+https://github.com/rust-lang/crates.io-index"
967 | checksum = "55e2e4c765aa53a0424761bf9f41aa7a6ac1efa87238f59560640e27fca028f2"
968 | dependencies = [
969 | "autocfg",
970 | "hashbrown",
971 | ]
972 |
973 | [[package]]
974 | name = "instant"
975 | version = "0.1.8"
976 | source = "registry+https://github.com/rust-lang/crates.io-index"
977 | checksum = "cb1fc4429a33e1f80d41dc9fea4d108a88bec1de8053878898ae448a0b52f613"
978 | dependencies = [
979 | "cfg-if 1.0.0",
980 | ]
981 |
982 | [[package]]
983 | name = "iovec"
984 | version = "0.1.4"
985 | source = "registry+https://github.com/rust-lang/crates.io-index"
986 | checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
987 | dependencies = [
988 | "libc",
989 | ]
990 |
991 | [[package]]
992 | name = "ipconfig"
993 | version = "0.2.2"
994 | source = "registry+https://github.com/rust-lang/crates.io-index"
995 | checksum = "f7e2f18aece9709094573a9f24f483c4f65caa4298e2f7ae1b71cc65d853fad7"
996 | dependencies = [
997 | "socket2",
998 | "widestring",
999 | "winapi 0.3.9",
1000 | "winreg",
1001 | ]
1002 |
1003 | [[package]]
1004 | name = "isahc"
1005 | version = "0.9.11"
1006 | source = "registry+https://github.com/rust-lang/crates.io-index"
1007 | checksum = "0cf84ee8215bcaa999a24870485ef49d051cd858985a80d123e56be2d921d811"
1008 | dependencies = [
1009 | "bytes",
1010 | "crossbeam-channel",
1011 | "crossbeam-utils",
1012 | "curl",
1013 | "curl-sys",
1014 | "encoding_rs",
1015 | "futures-channel",
1016 | "futures-io",
1017 | "futures-util",
1018 | "http",
1019 | "log",
1020 | "mime",
1021 | "once_cell",
1022 | "serde",
1023 | "serde_json",
1024 | "slab",
1025 | "sluice",
1026 | "tracing",
1027 | "tracing-futures",
1028 | ]
1029 |
1030 | [[package]]
1031 | name = "itoa"
1032 | version = "0.4.6"
1033 | source = "registry+https://github.com/rust-lang/crates.io-index"
1034 | checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
1035 |
1036 | [[package]]
1037 | name = "kernel32-sys"
1038 | version = "0.2.2"
1039 | source = "registry+https://github.com/rust-lang/crates.io-index"
1040 | checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
1041 | dependencies = [
1042 | "winapi 0.2.8",
1043 | "winapi-build",
1044 | ]
1045 |
1046 | [[package]]
1047 | name = "language-tags"
1048 | version = "0.2.2"
1049 | source = "registry+https://github.com/rust-lang/crates.io-index"
1050 | checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
1051 |
1052 | [[package]]
1053 | name = "lazy_static"
1054 | version = "1.4.0"
1055 | source = "registry+https://github.com/rust-lang/crates.io-index"
1056 | checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
1057 |
1058 | [[package]]
1059 | name = "libc"
1060 | version = "0.2.80"
1061 | source = "registry+https://github.com/rust-lang/crates.io-index"
1062 | checksum = "4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614"
1063 |
1064 | [[package]]
1065 | name = "libnghttp2-sys"
1066 | version = "0.1.4+1.41.0"
1067 | source = "registry+https://github.com/rust-lang/crates.io-index"
1068 | checksum = "03624ec6df166e79e139a2310ca213283d6b3c30810c54844f307086d4488df1"
1069 | dependencies = [
1070 | "cc",
1071 | "libc",
1072 | ]
1073 |
1074 | [[package]]
1075 | name = "libz-sys"
1076 | version = "1.1.2"
1077 | source = "registry+https://github.com/rust-lang/crates.io-index"
1078 | checksum = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
1079 | dependencies = [
1080 | "cc",
1081 | "libc",
1082 | "pkg-config",
1083 | "vcpkg",
1084 | ]
1085 |
1086 | [[package]]
1087 | name = "linked-hash-map"
1088 | version = "0.5.3"
1089 | source = "registry+https://github.com/rust-lang/crates.io-index"
1090 | checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
1091 |
1092 | [[package]]
1093 | name = "lock_api"
1094 | version = "0.4.1"
1095 | source = "registry+https://github.com/rust-lang/crates.io-index"
1096 | checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
1097 | dependencies = [
1098 | "scopeguard",
1099 | ]
1100 |
1101 | [[package]]
1102 | name = "log"
1103 | version = "0.4.11"
1104 | source = "registry+https://github.com/rust-lang/crates.io-index"
1105 | checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
1106 | dependencies = [
1107 | "cfg-if 0.1.10",
1108 | ]
1109 |
1110 | [[package]]
1111 | name = "lru"
1112 | version = "0.6.1"
1113 | source = "registry+https://github.com/rust-lang/crates.io-index"
1114 | checksum = "be716eb6878ca2263eb5d00a781aa13264a794f519fe6af4fbb2668b2d5441c0"
1115 | dependencies = [
1116 | "hashbrown",
1117 | ]
1118 |
1119 | [[package]]
1120 | name = "lru-cache"
1121 | version = "0.1.2"
1122 | source = "registry+https://github.com/rust-lang/crates.io-index"
1123 | checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c"
1124 | dependencies = [
1125 | "linked-hash-map",
1126 | ]
1127 |
1128 | [[package]]
1129 | name = "match_cfg"
1130 | version = "0.1.0"
1131 | source = "registry+https://github.com/rust-lang/crates.io-index"
1132 | checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
1133 |
1134 | [[package]]
1135 | name = "matches"
1136 | version = "0.1.8"
1137 | source = "registry+https://github.com/rust-lang/crates.io-index"
1138 | checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
1139 |
1140 | [[package]]
1141 | name = "memchr"
1142 | version = "2.3.4"
1143 | source = "registry+https://github.com/rust-lang/crates.io-index"
1144 | checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525"
1145 |
1146 | [[package]]
1147 | name = "mime"
1148 | version = "0.3.16"
1149 | source = "registry+https://github.com/rust-lang/crates.io-index"
1150 | checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
1151 |
1152 | [[package]]
1153 | name = "mime_guess"
1154 | version = "2.0.3"
1155 | source = "registry+https://github.com/rust-lang/crates.io-index"
1156 | checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
1157 | dependencies = [
1158 | "mime",
1159 | "unicase",
1160 | ]
1161 |
1162 | [[package]]
1163 | name = "miniz_oxide"
1164 | version = "0.4.3"
1165 | source = "registry+https://github.com/rust-lang/crates.io-index"
1166 | checksum = "0f2d26ec3309788e423cfbf68ad1800f061638098d76a83681af979dc4eda19d"
1167 | dependencies = [
1168 | "adler",
1169 | "autocfg",
1170 | ]
1171 |
1172 | [[package]]
1173 | name = "mio"
1174 | version = "0.6.22"
1175 | source = "registry+https://github.com/rust-lang/crates.io-index"
1176 | checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
1177 | dependencies = [
1178 | "cfg-if 0.1.10",
1179 | "fuchsia-zircon",
1180 | "fuchsia-zircon-sys",
1181 | "iovec",
1182 | "kernel32-sys",
1183 | "libc",
1184 | "log",
1185 | "miow",
1186 | "net2",
1187 | "slab",
1188 | "winapi 0.2.8",
1189 | ]
1190 |
1191 | [[package]]
1192 | name = "mio-uds"
1193 | version = "0.6.8"
1194 | source = "registry+https://github.com/rust-lang/crates.io-index"
1195 | checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0"
1196 | dependencies = [
1197 | "iovec",
1198 | "libc",
1199 | "mio",
1200 | ]
1201 |
1202 | [[package]]
1203 | name = "miow"
1204 | version = "0.2.1"
1205 | source = "registry+https://github.com/rust-lang/crates.io-index"
1206 | checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
1207 | dependencies = [
1208 | "kernel32-sys",
1209 | "net2",
1210 | "winapi 0.2.8",
1211 | "ws2_32-sys",
1212 | ]
1213 |
1214 | [[package]]
1215 | name = "net2"
1216 | version = "0.2.35"
1217 | source = "registry+https://github.com/rust-lang/crates.io-index"
1218 | checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
1219 | dependencies = [
1220 | "cfg-if 0.1.10",
1221 | "libc",
1222 | "winapi 0.3.9",
1223 | ]
1224 |
1225 | [[package]]
1226 | name = "nom"
1227 | version = "4.2.3"
1228 | source = "registry+https://github.com/rust-lang/crates.io-index"
1229 | checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
1230 | dependencies = [
1231 | "memchr",
1232 | "version_check 0.1.5",
1233 | ]
1234 |
1235 | [[package]]
1236 | name = "num-integer"
1237 | version = "0.1.44"
1238 | source = "registry+https://github.com/rust-lang/crates.io-index"
1239 | checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
1240 | dependencies = [
1241 | "autocfg",
1242 | "num-traits",
1243 | ]
1244 |
1245 | [[package]]
1246 | name = "num-traits"
1247 | version = "0.2.14"
1248 | source = "registry+https://github.com/rust-lang/crates.io-index"
1249 | checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
1250 | dependencies = [
1251 | "autocfg",
1252 | ]
1253 |
1254 | [[package]]
1255 | name = "num_cpus"
1256 | version = "1.13.0"
1257 | source = "registry+https://github.com/rust-lang/crates.io-index"
1258 | checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
1259 | dependencies = [
1260 | "hermit-abi",
1261 | "libc",
1262 | ]
1263 |
1264 | [[package]]
1265 | name = "object"
1266 | version = "0.22.0"
1267 | source = "registry+https://github.com/rust-lang/crates.io-index"
1268 | checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
1269 |
1270 | [[package]]
1271 | name = "once_cell"
1272 | version = "1.4.1"
1273 | source = "registry+https://github.com/rust-lang/crates.io-index"
1274 | checksum = "260e51e7efe62b592207e9e13a68e43692a7a279171d6ba57abd208bf23645ad"
1275 |
1276 | [[package]]
1277 | name = "opaque-debug"
1278 | version = "0.3.0"
1279 | source = "registry+https://github.com/rust-lang/crates.io-index"
1280 | checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
1281 |
1282 | [[package]]
1283 | name = "openssl-probe"
1284 | version = "0.1.2"
1285 | source = "registry+https://github.com/rust-lang/crates.io-index"
1286 | checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
1287 |
1288 | [[package]]
1289 | name = "openssl-sys"
1290 | version = "0.9.58"
1291 | source = "registry+https://github.com/rust-lang/crates.io-index"
1292 | checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
1293 | dependencies = [
1294 | "autocfg",
1295 | "cc",
1296 | "libc",
1297 | "pkg-config",
1298 | "vcpkg",
1299 | ]
1300 |
1301 | [[package]]
1302 | name = "parking_lot"
1303 | version = "0.11.0"
1304 | source = "registry+https://github.com/rust-lang/crates.io-index"
1305 | checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
1306 | dependencies = [
1307 | "instant",
1308 | "lock_api",
1309 | "parking_lot_core",
1310 | ]
1311 |
1312 | [[package]]
1313 | name = "parking_lot_core"
1314 | version = "0.8.0"
1315 | source = "registry+https://github.com/rust-lang/crates.io-index"
1316 | checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
1317 | dependencies = [
1318 | "cfg-if 0.1.10",
1319 | "cloudabi",
1320 | "instant",
1321 | "libc",
1322 | "redox_syscall",
1323 | "smallvec",
1324 | "winapi 0.3.9",
1325 | ]
1326 |
1327 | [[package]]
1328 | name = "percent-encoding"
1329 | version = "2.1.0"
1330 | source = "registry+https://github.com/rust-lang/crates.io-index"
1331 | checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
1332 |
1333 | [[package]]
1334 | name = "pin-project"
1335 | version = "0.4.27"
1336 | source = "registry+https://github.com/rust-lang/crates.io-index"
1337 | checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
1338 | dependencies = [
1339 | "pin-project-internal 0.4.27",
1340 | ]
1341 |
1342 | [[package]]
1343 | name = "pin-project"
1344 | version = "1.0.1"
1345 | source = "registry+https://github.com/rust-lang/crates.io-index"
1346 | checksum = "ee41d838744f60d959d7074e3afb6b35c7456d0f61cad38a24e35e6553f73841"
1347 | dependencies = [
1348 | "pin-project-internal 1.0.1",
1349 | ]
1350 |
1351 | [[package]]
1352 | name = "pin-project-internal"
1353 | version = "0.4.27"
1354 | source = "registry+https://github.com/rust-lang/crates.io-index"
1355 | checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
1356 | dependencies = [
1357 | "proc-macro2",
1358 | "quote",
1359 | "syn",
1360 | ]
1361 |
1362 | [[package]]
1363 | name = "pin-project-internal"
1364 | version = "1.0.1"
1365 | source = "registry+https://github.com/rust-lang/crates.io-index"
1366 | checksum = "81a4ffa594b66bff340084d4081df649a7dc049ac8d7fc458d8e628bfbbb2f86"
1367 | dependencies = [
1368 | "proc-macro2",
1369 | "quote",
1370 | "syn",
1371 | ]
1372 |
1373 | [[package]]
1374 | name = "pin-project-lite"
1375 | version = "0.1.11"
1376 | source = "registry+https://github.com/rust-lang/crates.io-index"
1377 | checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
1378 |
1379 | [[package]]
1380 | name = "pin-utils"
1381 | version = "0.1.0"
1382 | source = "registry+https://github.com/rust-lang/crates.io-index"
1383 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
1384 |
1385 | [[package]]
1386 | name = "pkg-config"
1387 | version = "0.3.19"
1388 | source = "registry+https://github.com/rust-lang/crates.io-index"
1389 | checksum = "3831453b3449ceb48b6d9c7ad7c96d5ea673e9b470a1dc578c2ce6521230884c"
1390 |
1391 | [[package]]
1392 | name = "ppv-lite86"
1393 | version = "0.2.10"
1394 | source = "registry+https://github.com/rust-lang/crates.io-index"
1395 | checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
1396 |
1397 | [[package]]
1398 | name = "proc-macro-hack"
1399 | version = "0.5.19"
1400 | source = "registry+https://github.com/rust-lang/crates.io-index"
1401 | checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
1402 |
1403 | [[package]]
1404 | name = "proc-macro-nested"
1405 | version = "0.1.6"
1406 | source = "registry+https://github.com/rust-lang/crates.io-index"
1407 | checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
1408 |
1409 | [[package]]
1410 | name = "proc-macro2"
1411 | version = "1.0.24"
1412 | source = "registry+https://github.com/rust-lang/crates.io-index"
1413 | checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
1414 | dependencies = [
1415 | "unicode-xid",
1416 | ]
1417 |
1418 | [[package]]
1419 | name = "quick-error"
1420 | version = "1.2.3"
1421 | source = "registry+https://github.com/rust-lang/crates.io-index"
1422 | checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
1423 |
1424 | [[package]]
1425 | name = "quote"
1426 | version = "1.0.7"
1427 | source = "registry+https://github.com/rust-lang/crates.io-index"
1428 | checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
1429 | dependencies = [
1430 | "proc-macro2",
1431 | ]
1432 |
1433 | [[package]]
1434 | name = "rand"
1435 | version = "0.7.3"
1436 | source = "registry+https://github.com/rust-lang/crates.io-index"
1437 | checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
1438 | dependencies = [
1439 | "getrandom",
1440 | "libc",
1441 | "rand_chacha",
1442 | "rand_core",
1443 | "rand_hc",
1444 | ]
1445 |
1446 | [[package]]
1447 | name = "rand_chacha"
1448 | version = "0.2.2"
1449 | source = "registry+https://github.com/rust-lang/crates.io-index"
1450 | checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
1451 | dependencies = [
1452 | "ppv-lite86",
1453 | "rand_core",
1454 | ]
1455 |
1456 | [[package]]
1457 | name = "rand_core"
1458 | version = "0.5.1"
1459 | source = "registry+https://github.com/rust-lang/crates.io-index"
1460 | checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
1461 | dependencies = [
1462 | "getrandom",
1463 | ]
1464 |
1465 | [[package]]
1466 | name = "rand_hc"
1467 | version = "0.2.0"
1468 | source = "registry+https://github.com/rust-lang/crates.io-index"
1469 | checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
1470 | dependencies = [
1471 | "rand_core",
1472 | ]
1473 |
1474 | [[package]]
1475 | name = "redox_syscall"
1476 | version = "0.1.57"
1477 | source = "registry+https://github.com/rust-lang/crates.io-index"
1478 | checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
1479 |
1480 | [[package]]
1481 | name = "regex"
1482 | version = "1.4.2"
1483 | source = "registry+https://github.com/rust-lang/crates.io-index"
1484 | checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
1485 | dependencies = [
1486 | "aho-corasick",
1487 | "memchr",
1488 | "regex-syntax",
1489 | "thread_local",
1490 | ]
1491 |
1492 | [[package]]
1493 | name = "regex-syntax"
1494 | version = "0.6.21"
1495 | source = "registry+https://github.com/rust-lang/crates.io-index"
1496 | checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
1497 |
1498 | [[package]]
1499 | name = "resolv-conf"
1500 | version = "0.6.3"
1501 | source = "registry+https://github.com/rust-lang/crates.io-index"
1502 | checksum = "11834e137f3b14e309437a8276714eed3a80d1ef894869e510f2c0c0b98b9f4a"
1503 | dependencies = [
1504 | "hostname",
1505 | "quick-error",
1506 | ]
1507 |
1508 | [[package]]
1509 | name = "rustc-demangle"
1510 | version = "0.1.18"
1511 | source = "registry+https://github.com/rust-lang/crates.io-index"
1512 | checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232"
1513 |
1514 | [[package]]
1515 | name = "rustc_version"
1516 | version = "0.2.3"
1517 | source = "registry+https://github.com/rust-lang/crates.io-index"
1518 | checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
1519 | dependencies = [
1520 | "semver",
1521 | ]
1522 |
1523 | [[package]]
1524 | name = "ryu"
1525 | version = "1.0.5"
1526 | source = "registry+https://github.com/rust-lang/crates.io-index"
1527 | checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
1528 |
1529 | [[package]]
1530 | name = "schannel"
1531 | version = "0.1.19"
1532 | source = "registry+https://github.com/rust-lang/crates.io-index"
1533 | checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
1534 | dependencies = [
1535 | "lazy_static",
1536 | "winapi 0.3.9",
1537 | ]
1538 |
1539 | [[package]]
1540 | name = "scopeguard"
1541 | version = "1.1.0"
1542 | source = "registry+https://github.com/rust-lang/crates.io-index"
1543 | checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
1544 |
1545 | [[package]]
1546 | name = "semver"
1547 | version = "0.9.0"
1548 | source = "registry+https://github.com/rust-lang/crates.io-index"
1549 | checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
1550 | dependencies = [
1551 | "semver-parser",
1552 | ]
1553 |
1554 | [[package]]
1555 | name = "semver-parser"
1556 | version = "0.7.0"
1557 | source = "registry+https://github.com/rust-lang/crates.io-index"
1558 | checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
1559 |
1560 | [[package]]
1561 | name = "serde"
1562 | version = "1.0.117"
1563 | source = "registry+https://github.com/rust-lang/crates.io-index"
1564 | checksum = "b88fa983de7720629c9387e9f517353ed404164b1e482c970a90c1a4aaf7dc1a"
1565 | dependencies = [
1566 | "serde_derive",
1567 | ]
1568 |
1569 | [[package]]
1570 | name = "serde_derive"
1571 | version = "1.0.117"
1572 | source = "registry+https://github.com/rust-lang/crates.io-index"
1573 | checksum = "cbd1ae72adb44aab48f325a02444a5fc079349a8d804c1fc922aed3f7454c74e"
1574 | dependencies = [
1575 | "proc-macro2",
1576 | "quote",
1577 | "syn",
1578 | ]
1579 |
1580 | [[package]]
1581 | name = "serde_json"
1582 | version = "1.0.59"
1583 | source = "registry+https://github.com/rust-lang/crates.io-index"
1584 | checksum = "dcac07dbffa1c65e7f816ab9eba78eb142c6d44410f4eeba1e26e4f5dfa56b95"
1585 | dependencies = [
1586 | "itoa",
1587 | "ryu",
1588 | "serde",
1589 | ]
1590 |
1591 | [[package]]
1592 | name = "serde_urlencoded"
1593 | version = "0.6.1"
1594 | source = "registry+https://github.com/rust-lang/crates.io-index"
1595 | checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
1596 | dependencies = [
1597 | "dtoa",
1598 | "itoa",
1599 | "serde",
1600 | "url",
1601 | ]
1602 |
1603 | [[package]]
1604 | name = "sha-1"
1605 | version = "0.9.2"
1606 | source = "registry+https://github.com/rust-lang/crates.io-index"
1607 | checksum = "ce3cdf1b5e620a498ee6f2a171885ac7e22f0e12089ec4b3d22b84921792507c"
1608 | dependencies = [
1609 | "block-buffer",
1610 | "cfg-if 1.0.0",
1611 | "cpuid-bool",
1612 | "digest",
1613 | "opaque-debug",
1614 | ]
1615 |
1616 | [[package]]
1617 | name = "sha1"
1618 | version = "0.6.0"
1619 | source = "registry+https://github.com/rust-lang/crates.io-index"
1620 | checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
1621 |
1622 | [[package]]
1623 | name = "signal-hook-registry"
1624 | version = "1.2.2"
1625 | source = "registry+https://github.com/rust-lang/crates.io-index"
1626 | checksum = "ce32ea0c6c56d5eacaeb814fbed9960547021d3edd010ded1425f180536b20ab"
1627 | dependencies = [
1628 | "libc",
1629 | ]
1630 |
1631 | [[package]]
1632 | name = "slab"
1633 | version = "0.4.2"
1634 | source = "registry+https://github.com/rust-lang/crates.io-index"
1635 | checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
1636 |
1637 | [[package]]
1638 | name = "sluice"
1639 | version = "0.5.2"
1640 | source = "registry+https://github.com/rust-lang/crates.io-index"
1641 | checksum = "fed13b7cb46f13a15db2c4740f087a848acc8b31af89f95844d40137451f89b1"
1642 | dependencies = [
1643 | "futures-channel",
1644 | "futures-core",
1645 | "futures-io",
1646 | "futures-util",
1647 | ]
1648 |
1649 | [[package]]
1650 | name = "smallvec"
1651 | version = "1.4.2"
1652 | source = "registry+https://github.com/rust-lang/crates.io-index"
1653 | checksum = "fbee7696b84bbf3d89a1c2eccff0850e3047ed46bfcd2e92c29a2d074d57e252"
1654 |
1655 | [[package]]
1656 | name = "socket2"
1657 | version = "0.3.15"
1658 | source = "registry+https://github.com/rust-lang/crates.io-index"
1659 | checksum = "b1fa70dc5c8104ec096f4fe7ede7a221d35ae13dcd19ba1ad9a81d2cab9a1c44"
1660 | dependencies = [
1661 | "cfg-if 0.1.10",
1662 | "libc",
1663 | "redox_syscall",
1664 | "winapi 0.3.9",
1665 | ]
1666 |
1667 | [[package]]
1668 | name = "standback"
1669 | version = "0.2.11"
1670 | source = "registry+https://github.com/rust-lang/crates.io-index"
1671 | checksum = "f4e0831040d2cf2bdfd51b844be71885783d489898a192f254ae25d57cce725c"
1672 | dependencies = [
1673 | "version_check 0.9.2",
1674 | ]
1675 |
1676 | [[package]]
1677 | name = "stdweb"
1678 | version = "0.4.20"
1679 | source = "registry+https://github.com/rust-lang/crates.io-index"
1680 | checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
1681 | dependencies = [
1682 | "discard",
1683 | "rustc_version",
1684 | "stdweb-derive",
1685 | "stdweb-internal-macros",
1686 | "stdweb-internal-runtime",
1687 | "wasm-bindgen",
1688 | ]
1689 |
1690 | [[package]]
1691 | name = "stdweb-derive"
1692 | version = "0.5.3"
1693 | source = "registry+https://github.com/rust-lang/crates.io-index"
1694 | checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
1695 | dependencies = [
1696 | "proc-macro2",
1697 | "quote",
1698 | "serde",
1699 | "serde_derive",
1700 | "syn",
1701 | ]
1702 |
1703 | [[package]]
1704 | name = "stdweb-internal-macros"
1705 | version = "0.2.9"
1706 | source = "registry+https://github.com/rust-lang/crates.io-index"
1707 | checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
1708 | dependencies = [
1709 | "base-x",
1710 | "proc-macro2",
1711 | "quote",
1712 | "serde",
1713 | "serde_derive",
1714 | "serde_json",
1715 | "sha1",
1716 | "syn",
1717 | ]
1718 |
1719 | [[package]]
1720 | name = "stdweb-internal-runtime"
1721 | version = "0.1.5"
1722 | source = "registry+https://github.com/rust-lang/crates.io-index"
1723 | checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
1724 |
1725 | [[package]]
1726 | name = "syn"
1727 | version = "1.0.48"
1728 | source = "registry+https://github.com/rust-lang/crates.io-index"
1729 | checksum = "cc371affeffc477f42a221a1e4297aedcea33d47d19b61455588bd9d8f6b19ac"
1730 | dependencies = [
1731 | "proc-macro2",
1732 | "quote",
1733 | "unicode-xid",
1734 | ]
1735 |
1736 | [[package]]
1737 | name = "termcolor"
1738 | version = "1.1.0"
1739 | source = "registry+https://github.com/rust-lang/crates.io-index"
1740 | checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
1741 | dependencies = [
1742 | "winapi-util",
1743 | ]
1744 |
1745 | [[package]]
1746 | name = "thiserror"
1747 | version = "1.0.22"
1748 | source = "registry+https://github.com/rust-lang/crates.io-index"
1749 | checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
1750 | dependencies = [
1751 | "thiserror-impl",
1752 | ]
1753 |
1754 | [[package]]
1755 | name = "thiserror-impl"
1756 | version = "1.0.22"
1757 | source = "registry+https://github.com/rust-lang/crates.io-index"
1758 | checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
1759 | dependencies = [
1760 | "proc-macro2",
1761 | "quote",
1762 | "syn",
1763 | ]
1764 |
1765 | [[package]]
1766 | name = "thread_local"
1767 | version = "1.0.1"
1768 | source = "registry+https://github.com/rust-lang/crates.io-index"
1769 | checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
1770 | dependencies = [
1771 | "lazy_static",
1772 | ]
1773 |
1774 | [[package]]
1775 | name = "threadpool"
1776 | version = "1.8.1"
1777 | source = "registry+https://github.com/rust-lang/crates.io-index"
1778 | checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
1779 | dependencies = [
1780 | "num_cpus",
1781 | ]
1782 |
1783 | [[package]]
1784 | name = "time"
1785 | version = "0.1.44"
1786 | source = "registry+https://github.com/rust-lang/crates.io-index"
1787 | checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
1788 | dependencies = [
1789 | "libc",
1790 | "wasi 0.10.0+wasi-snapshot-preview1",
1791 | "winapi 0.3.9",
1792 | ]
1793 |
1794 | [[package]]
1795 | name = "time"
1796 | version = "0.2.22"
1797 | source = "registry+https://github.com/rust-lang/crates.io-index"
1798 | checksum = "55b7151c9065e80917fbf285d9a5d1432f60db41d170ccafc749a136b41a93af"
1799 | dependencies = [
1800 | "const_fn",
1801 | "libc",
1802 | "standback",
1803 | "stdweb",
1804 | "time-macros",
1805 | "version_check 0.9.2",
1806 | "winapi 0.3.9",
1807 | ]
1808 |
1809 | [[package]]
1810 | name = "time-macros"
1811 | version = "0.1.1"
1812 | source = "registry+https://github.com/rust-lang/crates.io-index"
1813 | checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
1814 | dependencies = [
1815 | "proc-macro-hack",
1816 | "time-macros-impl",
1817 | ]
1818 |
1819 | [[package]]
1820 | name = "time-macros-impl"
1821 | version = "0.1.1"
1822 | source = "registry+https://github.com/rust-lang/crates.io-index"
1823 | checksum = "e5c3be1edfad6027c69f5491cf4cb310d1a71ecd6af742788c6ff8bced86b8fa"
1824 | dependencies = [
1825 | "proc-macro-hack",
1826 | "proc-macro2",
1827 | "quote",
1828 | "standback",
1829 | "syn",
1830 | ]
1831 |
1832 | [[package]]
1833 | name = "tinyvec"
1834 | version = "0.3.4"
1835 | source = "registry+https://github.com/rust-lang/crates.io-index"
1836 | checksum = "238ce071d267c5710f9d31451efec16c5ee22de34df17cc05e56cbc92e967117"
1837 |
1838 | [[package]]
1839 | name = "tinyvec"
1840 | version = "1.0.1"
1841 | source = "registry+https://github.com/rust-lang/crates.io-index"
1842 | checksum = "b78a366903f506d2ad52ca8dc552102ffdd3e937ba8a227f024dc1d1eae28575"
1843 | dependencies = [
1844 | "tinyvec_macros",
1845 | ]
1846 |
1847 | [[package]]
1848 | name = "tinyvec_macros"
1849 | version = "0.1.0"
1850 | source = "registry+https://github.com/rust-lang/crates.io-index"
1851 | checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
1852 |
1853 | [[package]]
1854 | name = "tokio"
1855 | version = "0.2.22"
1856 | source = "registry+https://github.com/rust-lang/crates.io-index"
1857 | checksum = "5d34ca54d84bf2b5b4d7d31e901a8464f7b60ac145a284fba25ceb801f2ddccd"
1858 | dependencies = [
1859 | "bytes",
1860 | "futures-core",
1861 | "iovec",
1862 | "lazy_static",
1863 | "libc",
1864 | "memchr",
1865 | "mio",
1866 | "mio-uds",
1867 | "pin-project-lite",
1868 | "signal-hook-registry",
1869 | "slab",
1870 | "winapi 0.3.9",
1871 | ]
1872 |
1873 | [[package]]
1874 | name = "tokio-util"
1875 | version = "0.3.1"
1876 | source = "registry+https://github.com/rust-lang/crates.io-index"
1877 | checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
1878 | dependencies = [
1879 | "bytes",
1880 | "futures-core",
1881 | "futures-sink",
1882 | "log",
1883 | "pin-project-lite",
1884 | "tokio",
1885 | ]
1886 |
1887 | [[package]]
1888 | name = "tracing"
1889 | version = "0.1.21"
1890 | source = "registry+https://github.com/rust-lang/crates.io-index"
1891 | checksum = "b0987850db3733619253fe60e17cb59b82d37c7e6c0236bb81e4d6b87c879f27"
1892 | dependencies = [
1893 | "cfg-if 0.1.10",
1894 | "log",
1895 | "pin-project-lite",
1896 | "tracing-attributes",
1897 | "tracing-core",
1898 | ]
1899 |
1900 | [[package]]
1901 | name = "tracing-attributes"
1902 | version = "0.1.11"
1903 | source = "registry+https://github.com/rust-lang/crates.io-index"
1904 | checksum = "80e0ccfc3378da0cce270c946b676a376943f5cd16aeba64568e7939806f4ada"
1905 | dependencies = [
1906 | "proc-macro2",
1907 | "quote",
1908 | "syn",
1909 | ]
1910 |
1911 | [[package]]
1912 | name = "tracing-core"
1913 | version = "0.1.17"
1914 | source = "registry+https://github.com/rust-lang/crates.io-index"
1915 | checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f"
1916 | dependencies = [
1917 | "lazy_static",
1918 | ]
1919 |
1920 | [[package]]
1921 | name = "tracing-futures"
1922 | version = "0.2.4"
1923 | source = "registry+https://github.com/rust-lang/crates.io-index"
1924 | checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
1925 | dependencies = [
1926 | "pin-project 0.4.27",
1927 | "tracing",
1928 | ]
1929 |
1930 | [[package]]
1931 | name = "trust-dns-proto"
1932 | version = "0.19.5"
1933 | source = "registry+https://github.com/rust-lang/crates.io-index"
1934 | checksum = "cdd7061ba6f4d4d9721afedffbfd403f20f39a4301fee1b70d6fcd09cca69f28"
1935 | dependencies = [
1936 | "async-trait",
1937 | "backtrace",
1938 | "enum-as-inner",
1939 | "futures",
1940 | "idna",
1941 | "lazy_static",
1942 | "log",
1943 | "rand",
1944 | "smallvec",
1945 | "thiserror",
1946 | "tokio",
1947 | "url",
1948 | ]
1949 |
1950 | [[package]]
1951 | name = "trust-dns-resolver"
1952 | version = "0.19.5"
1953 | source = "registry+https://github.com/rust-lang/crates.io-index"
1954 | checksum = "0f23cdfdc3d8300b3c50c9e84302d3bd6d860fb9529af84ace6cf9665f181b77"
1955 | dependencies = [
1956 | "backtrace",
1957 | "cfg-if 0.1.10",
1958 | "futures",
1959 | "ipconfig",
1960 | "lazy_static",
1961 | "log",
1962 | "lru-cache",
1963 | "resolv-conf",
1964 | "smallvec",
1965 | "thiserror",
1966 | "tokio",
1967 | "trust-dns-proto",
1968 | ]
1969 |
1970 | [[package]]
1971 | name = "typenum"
1972 | version = "1.12.0"
1973 | source = "registry+https://github.com/rust-lang/crates.io-index"
1974 | checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
1975 |
1976 | [[package]]
1977 | name = "unicase"
1978 | version = "2.6.0"
1979 | source = "registry+https://github.com/rust-lang/crates.io-index"
1980 | checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
1981 | dependencies = [
1982 | "version_check 0.9.2",
1983 | ]
1984 |
1985 | [[package]]
1986 | name = "unicode-bidi"
1987 | version = "0.3.4"
1988 | source = "registry+https://github.com/rust-lang/crates.io-index"
1989 | checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
1990 | dependencies = [
1991 | "matches",
1992 | ]
1993 |
1994 | [[package]]
1995 | name = "unicode-normalization"
1996 | version = "0.1.13"
1997 | source = "registry+https://github.com/rust-lang/crates.io-index"
1998 | checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
1999 | dependencies = [
2000 | "tinyvec 0.3.4",
2001 | ]
2002 |
2003 | [[package]]
2004 | name = "unicode-segmentation"
2005 | version = "1.6.0"
2006 | source = "registry+https://github.com/rust-lang/crates.io-index"
2007 | checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
2008 |
2009 | [[package]]
2010 | name = "unicode-xid"
2011 | version = "0.2.1"
2012 | source = "registry+https://github.com/rust-lang/crates.io-index"
2013 | checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
2014 |
2015 | [[package]]
2016 | name = "url"
2017 | version = "2.1.1"
2018 | source = "registry+https://github.com/rust-lang/crates.io-index"
2019 | checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
2020 | dependencies = [
2021 | "idna",
2022 | "matches",
2023 | "percent-encoding",
2024 | ]
2025 |
2026 | [[package]]
2027 | name = "utf8-width"
2028 | version = "0.1.4"
2029 | source = "registry+https://github.com/rust-lang/crates.io-index"
2030 | checksum = "9071ac216321a4470a69fb2b28cfc68dcd1a39acd877c8be8e014df6772d8efa"
2031 |
2032 | [[package]]
2033 | name = "v_escape"
2034 | version = "0.13.2"
2035 | source = "registry+https://github.com/rust-lang/crates.io-index"
2036 | checksum = "039a44473286eb84e4e74f90165feff67c802dbeced7ee4c5b00d719b0d0475e"
2037 | dependencies = [
2038 | "buf-min",
2039 | "v_escape_derive",
2040 | ]
2041 |
2042 | [[package]]
2043 | name = "v_escape_derive"
2044 | version = "0.8.4"
2045 | source = "registry+https://github.com/rust-lang/crates.io-index"
2046 | checksum = "c860ad1273f4eee7006cee05db20c9e60e5d24cba024a32e1094aa8e574f3668"
2047 | dependencies = [
2048 | "nom",
2049 | "proc-macro2",
2050 | "quote",
2051 | "syn",
2052 | ]
2053 |
2054 | [[package]]
2055 | name = "v_htmlescape"
2056 | version = "0.10.4"
2057 | source = "registry+https://github.com/rust-lang/crates.io-index"
2058 | checksum = "11d7c2a33ed7cf0dc1b42bcf39e01b6512f9df08f09e1cd8a49d9dc49a6a9482"
2059 | dependencies = [
2060 | "cfg-if 1.0.0",
2061 | "v_escape",
2062 | ]
2063 |
2064 | [[package]]
2065 | name = "vcpkg"
2066 | version = "0.2.10"
2067 | source = "registry+https://github.com/rust-lang/crates.io-index"
2068 | checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
2069 |
2070 | [[package]]
2071 | name = "version_check"
2072 | version = "0.1.5"
2073 | source = "registry+https://github.com/rust-lang/crates.io-index"
2074 | checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
2075 |
2076 | [[package]]
2077 | name = "version_check"
2078 | version = "0.9.2"
2079 | source = "registry+https://github.com/rust-lang/crates.io-index"
2080 | checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
2081 |
2082 | [[package]]
2083 | name = "wasi"
2084 | version = "0.9.0+wasi-snapshot-preview1"
2085 | source = "registry+https://github.com/rust-lang/crates.io-index"
2086 | checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
2087 |
2088 | [[package]]
2089 | name = "wasi"
2090 | version = "0.10.0+wasi-snapshot-preview1"
2091 | source = "registry+https://github.com/rust-lang/crates.io-index"
2092 | checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
2093 |
2094 | [[package]]
2095 | name = "wasm-bindgen"
2096 | version = "0.2.68"
2097 | source = "registry+https://github.com/rust-lang/crates.io-index"
2098 | checksum = "1ac64ead5ea5f05873d7c12b545865ca2b8d28adfc50a49b84770a3a97265d42"
2099 | dependencies = [
2100 | "cfg-if 0.1.10",
2101 | "wasm-bindgen-macro",
2102 | ]
2103 |
2104 | [[package]]
2105 | name = "wasm-bindgen-backend"
2106 | version = "0.2.68"
2107 | source = "registry+https://github.com/rust-lang/crates.io-index"
2108 | checksum = "f22b422e2a757c35a73774860af8e112bff612ce6cb604224e8e47641a9e4f68"
2109 | dependencies = [
2110 | "bumpalo",
2111 | "lazy_static",
2112 | "log",
2113 | "proc-macro2",
2114 | "quote",
2115 | "syn",
2116 | "wasm-bindgen-shared",
2117 | ]
2118 |
2119 | [[package]]
2120 | name = "wasm-bindgen-macro"
2121 | version = "0.2.68"
2122 | source = "registry+https://github.com/rust-lang/crates.io-index"
2123 | checksum = "6b13312a745c08c469f0b292dd2fcd6411dba5f7160f593da6ef69b64e407038"
2124 | dependencies = [
2125 | "quote",
2126 | "wasm-bindgen-macro-support",
2127 | ]
2128 |
2129 | [[package]]
2130 | name = "wasm-bindgen-macro-support"
2131 | version = "0.2.68"
2132 | source = "registry+https://github.com/rust-lang/crates.io-index"
2133 | checksum = "f249f06ef7ee334cc3b8ff031bfc11ec99d00f34d86da7498396dc1e3b1498fe"
2134 | dependencies = [
2135 | "proc-macro2",
2136 | "quote",
2137 | "syn",
2138 | "wasm-bindgen-backend",
2139 | "wasm-bindgen-shared",
2140 | ]
2141 |
2142 | [[package]]
2143 | name = "wasm-bindgen-shared"
2144 | version = "0.2.68"
2145 | source = "registry+https://github.com/rust-lang/crates.io-index"
2146 | checksum = "1d649a3145108d7d3fbcde896a468d1bd636791823c9921135218ad89be08307"
2147 |
2148 | [[package]]
2149 | name = "widestring"
2150 | version = "0.4.3"
2151 | source = "registry+https://github.com/rust-lang/crates.io-index"
2152 | checksum = "c168940144dd21fd8046987c16a46a33d5fc84eec29ef9dcddc2ac9e31526b7c"
2153 |
2154 | [[package]]
2155 | name = "winapi"
2156 | version = "0.2.8"
2157 | source = "registry+https://github.com/rust-lang/crates.io-index"
2158 | checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
2159 |
2160 | [[package]]
2161 | name = "winapi"
2162 | version = "0.3.9"
2163 | source = "registry+https://github.com/rust-lang/crates.io-index"
2164 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
2165 | dependencies = [
2166 | "winapi-i686-pc-windows-gnu",
2167 | "winapi-x86_64-pc-windows-gnu",
2168 | ]
2169 |
2170 | [[package]]
2171 | name = "winapi-build"
2172 | version = "0.1.1"
2173 | source = "registry+https://github.com/rust-lang/crates.io-index"
2174 | checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
2175 |
2176 | [[package]]
2177 | name = "winapi-i686-pc-windows-gnu"
2178 | version = "0.4.0"
2179 | source = "registry+https://github.com/rust-lang/crates.io-index"
2180 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
2181 |
2182 | [[package]]
2183 | name = "winapi-util"
2184 | version = "0.1.5"
2185 | source = "registry+https://github.com/rust-lang/crates.io-index"
2186 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
2187 | dependencies = [
2188 | "winapi 0.3.9",
2189 | ]
2190 |
2191 | [[package]]
2192 | name = "winapi-x86_64-pc-windows-gnu"
2193 | version = "0.4.0"
2194 | source = "registry+https://github.com/rust-lang/crates.io-index"
2195 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
2196 |
2197 | [[package]]
2198 | name = "winreg"
2199 | version = "0.6.2"
2200 | source = "registry+https://github.com/rust-lang/crates.io-index"
2201 | checksum = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
2202 | dependencies = [
2203 | "winapi 0.3.9",
2204 | ]
2205 |
2206 | [[package]]
2207 | name = "ws2_32-sys"
2208 | version = "0.2.1"
2209 | source = "registry+https://github.com/rust-lang/crates.io-index"
2210 | checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
2211 | dependencies = [
2212 | "winapi 0.2.8",
2213 | "winapi-build",
2214 | ]
2215 |
--------------------------------------------------------------------------------