├── 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 | Y -------------------------------------------------------------------------------- /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 | 8 | 9 | 44 | 45 | -------------------------------------------------------------------------------- /src/views/user.page.prism: -------------------------------------------------------------------------------- 1 | 11 | 12 | 50 | -------------------------------------------------------------------------------- /src/views/comment.component.prism: -------------------------------------------------------------------------------- 1 | 10 | 11 | 41 | 42 | -------------------------------------------------------------------------------- /src/views/story.page.prism: -------------------------------------------------------------------------------- 1 | 9 | 10 | 51 | 52 | 63 | -------------------------------------------------------------------------------- /src/views/main.layout.prism: -------------------------------------------------------------------------------- 1 | 37 | 38 | 42 | 43 | -------------------------------------------------------------------------------- /src/views/story-preview.component.prism: -------------------------------------------------------------------------------- 1 | 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 | --------------------------------------------------------------------------------