├── migrations ├── .keep └── 2024-08-06-210538_create_rustaceans │ ├── down.sql │ └── up.sql ├── database.sqlite-wal ├── src ├── Readme.txt ├── schema.rs ├── models.rs ├── auth.rs ├── repositories.rs └── main.rs ├── Rocket.toml ├── database.sqlite ├── database.sqlite-shm ├── diesel.toml ├── .gitignore ├── Cargo.toml ├── README.md └── Cargo.lock /migrations/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /database.sqlite-wal: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/Readme.txt: -------------------------------------------------------------------------------- 1 | Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== -------------------------------------------------------------------------------- /Rocket.toml: -------------------------------------------------------------------------------- 1 | [global.databases] 2 | sqlite = { url = "./database.sqlite" } -------------------------------------------------------------------------------- /migrations/2024-08-06-210538_create_rustaceans/down.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE rustaceans -------------------------------------------------------------------------------- /database.sqlite: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/night-fury-3/rocket-app/HEAD/database.sqlite -------------------------------------------------------------------------------- /database.sqlite-shm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/night-fury-3/rocket-app/HEAD/database.sqlite-shm -------------------------------------------------------------------------------- /migrations/2024-08-06-210538_create_rustaceans/up.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE rustaceans ( 2 | id INTEGER PRIMARY KEY AUTOINCREMENT, 3 | name VARCHAR NOT NULL, 4 | email VARCHAR NOT NULL, 5 | created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 6 | ) -------------------------------------------------------------------------------- /src/schema.rs: -------------------------------------------------------------------------------- 1 | // @generated automatically by Diesel CLI. 2 | 3 | diesel::table! { 4 | rustaceans (id) { 5 | id -> Integer, 6 | name -> Text, 7 | email -> Text, 8 | created_at -> Timestamp, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /diesel.toml: -------------------------------------------------------------------------------- 1 | # For documentation on how to configure this file, 2 | # see https://diesel.rs/guides/configuring-diesel-cli 3 | 4 | [print_schema] 5 | file = "src/schema.rs" 6 | custom_type_derives = ["diesel::query_builder::QueryId", "Clone"] 7 | 8 | [migrations_directory] 9 | dir = "/home/osboxes/Documents/dev/Rust/Rust-Course/rocket-app/migrations" 10 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | debug/ 4 | target/ 5 | 6 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 7 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 8 | Cargo.lock 9 | 10 | # These are backup files generated by rustfmt 11 | **/*.rs.bk 12 | 13 | # MSVC Windows builds of rustc generate these, which store debugging information 14 | *.pdb -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rocket-app" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 | 8 | [dependencies] 9 | rocket = { version = "0.5.0-rc", features = ["json"] } 10 | serde = { version = "1.0", features = ["derive"] } 11 | serde_json = "1.0" 12 | base64 = "0.20" 13 | diesel = { version = "2.0", features = ["sqlite", "r2d2"] } 14 | rocket_sync_db_pools = { version = "0.1.0-rc", features = ["diesel_sqlite_pool"] } 15 | diesel_migrations = "2.0" -------------------------------------------------------------------------------- /src/models.rs: -------------------------------------------------------------------------------- 1 | use super::schema::rustaceans; 2 | use diesel::{prelude::Insertable, Queryable}; 3 | use serde::{Deserialize, Serialize}; 4 | 5 | #[derive(Serialize, Deserialize, Queryable)] 6 | pub struct Rustacean { 7 | #[serde(skip_deserializing)] 8 | pub id: i32, 9 | pub name: String, 10 | pub email: String, 11 | #[serde(skip_deserializing)] 12 | pub created_at: String, 13 | } 14 | 15 | #[derive(Deserialize, Insertable)] 16 | #[table_name = "rustaceans"] 17 | pub struct NewRustacean { 18 | pub name: String, 19 | pub email: String, 20 | } 21 | -------------------------------------------------------------------------------- /src/auth.rs: -------------------------------------------------------------------------------- 1 | use rocket::http::Status; 2 | use rocket::request::{FromRequest, Outcome, Request}; 3 | 4 | pub struct BasicAuth { 5 | pub username: String, 6 | pub password: String, 7 | } 8 | 9 | impl BasicAuth { 10 | fn from_authorization_header(header: &str) -> Option { 11 | let split = header.split_whitespace().collect::>(); 12 | if split.len() != 2 { 13 | return None; 14 | } 15 | if split[0] != "Basic" { 16 | return None; 17 | } 18 | 19 | Self::from_base64_encoded(split[1]) 20 | } 21 | 22 | fn from_base64_encoded(base64_string: &str) -> Option { 23 | let decoded = base64::decode(base64_string).ok()?; 24 | let decoded_str = String::from_utf8(decoded).ok()?; 25 | let split = decoded_str.split(":").collect::>(); 26 | // If exactly username & password pair are present 27 | if split.len() != 2 { 28 | return None; 29 | } 30 | 31 | let (username, password) = (split[0].to_string(), split[1].to_string()); 32 | 33 | Some(BasicAuth { username, password }) 34 | } 35 | } 36 | 37 | #[rocket::async_trait] 38 | impl<'r> FromRequest<'r> for BasicAuth { 39 | type Error = (); 40 | 41 | async fn from_request(request: &'r Request<'_>) -> Outcome { 42 | let auth_header = request.headers().get_one("Authorization"); 43 | if let Some(auth_header) = auth_header { 44 | if let Some(auth) = Self::from_authorization_header(auth_header) { 45 | return Outcome::Success(auth); 46 | } 47 | } 48 | 49 | Outcome::Error((Status::Unauthorized, ())) 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/repositories.rs: -------------------------------------------------------------------------------- 1 | use diesel::prelude::*; 2 | use diesel::{QueryResult, SqliteConnection}; 3 | 4 | use crate::models::NewRustacean; 5 | use crate::{models::Rustacean, schema::rustaceans}; 6 | 7 | pub struct RustaceanRepository; 8 | 9 | impl RustaceanRepository { 10 | pub fn find(c: &mut SqliteConnection, id: i32) -> QueryResult { 11 | rustaceans::table.find(id).get_result::(c) 12 | } 13 | 14 | pub fn find_multiple(c: &mut SqliteConnection, limit: i64) -> QueryResult> { 15 | rustaceans::table.limit(limit).load::(c) 16 | } 17 | 18 | pub fn create(c: &mut SqliteConnection, new_rustacean: NewRustacean) -> QueryResult { 19 | diesel::insert_into(rustaceans::table) 20 | .values(new_rustacean) 21 | .execute(c)?; 22 | 23 | let last_id = Self::last_inserted_id(c)?; 24 | Self::find(c, last_id) 25 | } 26 | 27 | pub fn save(c: &mut SqliteConnection, id: i32, rustacean: Rustacean) -> QueryResult { 28 | diesel::update(rustaceans::table.find(id)) 29 | .set(( 30 | rustaceans::email.eq(rustacean.email.to_owned()), 31 | rustaceans::name.eq(rustacean.name.to_owned()), 32 | )) 33 | .execute(c)?; 34 | 35 | Self::find(c, id) 36 | } 37 | 38 | pub fn delete(c: &mut SqliteConnection, id: i32) -> QueryResult { 39 | diesel::delete(rustaceans::table.find(id)).execute(c) 40 | } 41 | 42 | fn last_inserted_id(c: &mut SqliteConnection) -> QueryResult { 43 | rustaceans::table 44 | .select(rustaceans::id) 45 | .order(rustaceans::id.desc()) 46 | .first(c) 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # RocketApp 2 | 3 | ![License badge](https://img.shields.io/badge/license-MIT-blue.svg) 4 | ![Rust Version](https://img.shields.io/badge/rustc-1.XX.X+-informational) 5 | 6 | ## Overview 7 | 8 | **RocketApp** is a backend service built using the [Rocket](https://rocket.rs/) framework in Rust. It aims to provide a robust and performant API for managing user-generated content. The project focuses on high performance, scalability, and security, making it ideal for applications that require reliable and efficient data handling. 9 | 10 | ## Table of Contents 11 | 12 | - [Features](#features) 13 | - [Installation](#installation) 14 | - [Usage](#usage) 15 | - [Configuration](#configuration) 16 | - [Contributing](#contributing) 17 | - [License](#license) 18 | - [Contact](#contact) 19 | 20 | ## Features 21 | 22 | - **User Authentication**: Secure login and registration functionality. 23 | - **Data Management**: CRUD operations for user data and content. 24 | - **Scalable Architecture**: Designed to handle high traffic with ease. 25 | 26 | ## Installation 27 | 28 | ### Prerequisites 29 | 30 | Ensure you have the following installed on your machine: 31 | 32 | - [Rust and Cargo](https://www.rust-lang.org/tools/install) 33 | - Rocket framework (comes with Cargo) 34 | - Dependencies as listed in `Cargo.toml` 35 | 36 | ### Clone the Repository 37 | 38 | ```bash 39 | git clone https://github.com/your-username/rocket-app.git 40 | cd rocket-app 41 | ``` 42 | 43 | ### Build the Project 44 | 45 | ```bash 46 | cargo build --release 47 | ``` 48 | 49 | ## Usage 50 | 51 | To run the project locally, execute the following command: 52 | 53 | ```bash 54 | cargo run 55 | ``` 56 | 57 | The server will start and listen on `http://localhost:8000`. 58 | 59 | ### API Endpoints 60 | 61 | - `GET /users`: Fetch a list of all users. 62 | - `POST /users`: Create a new user. 63 | - `GET /users/:id`: Retrieve a specific user's details. 64 | - `PUT /users/:id`: Update a user's information. 65 | - `DELETE /users/:id`: Remove a user from the system. 66 | 67 | ## Configuration 68 | 69 | Configuration settings can be found in the `Rocket.toml` file. Modify these settings to suit your development and production environments, such as database connections, port numbers, and environment settings. 70 | 71 | ## Contributing 72 | 73 | Contributions are welcome! Please follow these steps to contribute: 74 | 75 | 1. Fork the repository. 76 | 2. Create a new branch for your feature or bug fix. 77 | 3. Commit your changes and push to your fork. 78 | 4. Submit a pull request with a detailed explanation of your changes. 79 | 80 | ## License 81 | 82 | This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details. 83 | -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | #[macro_use] 2 | extern crate rocket; 3 | 4 | mod auth; 5 | mod models; 6 | mod repositories; 7 | mod schema; 8 | 9 | use auth::BasicAuth; 10 | use models::{NewRustacean, Rustacean}; 11 | use repositories::RustaceanRepository; 12 | use rocket::fairing::AdHoc; 13 | use rocket::http::Status; 14 | use rocket::response::status::{self, Custom}; 15 | use rocket::serde::json::{json, Json, Value}; 16 | use rocket::{Build, Rocket}; 17 | use rocket_sync_db_pools::database; 18 | use schema::rustaceans; 19 | 20 | #[database("sqlite")] 21 | struct DbConn(diesel::SqliteConnection); 22 | 23 | #[get("/rustaceans")] 24 | async fn get_rustaceans(_auth: BasicAuth, db: DbConn) -> Result> { 25 | db.run(|c| { 26 | RustaceanRepository::find_multiple(c, 1000) 27 | .map(|rustacean| json!(rustacean)) 28 | .map_err(|e| Custom(Status::InternalServerError, json!(e.to_string()))) 29 | }) 30 | .await 31 | } 32 | #[get("/rustaceans/")] 33 | async fn view_rustacean(id: i32, _auth: BasicAuth, db: DbConn) -> Result> { 34 | db.run(move |c| { 35 | RustaceanRepository::find(c, id) 36 | .map(|rustacean| json!(rustacean)) 37 | .map_err(|e| Custom(Status::InternalServerError, json!(e.to_string()))) 38 | }) 39 | .await 40 | } 41 | #[post("/rustaceans", format = "json", data = "")] 42 | async fn create_rustacean( 43 | _auth: BasicAuth, 44 | db: DbConn, 45 | new_rustacean: Json, 46 | ) -> Result> { 47 | db.run(|c| { 48 | RustaceanRepository::create(c, new_rustacean.into_inner()) 49 | .map(|rustacean| json!(rustacean)) 50 | .map_err(|e| Custom(Status::InternalServerError, json!(e.to_string()))) 51 | }) 52 | .await 53 | } 54 | #[put("/rustaceans/", format = "json", data = "")] 55 | async fn update_rustacean( 56 | id: i32, 57 | _auth: BasicAuth, 58 | db: DbConn, 59 | rustacean: Json, 60 | ) -> Result> { 61 | db.run(move |c| { 62 | RustaceanRepository::save(c, id, rustacean.into_inner()) 63 | .map(|rustacean| json!(rustacean)) 64 | .map_err(|e| Custom(Status::InternalServerError, json!(e.to_string()))) 65 | }) 66 | .await 67 | } 68 | #[delete("/rustaceans/")] 69 | async fn delete_rustacean( 70 | id: i32, 71 | _auth: BasicAuth, 72 | db: DbConn, 73 | ) -> Result> { 74 | db.run(move |c| { 75 | RustaceanRepository::delete(c, id) 76 | .map(|_| status::NoContent) 77 | .map_err(|e| Custom(Status::InternalServerError, json!(e.to_string()))) 78 | }) 79 | .await 80 | } 81 | 82 | #[catch(404)] 83 | fn not_found() -> Value { 84 | json!("Not found!") 85 | } 86 | 87 | async fn run_db_migrations(rocket: Rocket) -> Rocket { 88 | use diesel_migrations::{embed_migrations, EmbeddedMigrations, MigrationHarness}; 89 | 90 | const MIGRATIONS: EmbeddedMigrations = embed_migrations!(); 91 | 92 | DbConn::get_one(&rocket) 93 | .await 94 | .expect("Unable to retrieve connection") 95 | .run(|c| { 96 | c.run_pending_migrations(MIGRATIONS) 97 | .expect("Migrations failed"); 98 | }) 99 | .await; 100 | 101 | rocket 102 | } 103 | 104 | #[rocket::main] 105 | async fn main() { 106 | let _ = rocket::build() 107 | .mount( 108 | "/", 109 | routes![ 110 | get_rustaceans, 111 | view_rustacean, 112 | create_rustacean, 113 | update_rustacean, 114 | delete_rustacean 115 | ], 116 | ) 117 | .register("/", catchers![not_found]) 118 | .attach(DbConn::fairing()) 119 | .attach(AdHoc::on_ignite("Diesel migrations", run_db_migrations)) 120 | .launch() 121 | .await; 122 | } 123 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 3 4 | 5 | [[package]] 6 | name = "addr2line" 7 | version = "0.22.0" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" 10 | dependencies = [ 11 | "gimli", 12 | ] 13 | 14 | [[package]] 15 | name = "adler" 16 | version = "1.0.2" 17 | source = "registry+https://github.com/rust-lang/crates.io-index" 18 | checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" 19 | 20 | [[package]] 21 | name = "aho-corasick" 22 | version = "1.1.3" 23 | source = "registry+https://github.com/rust-lang/crates.io-index" 24 | checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" 25 | dependencies = [ 26 | "memchr", 27 | ] 28 | 29 | [[package]] 30 | name = "async-stream" 31 | version = "0.3.5" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" 34 | dependencies = [ 35 | "async-stream-impl", 36 | "futures-core", 37 | "pin-project-lite", 38 | ] 39 | 40 | [[package]] 41 | name = "async-stream-impl" 42 | version = "0.3.5" 43 | source = "registry+https://github.com/rust-lang/crates.io-index" 44 | checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" 45 | dependencies = [ 46 | "proc-macro2", 47 | "quote", 48 | "syn", 49 | ] 50 | 51 | [[package]] 52 | name = "async-trait" 53 | version = "0.1.81" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" 56 | dependencies = [ 57 | "proc-macro2", 58 | "quote", 59 | "syn", 60 | ] 61 | 62 | [[package]] 63 | name = "atomic" 64 | version = "0.5.3" 65 | source = "registry+https://github.com/rust-lang/crates.io-index" 66 | checksum = "c59bdb34bc650a32731b31bd8f0829cc15d24a708ee31559e0bb34f2bc320cba" 67 | 68 | [[package]] 69 | name = "atomic" 70 | version = "0.6.0" 71 | source = "registry+https://github.com/rust-lang/crates.io-index" 72 | checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994" 73 | dependencies = [ 74 | "bytemuck", 75 | ] 76 | 77 | [[package]] 78 | name = "autocfg" 79 | version = "1.3.0" 80 | source = "registry+https://github.com/rust-lang/crates.io-index" 81 | checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" 82 | 83 | [[package]] 84 | name = "backtrace" 85 | version = "0.3.73" 86 | source = "registry+https://github.com/rust-lang/crates.io-index" 87 | checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" 88 | dependencies = [ 89 | "addr2line", 90 | "cc", 91 | "cfg-if", 92 | "libc", 93 | "miniz_oxide", 94 | "object", 95 | "rustc-demangle", 96 | ] 97 | 98 | [[package]] 99 | name = "base64" 100 | version = "0.20.0" 101 | source = "registry+https://github.com/rust-lang/crates.io-index" 102 | checksum = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5" 103 | 104 | [[package]] 105 | name = "binascii" 106 | version = "0.1.4" 107 | source = "registry+https://github.com/rust-lang/crates.io-index" 108 | checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72" 109 | 110 | [[package]] 111 | name = "bitflags" 112 | version = "2.6.0" 113 | source = "registry+https://github.com/rust-lang/crates.io-index" 114 | checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" 115 | 116 | [[package]] 117 | name = "bytemuck" 118 | version = "1.16.1" 119 | source = "registry+https://github.com/rust-lang/crates.io-index" 120 | checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" 121 | 122 | [[package]] 123 | name = "bytes" 124 | version = "1.6.1" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" 127 | 128 | [[package]] 129 | name = "cc" 130 | version = "1.1.6" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" 133 | 134 | [[package]] 135 | name = "cfg-if" 136 | version = "1.0.0" 137 | source = "registry+https://github.com/rust-lang/crates.io-index" 138 | checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" 139 | 140 | [[package]] 141 | name = "cookie" 142 | version = "0.18.1" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "4ddef33a339a91ea89fb53151bd0a4689cfce27055c291dfa69945475d22c747" 145 | dependencies = [ 146 | "percent-encoding", 147 | "time", 148 | "version_check", 149 | ] 150 | 151 | [[package]] 152 | name = "darling" 153 | version = "0.20.10" 154 | source = "registry+https://github.com/rust-lang/crates.io-index" 155 | checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" 156 | dependencies = [ 157 | "darling_core", 158 | "darling_macro", 159 | ] 160 | 161 | [[package]] 162 | name = "darling_core" 163 | version = "0.20.10" 164 | source = "registry+https://github.com/rust-lang/crates.io-index" 165 | checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" 166 | dependencies = [ 167 | "fnv", 168 | "ident_case", 169 | "proc-macro2", 170 | "quote", 171 | "strsim", 172 | "syn", 173 | ] 174 | 175 | [[package]] 176 | name = "darling_macro" 177 | version = "0.20.10" 178 | source = "registry+https://github.com/rust-lang/crates.io-index" 179 | checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" 180 | dependencies = [ 181 | "darling_core", 182 | "quote", 183 | "syn", 184 | ] 185 | 186 | [[package]] 187 | name = "deranged" 188 | version = "0.3.11" 189 | source = "registry+https://github.com/rust-lang/crates.io-index" 190 | checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" 191 | dependencies = [ 192 | "powerfmt", 193 | ] 194 | 195 | [[package]] 196 | name = "devise" 197 | version = "0.4.1" 198 | source = "registry+https://github.com/rust-lang/crates.io-index" 199 | checksum = "d6eacefd3f541c66fc61433d65e54e0e46e0a029a819a7dbbc7a7b489e8a85f8" 200 | dependencies = [ 201 | "devise_codegen", 202 | "devise_core", 203 | ] 204 | 205 | [[package]] 206 | name = "devise_codegen" 207 | version = "0.4.1" 208 | source = "registry+https://github.com/rust-lang/crates.io-index" 209 | checksum = "9c8cf4b8dd484ede80fd5c547592c46c3745a617c8af278e2b72bea86b2dfed6" 210 | dependencies = [ 211 | "devise_core", 212 | "quote", 213 | ] 214 | 215 | [[package]] 216 | name = "devise_core" 217 | version = "0.4.1" 218 | source = "registry+https://github.com/rust-lang/crates.io-index" 219 | checksum = "35b50dba0afdca80b187392b24f2499a88c336d5a8493e4b4ccfb608708be56a" 220 | dependencies = [ 221 | "bitflags", 222 | "proc-macro2", 223 | "proc-macro2-diagnostics", 224 | "quote", 225 | "syn", 226 | ] 227 | 228 | [[package]] 229 | name = "diesel" 230 | version = "2.2.2" 231 | source = "registry+https://github.com/rust-lang/crates.io-index" 232 | checksum = "bf97ee7261bb708fa3402fa9c17a54b70e90e3cb98afb3dc8999d5512cb03f94" 233 | dependencies = [ 234 | "diesel_derives", 235 | "libsqlite3-sys", 236 | "r2d2", 237 | "time", 238 | ] 239 | 240 | [[package]] 241 | name = "diesel_derives" 242 | version = "2.2.2" 243 | source = "registry+https://github.com/rust-lang/crates.io-index" 244 | checksum = "d6ff2be1e7312c858b2ef974f5c7089833ae57b5311b334b30923af58e5718d8" 245 | dependencies = [ 246 | "diesel_table_macro_syntax", 247 | "dsl_auto_type", 248 | "proc-macro2", 249 | "quote", 250 | "syn", 251 | ] 252 | 253 | [[package]] 254 | name = "diesel_migrations" 255 | version = "2.2.0" 256 | source = "registry+https://github.com/rust-lang/crates.io-index" 257 | checksum = "8a73ce704bad4231f001bff3314d91dce4aba0770cee8b233991859abc15c1f6" 258 | dependencies = [ 259 | "diesel", 260 | "migrations_internals", 261 | "migrations_macros", 262 | ] 263 | 264 | [[package]] 265 | name = "diesel_table_macro_syntax" 266 | version = "0.2.0" 267 | source = "registry+https://github.com/rust-lang/crates.io-index" 268 | checksum = "209c735641a413bc68c4923a9d6ad4bcb3ca306b794edaa7eb0b3228a99ffb25" 269 | dependencies = [ 270 | "syn", 271 | ] 272 | 273 | [[package]] 274 | name = "dsl_auto_type" 275 | version = "0.1.2" 276 | source = "registry+https://github.com/rust-lang/crates.io-index" 277 | checksum = "c5d9abe6314103864cc2d8901b7ae224e0ab1a103a0a416661b4097b0779b607" 278 | dependencies = [ 279 | "darling", 280 | "either", 281 | "heck", 282 | "proc-macro2", 283 | "quote", 284 | "syn", 285 | ] 286 | 287 | [[package]] 288 | name = "either" 289 | version = "1.13.0" 290 | source = "registry+https://github.com/rust-lang/crates.io-index" 291 | checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" 292 | 293 | [[package]] 294 | name = "encoding_rs" 295 | version = "0.8.34" 296 | source = "registry+https://github.com/rust-lang/crates.io-index" 297 | checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" 298 | dependencies = [ 299 | "cfg-if", 300 | ] 301 | 302 | [[package]] 303 | name = "equivalent" 304 | version = "1.0.1" 305 | source = "registry+https://github.com/rust-lang/crates.io-index" 306 | checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" 307 | 308 | [[package]] 309 | name = "errno" 310 | version = "0.3.9" 311 | source = "registry+https://github.com/rust-lang/crates.io-index" 312 | checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" 313 | dependencies = [ 314 | "libc", 315 | "windows-sys", 316 | ] 317 | 318 | [[package]] 319 | name = "fastrand" 320 | version = "2.1.0" 321 | source = "registry+https://github.com/rust-lang/crates.io-index" 322 | checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" 323 | 324 | [[package]] 325 | name = "figment" 326 | version = "0.10.19" 327 | source = "registry+https://github.com/rust-lang/crates.io-index" 328 | checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" 329 | dependencies = [ 330 | "atomic 0.6.0", 331 | "pear", 332 | "serde", 333 | "toml", 334 | "uncased", 335 | "version_check", 336 | ] 337 | 338 | [[package]] 339 | name = "fnv" 340 | version = "1.0.7" 341 | source = "registry+https://github.com/rust-lang/crates.io-index" 342 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 343 | 344 | [[package]] 345 | name = "futures" 346 | version = "0.3.30" 347 | source = "registry+https://github.com/rust-lang/crates.io-index" 348 | checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" 349 | dependencies = [ 350 | "futures-channel", 351 | "futures-core", 352 | "futures-io", 353 | "futures-sink", 354 | "futures-task", 355 | "futures-util", 356 | ] 357 | 358 | [[package]] 359 | name = "futures-channel" 360 | version = "0.3.30" 361 | source = "registry+https://github.com/rust-lang/crates.io-index" 362 | checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" 363 | dependencies = [ 364 | "futures-core", 365 | "futures-sink", 366 | ] 367 | 368 | [[package]] 369 | name = "futures-core" 370 | version = "0.3.30" 371 | source = "registry+https://github.com/rust-lang/crates.io-index" 372 | checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" 373 | 374 | [[package]] 375 | name = "futures-io" 376 | version = "0.3.30" 377 | source = "registry+https://github.com/rust-lang/crates.io-index" 378 | checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" 379 | 380 | [[package]] 381 | name = "futures-sink" 382 | version = "0.3.30" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" 385 | 386 | [[package]] 387 | name = "futures-task" 388 | version = "0.3.30" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" 391 | 392 | [[package]] 393 | name = "futures-util" 394 | version = "0.3.30" 395 | source = "registry+https://github.com/rust-lang/crates.io-index" 396 | checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" 397 | dependencies = [ 398 | "futures-channel", 399 | "futures-core", 400 | "futures-io", 401 | "futures-sink", 402 | "futures-task", 403 | "memchr", 404 | "pin-project-lite", 405 | "pin-utils", 406 | "slab", 407 | ] 408 | 409 | [[package]] 410 | name = "generator" 411 | version = "0.7.5" 412 | source = "registry+https://github.com/rust-lang/crates.io-index" 413 | checksum = "5cc16584ff22b460a382b7feec54b23d2908d858152e5739a120b949293bd74e" 414 | dependencies = [ 415 | "cc", 416 | "libc", 417 | "log", 418 | "rustversion", 419 | "windows", 420 | ] 421 | 422 | [[package]] 423 | name = "getrandom" 424 | version = "0.2.15" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" 427 | dependencies = [ 428 | "cfg-if", 429 | "libc", 430 | "wasi", 431 | ] 432 | 433 | [[package]] 434 | name = "gimli" 435 | version = "0.29.0" 436 | source = "registry+https://github.com/rust-lang/crates.io-index" 437 | checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" 438 | 439 | [[package]] 440 | name = "glob" 441 | version = "0.3.1" 442 | source = "registry+https://github.com/rust-lang/crates.io-index" 443 | checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" 444 | 445 | [[package]] 446 | name = "h2" 447 | version = "0.3.26" 448 | source = "registry+https://github.com/rust-lang/crates.io-index" 449 | checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" 450 | dependencies = [ 451 | "bytes", 452 | "fnv", 453 | "futures-core", 454 | "futures-sink", 455 | "futures-util", 456 | "http 0.2.12", 457 | "indexmap", 458 | "slab", 459 | "tokio", 460 | "tokio-util", 461 | "tracing", 462 | ] 463 | 464 | [[package]] 465 | name = "hashbrown" 466 | version = "0.14.5" 467 | source = "registry+https://github.com/rust-lang/crates.io-index" 468 | checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" 469 | 470 | [[package]] 471 | name = "heck" 472 | version = "0.5.0" 473 | source = "registry+https://github.com/rust-lang/crates.io-index" 474 | checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" 475 | 476 | [[package]] 477 | name = "hermit-abi" 478 | version = "0.3.9" 479 | source = "registry+https://github.com/rust-lang/crates.io-index" 480 | checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" 481 | 482 | [[package]] 483 | name = "http" 484 | version = "0.2.12" 485 | source = "registry+https://github.com/rust-lang/crates.io-index" 486 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 487 | dependencies = [ 488 | "bytes", 489 | "fnv", 490 | "itoa", 491 | ] 492 | 493 | [[package]] 494 | name = "http" 495 | version = "1.1.0" 496 | source = "registry+https://github.com/rust-lang/crates.io-index" 497 | checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" 498 | dependencies = [ 499 | "bytes", 500 | "fnv", 501 | "itoa", 502 | ] 503 | 504 | [[package]] 505 | name = "http-body" 506 | version = "0.4.6" 507 | source = "registry+https://github.com/rust-lang/crates.io-index" 508 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 509 | dependencies = [ 510 | "bytes", 511 | "http 0.2.12", 512 | "pin-project-lite", 513 | ] 514 | 515 | [[package]] 516 | name = "httparse" 517 | version = "1.9.4" 518 | source = "registry+https://github.com/rust-lang/crates.io-index" 519 | checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" 520 | 521 | [[package]] 522 | name = "httpdate" 523 | version = "1.0.3" 524 | source = "registry+https://github.com/rust-lang/crates.io-index" 525 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 526 | 527 | [[package]] 528 | name = "hyper" 529 | version = "0.14.30" 530 | source = "registry+https://github.com/rust-lang/crates.io-index" 531 | checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" 532 | dependencies = [ 533 | "bytes", 534 | "futures-channel", 535 | "futures-core", 536 | "futures-util", 537 | "h2", 538 | "http 0.2.12", 539 | "http-body", 540 | "httparse", 541 | "httpdate", 542 | "itoa", 543 | "pin-project-lite", 544 | "socket2", 545 | "tokio", 546 | "tower-service", 547 | "tracing", 548 | "want", 549 | ] 550 | 551 | [[package]] 552 | name = "ident_case" 553 | version = "1.0.1" 554 | source = "registry+https://github.com/rust-lang/crates.io-index" 555 | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" 556 | 557 | [[package]] 558 | name = "indexmap" 559 | version = "2.2.6" 560 | source = "registry+https://github.com/rust-lang/crates.io-index" 561 | checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" 562 | dependencies = [ 563 | "equivalent", 564 | "hashbrown", 565 | "serde", 566 | ] 567 | 568 | [[package]] 569 | name = "inlinable_string" 570 | version = "0.1.15" 571 | source = "registry+https://github.com/rust-lang/crates.io-index" 572 | checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" 573 | 574 | [[package]] 575 | name = "is-terminal" 576 | version = "0.4.12" 577 | source = "registry+https://github.com/rust-lang/crates.io-index" 578 | checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" 579 | dependencies = [ 580 | "hermit-abi", 581 | "libc", 582 | "windows-sys", 583 | ] 584 | 585 | [[package]] 586 | name = "itoa" 587 | version = "1.0.11" 588 | source = "registry+https://github.com/rust-lang/crates.io-index" 589 | checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" 590 | 591 | [[package]] 592 | name = "lazy_static" 593 | version = "1.5.0" 594 | source = "registry+https://github.com/rust-lang/crates.io-index" 595 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 596 | 597 | [[package]] 598 | name = "libc" 599 | version = "0.2.155" 600 | source = "registry+https://github.com/rust-lang/crates.io-index" 601 | checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" 602 | 603 | [[package]] 604 | name = "libsqlite3-sys" 605 | version = "0.22.2" 606 | source = "registry+https://github.com/rust-lang/crates.io-index" 607 | checksum = "290b64917f8b0cb885d9de0f9959fe1f775d7fa12f1da2db9001c1c8ab60f89d" 608 | dependencies = [ 609 | "pkg-config", 610 | "vcpkg", 611 | ] 612 | 613 | [[package]] 614 | name = "linux-raw-sys" 615 | version = "0.4.14" 616 | source = "registry+https://github.com/rust-lang/crates.io-index" 617 | checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" 618 | 619 | [[package]] 620 | name = "lock_api" 621 | version = "0.4.12" 622 | source = "registry+https://github.com/rust-lang/crates.io-index" 623 | checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" 624 | dependencies = [ 625 | "autocfg", 626 | "scopeguard", 627 | ] 628 | 629 | [[package]] 630 | name = "log" 631 | version = "0.4.22" 632 | source = "registry+https://github.com/rust-lang/crates.io-index" 633 | checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" 634 | 635 | [[package]] 636 | name = "loom" 637 | version = "0.5.6" 638 | source = "registry+https://github.com/rust-lang/crates.io-index" 639 | checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5" 640 | dependencies = [ 641 | "cfg-if", 642 | "generator", 643 | "scoped-tls", 644 | "serde", 645 | "serde_json", 646 | "tracing", 647 | "tracing-subscriber", 648 | ] 649 | 650 | [[package]] 651 | name = "matchers" 652 | version = "0.1.0" 653 | source = "registry+https://github.com/rust-lang/crates.io-index" 654 | checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" 655 | dependencies = [ 656 | "regex-automata 0.1.10", 657 | ] 658 | 659 | [[package]] 660 | name = "memchr" 661 | version = "2.7.4" 662 | source = "registry+https://github.com/rust-lang/crates.io-index" 663 | checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" 664 | 665 | [[package]] 666 | name = "migrations_internals" 667 | version = "2.2.0" 668 | source = "registry+https://github.com/rust-lang/crates.io-index" 669 | checksum = "fd01039851e82f8799046eabbb354056283fb265c8ec0996af940f4e85a380ff" 670 | dependencies = [ 671 | "serde", 672 | "toml", 673 | ] 674 | 675 | [[package]] 676 | name = "migrations_macros" 677 | version = "2.2.0" 678 | source = "registry+https://github.com/rust-lang/crates.io-index" 679 | checksum = "ffb161cc72176cb37aa47f1fc520d3ef02263d67d661f44f05d05a079e1237fd" 680 | dependencies = [ 681 | "migrations_internals", 682 | "proc-macro2", 683 | "quote", 684 | ] 685 | 686 | [[package]] 687 | name = "mime" 688 | version = "0.3.17" 689 | source = "registry+https://github.com/rust-lang/crates.io-index" 690 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 691 | 692 | [[package]] 693 | name = "miniz_oxide" 694 | version = "0.7.4" 695 | source = "registry+https://github.com/rust-lang/crates.io-index" 696 | checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" 697 | dependencies = [ 698 | "adler", 699 | ] 700 | 701 | [[package]] 702 | name = "mio" 703 | version = "1.0.1" 704 | source = "registry+https://github.com/rust-lang/crates.io-index" 705 | checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" 706 | dependencies = [ 707 | "hermit-abi", 708 | "libc", 709 | "wasi", 710 | "windows-sys", 711 | ] 712 | 713 | [[package]] 714 | name = "multer" 715 | version = "3.1.0" 716 | source = "registry+https://github.com/rust-lang/crates.io-index" 717 | checksum = "83e87776546dc87511aa5ee218730c92b666d7264ab6ed41f9d215af9cd5224b" 718 | dependencies = [ 719 | "bytes", 720 | "encoding_rs", 721 | "futures-util", 722 | "http 1.1.0", 723 | "httparse", 724 | "memchr", 725 | "mime", 726 | "spin", 727 | "tokio", 728 | "tokio-util", 729 | "version_check", 730 | ] 731 | 732 | [[package]] 733 | name = "nu-ansi-term" 734 | version = "0.46.0" 735 | source = "registry+https://github.com/rust-lang/crates.io-index" 736 | checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" 737 | dependencies = [ 738 | "overload", 739 | "winapi", 740 | ] 741 | 742 | [[package]] 743 | name = "num-conv" 744 | version = "0.1.0" 745 | source = "registry+https://github.com/rust-lang/crates.io-index" 746 | checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" 747 | 748 | [[package]] 749 | name = "num_cpus" 750 | version = "1.16.0" 751 | source = "registry+https://github.com/rust-lang/crates.io-index" 752 | checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" 753 | dependencies = [ 754 | "hermit-abi", 755 | "libc", 756 | ] 757 | 758 | [[package]] 759 | name = "object" 760 | version = "0.36.2" 761 | source = "registry+https://github.com/rust-lang/crates.io-index" 762 | checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" 763 | dependencies = [ 764 | "memchr", 765 | ] 766 | 767 | [[package]] 768 | name = "once_cell" 769 | version = "1.19.0" 770 | source = "registry+https://github.com/rust-lang/crates.io-index" 771 | checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" 772 | 773 | [[package]] 774 | name = "overload" 775 | version = "0.1.1" 776 | source = "registry+https://github.com/rust-lang/crates.io-index" 777 | checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" 778 | 779 | [[package]] 780 | name = "parking_lot" 781 | version = "0.12.3" 782 | source = "registry+https://github.com/rust-lang/crates.io-index" 783 | checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" 784 | dependencies = [ 785 | "lock_api", 786 | "parking_lot_core", 787 | ] 788 | 789 | [[package]] 790 | name = "parking_lot_core" 791 | version = "0.9.10" 792 | source = "registry+https://github.com/rust-lang/crates.io-index" 793 | checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" 794 | dependencies = [ 795 | "cfg-if", 796 | "libc", 797 | "redox_syscall", 798 | "smallvec", 799 | "windows-targets 0.52.6", 800 | ] 801 | 802 | [[package]] 803 | name = "pear" 804 | version = "0.2.9" 805 | source = "registry+https://github.com/rust-lang/crates.io-index" 806 | checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" 807 | dependencies = [ 808 | "inlinable_string", 809 | "pear_codegen", 810 | "yansi", 811 | ] 812 | 813 | [[package]] 814 | name = "pear_codegen" 815 | version = "0.2.9" 816 | source = "registry+https://github.com/rust-lang/crates.io-index" 817 | checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" 818 | dependencies = [ 819 | "proc-macro2", 820 | "proc-macro2-diagnostics", 821 | "quote", 822 | "syn", 823 | ] 824 | 825 | [[package]] 826 | name = "percent-encoding" 827 | version = "2.3.1" 828 | source = "registry+https://github.com/rust-lang/crates.io-index" 829 | checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" 830 | 831 | [[package]] 832 | name = "pin-project-lite" 833 | version = "0.2.14" 834 | source = "registry+https://github.com/rust-lang/crates.io-index" 835 | checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" 836 | 837 | [[package]] 838 | name = "pin-utils" 839 | version = "0.1.0" 840 | source = "registry+https://github.com/rust-lang/crates.io-index" 841 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 842 | 843 | [[package]] 844 | name = "pkg-config" 845 | version = "0.3.30" 846 | source = "registry+https://github.com/rust-lang/crates.io-index" 847 | checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" 848 | 849 | [[package]] 850 | name = "powerfmt" 851 | version = "0.2.0" 852 | source = "registry+https://github.com/rust-lang/crates.io-index" 853 | checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" 854 | 855 | [[package]] 856 | name = "ppv-lite86" 857 | version = "0.2.17" 858 | source = "registry+https://github.com/rust-lang/crates.io-index" 859 | checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" 860 | 861 | [[package]] 862 | name = "proc-macro2" 863 | version = "1.0.86" 864 | source = "registry+https://github.com/rust-lang/crates.io-index" 865 | checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" 866 | dependencies = [ 867 | "unicode-ident", 868 | ] 869 | 870 | [[package]] 871 | name = "proc-macro2-diagnostics" 872 | version = "0.10.1" 873 | source = "registry+https://github.com/rust-lang/crates.io-index" 874 | checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" 875 | dependencies = [ 876 | "proc-macro2", 877 | "quote", 878 | "syn", 879 | "version_check", 880 | "yansi", 881 | ] 882 | 883 | [[package]] 884 | name = "quote" 885 | version = "1.0.36" 886 | source = "registry+https://github.com/rust-lang/crates.io-index" 887 | checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" 888 | dependencies = [ 889 | "proc-macro2", 890 | ] 891 | 892 | [[package]] 893 | name = "r2d2" 894 | version = "0.8.10" 895 | source = "registry+https://github.com/rust-lang/crates.io-index" 896 | checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" 897 | dependencies = [ 898 | "log", 899 | "parking_lot", 900 | "scheduled-thread-pool", 901 | ] 902 | 903 | [[package]] 904 | name = "rand" 905 | version = "0.8.5" 906 | source = "registry+https://github.com/rust-lang/crates.io-index" 907 | checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" 908 | dependencies = [ 909 | "libc", 910 | "rand_chacha", 911 | "rand_core", 912 | ] 913 | 914 | [[package]] 915 | name = "rand_chacha" 916 | version = "0.3.1" 917 | source = "registry+https://github.com/rust-lang/crates.io-index" 918 | checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" 919 | dependencies = [ 920 | "ppv-lite86", 921 | "rand_core", 922 | ] 923 | 924 | [[package]] 925 | name = "rand_core" 926 | version = "0.6.4" 927 | source = "registry+https://github.com/rust-lang/crates.io-index" 928 | checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" 929 | dependencies = [ 930 | "getrandom", 931 | ] 932 | 933 | [[package]] 934 | name = "redox_syscall" 935 | version = "0.5.3" 936 | source = "registry+https://github.com/rust-lang/crates.io-index" 937 | checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" 938 | dependencies = [ 939 | "bitflags", 940 | ] 941 | 942 | [[package]] 943 | name = "ref-cast" 944 | version = "1.0.23" 945 | source = "registry+https://github.com/rust-lang/crates.io-index" 946 | checksum = "ccf0a6f84d5f1d581da8b41b47ec8600871962f2a528115b542b362d4b744931" 947 | dependencies = [ 948 | "ref-cast-impl", 949 | ] 950 | 951 | [[package]] 952 | name = "ref-cast-impl" 953 | version = "1.0.23" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "bcc303e793d3734489387d205e9b186fac9c6cfacedd98cbb2e8a5943595f3e6" 956 | dependencies = [ 957 | "proc-macro2", 958 | "quote", 959 | "syn", 960 | ] 961 | 962 | [[package]] 963 | name = "regex" 964 | version = "1.10.5" 965 | source = "registry+https://github.com/rust-lang/crates.io-index" 966 | checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" 967 | dependencies = [ 968 | "aho-corasick", 969 | "memchr", 970 | "regex-automata 0.4.7", 971 | "regex-syntax 0.8.4", 972 | ] 973 | 974 | [[package]] 975 | name = "regex-automata" 976 | version = "0.1.10" 977 | source = "registry+https://github.com/rust-lang/crates.io-index" 978 | checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" 979 | dependencies = [ 980 | "regex-syntax 0.6.29", 981 | ] 982 | 983 | [[package]] 984 | name = "regex-automata" 985 | version = "0.4.7" 986 | source = "registry+https://github.com/rust-lang/crates.io-index" 987 | checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" 988 | dependencies = [ 989 | "aho-corasick", 990 | "memchr", 991 | "regex-syntax 0.8.4", 992 | ] 993 | 994 | [[package]] 995 | name = "regex-syntax" 996 | version = "0.6.29" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" 999 | 1000 | [[package]] 1001 | name = "regex-syntax" 1002 | version = "0.8.4" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" 1005 | 1006 | [[package]] 1007 | name = "rocket" 1008 | version = "0.5.1" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "a516907296a31df7dc04310e7043b61d71954d703b603cc6867a026d7e72d73f" 1011 | dependencies = [ 1012 | "async-stream", 1013 | "async-trait", 1014 | "atomic 0.5.3", 1015 | "binascii", 1016 | "bytes", 1017 | "either", 1018 | "figment", 1019 | "futures", 1020 | "indexmap", 1021 | "log", 1022 | "memchr", 1023 | "multer", 1024 | "num_cpus", 1025 | "parking_lot", 1026 | "pin-project-lite", 1027 | "rand", 1028 | "ref-cast", 1029 | "rocket_codegen", 1030 | "rocket_http", 1031 | "serde", 1032 | "serde_json", 1033 | "state", 1034 | "tempfile", 1035 | "time", 1036 | "tokio", 1037 | "tokio-stream", 1038 | "tokio-util", 1039 | "ubyte", 1040 | "version_check", 1041 | "yansi", 1042 | ] 1043 | 1044 | [[package]] 1045 | name = "rocket-app" 1046 | version = "0.1.0" 1047 | dependencies = [ 1048 | "base64", 1049 | "diesel", 1050 | "diesel_migrations", 1051 | "rocket", 1052 | "rocket_sync_db_pools", 1053 | "serde", 1054 | "serde_json", 1055 | ] 1056 | 1057 | [[package]] 1058 | name = "rocket_codegen" 1059 | version = "0.5.1" 1060 | source = "registry+https://github.com/rust-lang/crates.io-index" 1061 | checksum = "575d32d7ec1a9770108c879fc7c47815a80073f96ca07ff9525a94fcede1dd46" 1062 | dependencies = [ 1063 | "devise", 1064 | "glob", 1065 | "indexmap", 1066 | "proc-macro2", 1067 | "quote", 1068 | "rocket_http", 1069 | "syn", 1070 | "unicode-xid", 1071 | "version_check", 1072 | ] 1073 | 1074 | [[package]] 1075 | name = "rocket_http" 1076 | version = "0.5.1" 1077 | source = "registry+https://github.com/rust-lang/crates.io-index" 1078 | checksum = "e274915a20ee3065f611c044bd63c40757396b6dbc057d6046aec27f14f882b9" 1079 | dependencies = [ 1080 | "cookie", 1081 | "either", 1082 | "futures", 1083 | "http 0.2.12", 1084 | "hyper", 1085 | "indexmap", 1086 | "log", 1087 | "memchr", 1088 | "pear", 1089 | "percent-encoding", 1090 | "pin-project-lite", 1091 | "ref-cast", 1092 | "serde", 1093 | "smallvec", 1094 | "stable-pattern", 1095 | "state", 1096 | "time", 1097 | "tokio", 1098 | "uncased", 1099 | ] 1100 | 1101 | [[package]] 1102 | name = "rocket_sync_db_pools" 1103 | version = "0.1.0" 1104 | source = "registry+https://github.com/rust-lang/crates.io-index" 1105 | checksum = "d83f32721ed79509adac4328e97f817a8f55a47c4b64799f6fd6cc3adb6e42ff" 1106 | dependencies = [ 1107 | "diesel", 1108 | "r2d2", 1109 | "rocket", 1110 | "rocket_sync_db_pools_codegen", 1111 | "serde", 1112 | "tokio", 1113 | "version_check", 1114 | ] 1115 | 1116 | [[package]] 1117 | name = "rocket_sync_db_pools_codegen" 1118 | version = "0.1.0" 1119 | source = "registry+https://github.com/rust-lang/crates.io-index" 1120 | checksum = "5cc890925dc79370c28eb15c9957677093fdb7e8c44966d189f38cedb995ee68" 1121 | dependencies = [ 1122 | "devise", 1123 | "quote", 1124 | ] 1125 | 1126 | [[package]] 1127 | name = "rustc-demangle" 1128 | version = "0.1.24" 1129 | source = "registry+https://github.com/rust-lang/crates.io-index" 1130 | checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" 1131 | 1132 | [[package]] 1133 | name = "rustix" 1134 | version = "0.38.34" 1135 | source = "registry+https://github.com/rust-lang/crates.io-index" 1136 | checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" 1137 | dependencies = [ 1138 | "bitflags", 1139 | "errno", 1140 | "libc", 1141 | "linux-raw-sys", 1142 | "windows-sys", 1143 | ] 1144 | 1145 | [[package]] 1146 | name = "rustversion" 1147 | version = "1.0.17" 1148 | source = "registry+https://github.com/rust-lang/crates.io-index" 1149 | checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" 1150 | 1151 | [[package]] 1152 | name = "ryu" 1153 | version = "1.0.18" 1154 | source = "registry+https://github.com/rust-lang/crates.io-index" 1155 | checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" 1156 | 1157 | [[package]] 1158 | name = "scheduled-thread-pool" 1159 | version = "0.2.7" 1160 | source = "registry+https://github.com/rust-lang/crates.io-index" 1161 | checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" 1162 | dependencies = [ 1163 | "parking_lot", 1164 | ] 1165 | 1166 | [[package]] 1167 | name = "scoped-tls" 1168 | version = "1.0.1" 1169 | source = "registry+https://github.com/rust-lang/crates.io-index" 1170 | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" 1171 | 1172 | [[package]] 1173 | name = "scopeguard" 1174 | version = "1.2.0" 1175 | source = "registry+https://github.com/rust-lang/crates.io-index" 1176 | checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" 1177 | 1178 | [[package]] 1179 | name = "serde" 1180 | version = "1.0.204" 1181 | source = "registry+https://github.com/rust-lang/crates.io-index" 1182 | checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" 1183 | dependencies = [ 1184 | "serde_derive", 1185 | ] 1186 | 1187 | [[package]] 1188 | name = "serde_derive" 1189 | version = "1.0.204" 1190 | source = "registry+https://github.com/rust-lang/crates.io-index" 1191 | checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" 1192 | dependencies = [ 1193 | "proc-macro2", 1194 | "quote", 1195 | "syn", 1196 | ] 1197 | 1198 | [[package]] 1199 | name = "serde_json" 1200 | version = "1.0.120" 1201 | source = "registry+https://github.com/rust-lang/crates.io-index" 1202 | checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" 1203 | dependencies = [ 1204 | "itoa", 1205 | "ryu", 1206 | "serde", 1207 | ] 1208 | 1209 | [[package]] 1210 | name = "serde_spanned" 1211 | version = "0.6.7" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" 1214 | dependencies = [ 1215 | "serde", 1216 | ] 1217 | 1218 | [[package]] 1219 | name = "sharded-slab" 1220 | version = "0.1.7" 1221 | source = "registry+https://github.com/rust-lang/crates.io-index" 1222 | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" 1223 | dependencies = [ 1224 | "lazy_static", 1225 | ] 1226 | 1227 | [[package]] 1228 | name = "signal-hook-registry" 1229 | version = "1.4.2" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" 1232 | dependencies = [ 1233 | "libc", 1234 | ] 1235 | 1236 | [[package]] 1237 | name = "slab" 1238 | version = "0.4.9" 1239 | source = "registry+https://github.com/rust-lang/crates.io-index" 1240 | checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" 1241 | dependencies = [ 1242 | "autocfg", 1243 | ] 1244 | 1245 | [[package]] 1246 | name = "smallvec" 1247 | version = "1.13.2" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" 1250 | 1251 | [[package]] 1252 | name = "socket2" 1253 | version = "0.5.7" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" 1256 | dependencies = [ 1257 | "libc", 1258 | "windows-sys", 1259 | ] 1260 | 1261 | [[package]] 1262 | name = "spin" 1263 | version = "0.9.8" 1264 | source = "registry+https://github.com/rust-lang/crates.io-index" 1265 | checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" 1266 | 1267 | [[package]] 1268 | name = "stable-pattern" 1269 | version = "0.1.0" 1270 | source = "registry+https://github.com/rust-lang/crates.io-index" 1271 | checksum = "4564168c00635f88eaed410d5efa8131afa8d8699a612c80c455a0ba05c21045" 1272 | dependencies = [ 1273 | "memchr", 1274 | ] 1275 | 1276 | [[package]] 1277 | name = "state" 1278 | version = "0.6.0" 1279 | source = "registry+https://github.com/rust-lang/crates.io-index" 1280 | checksum = "2b8c4a4445d81357df8b1a650d0d0d6fbbbfe99d064aa5e02f3e4022061476d8" 1281 | dependencies = [ 1282 | "loom", 1283 | ] 1284 | 1285 | [[package]] 1286 | name = "strsim" 1287 | version = "0.11.1" 1288 | source = "registry+https://github.com/rust-lang/crates.io-index" 1289 | checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" 1290 | 1291 | [[package]] 1292 | name = "syn" 1293 | version = "2.0.72" 1294 | source = "registry+https://github.com/rust-lang/crates.io-index" 1295 | checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" 1296 | dependencies = [ 1297 | "proc-macro2", 1298 | "quote", 1299 | "unicode-ident", 1300 | ] 1301 | 1302 | [[package]] 1303 | name = "tempfile" 1304 | version = "3.10.1" 1305 | source = "registry+https://github.com/rust-lang/crates.io-index" 1306 | checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" 1307 | dependencies = [ 1308 | "cfg-if", 1309 | "fastrand", 1310 | "rustix", 1311 | "windows-sys", 1312 | ] 1313 | 1314 | [[package]] 1315 | name = "thread_local" 1316 | version = "1.1.8" 1317 | source = "registry+https://github.com/rust-lang/crates.io-index" 1318 | checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" 1319 | dependencies = [ 1320 | "cfg-if", 1321 | "once_cell", 1322 | ] 1323 | 1324 | [[package]] 1325 | name = "time" 1326 | version = "0.3.36" 1327 | source = "registry+https://github.com/rust-lang/crates.io-index" 1328 | checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" 1329 | dependencies = [ 1330 | "deranged", 1331 | "itoa", 1332 | "num-conv", 1333 | "powerfmt", 1334 | "serde", 1335 | "time-core", 1336 | "time-macros", 1337 | ] 1338 | 1339 | [[package]] 1340 | name = "time-core" 1341 | version = "0.1.2" 1342 | source = "registry+https://github.com/rust-lang/crates.io-index" 1343 | checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" 1344 | 1345 | [[package]] 1346 | name = "time-macros" 1347 | version = "0.2.18" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" 1350 | dependencies = [ 1351 | "num-conv", 1352 | "time-core", 1353 | ] 1354 | 1355 | [[package]] 1356 | name = "tokio" 1357 | version = "1.39.1" 1358 | source = "registry+https://github.com/rust-lang/crates.io-index" 1359 | checksum = "d040ac2b29ab03b09d4129c2f5bbd012a3ac2f79d38ff506a4bf8dd34b0eac8a" 1360 | dependencies = [ 1361 | "backtrace", 1362 | "bytes", 1363 | "libc", 1364 | "mio", 1365 | "pin-project-lite", 1366 | "signal-hook-registry", 1367 | "socket2", 1368 | "tokio-macros", 1369 | "windows-sys", 1370 | ] 1371 | 1372 | [[package]] 1373 | name = "tokio-macros" 1374 | version = "2.4.0" 1375 | source = "registry+https://github.com/rust-lang/crates.io-index" 1376 | checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" 1377 | dependencies = [ 1378 | "proc-macro2", 1379 | "quote", 1380 | "syn", 1381 | ] 1382 | 1383 | [[package]] 1384 | name = "tokio-stream" 1385 | version = "0.1.15" 1386 | source = "registry+https://github.com/rust-lang/crates.io-index" 1387 | checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" 1388 | dependencies = [ 1389 | "futures-core", 1390 | "pin-project-lite", 1391 | "tokio", 1392 | ] 1393 | 1394 | [[package]] 1395 | name = "tokio-util" 1396 | version = "0.7.11" 1397 | source = "registry+https://github.com/rust-lang/crates.io-index" 1398 | checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" 1399 | dependencies = [ 1400 | "bytes", 1401 | "futures-core", 1402 | "futures-sink", 1403 | "pin-project-lite", 1404 | "tokio", 1405 | ] 1406 | 1407 | [[package]] 1408 | name = "toml" 1409 | version = "0.8.16" 1410 | source = "registry+https://github.com/rust-lang/crates.io-index" 1411 | checksum = "81967dd0dd2c1ab0bc3468bd7caecc32b8a4aa47d0c8c695d8c2b2108168d62c" 1412 | dependencies = [ 1413 | "serde", 1414 | "serde_spanned", 1415 | "toml_datetime", 1416 | "toml_edit", 1417 | ] 1418 | 1419 | [[package]] 1420 | name = "toml_datetime" 1421 | version = "0.6.7" 1422 | source = "registry+https://github.com/rust-lang/crates.io-index" 1423 | checksum = "f8fb9f64314842840f1d940ac544da178732128f1c78c21772e876579e0da1db" 1424 | dependencies = [ 1425 | "serde", 1426 | ] 1427 | 1428 | [[package]] 1429 | name = "toml_edit" 1430 | version = "0.22.17" 1431 | source = "registry+https://github.com/rust-lang/crates.io-index" 1432 | checksum = "8d9f8729f5aea9562aac1cc0441f5d6de3cff1ee0c5d67293eeca5eb36ee7c16" 1433 | dependencies = [ 1434 | "indexmap", 1435 | "serde", 1436 | "serde_spanned", 1437 | "toml_datetime", 1438 | "winnow", 1439 | ] 1440 | 1441 | [[package]] 1442 | name = "tower-service" 1443 | version = "0.3.2" 1444 | source = "registry+https://github.com/rust-lang/crates.io-index" 1445 | checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" 1446 | 1447 | [[package]] 1448 | name = "tracing" 1449 | version = "0.1.40" 1450 | source = "registry+https://github.com/rust-lang/crates.io-index" 1451 | checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" 1452 | dependencies = [ 1453 | "pin-project-lite", 1454 | "tracing-attributes", 1455 | "tracing-core", 1456 | ] 1457 | 1458 | [[package]] 1459 | name = "tracing-attributes" 1460 | version = "0.1.27" 1461 | source = "registry+https://github.com/rust-lang/crates.io-index" 1462 | checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" 1463 | dependencies = [ 1464 | "proc-macro2", 1465 | "quote", 1466 | "syn", 1467 | ] 1468 | 1469 | [[package]] 1470 | name = "tracing-core" 1471 | version = "0.1.32" 1472 | source = "registry+https://github.com/rust-lang/crates.io-index" 1473 | checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" 1474 | dependencies = [ 1475 | "once_cell", 1476 | "valuable", 1477 | ] 1478 | 1479 | [[package]] 1480 | name = "tracing-log" 1481 | version = "0.2.0" 1482 | source = "registry+https://github.com/rust-lang/crates.io-index" 1483 | checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" 1484 | dependencies = [ 1485 | "log", 1486 | "once_cell", 1487 | "tracing-core", 1488 | ] 1489 | 1490 | [[package]] 1491 | name = "tracing-subscriber" 1492 | version = "0.3.18" 1493 | source = "registry+https://github.com/rust-lang/crates.io-index" 1494 | checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" 1495 | dependencies = [ 1496 | "matchers", 1497 | "nu-ansi-term", 1498 | "once_cell", 1499 | "regex", 1500 | "sharded-slab", 1501 | "smallvec", 1502 | "thread_local", 1503 | "tracing", 1504 | "tracing-core", 1505 | "tracing-log", 1506 | ] 1507 | 1508 | [[package]] 1509 | name = "try-lock" 1510 | version = "0.2.5" 1511 | source = "registry+https://github.com/rust-lang/crates.io-index" 1512 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 1513 | 1514 | [[package]] 1515 | name = "ubyte" 1516 | version = "0.10.4" 1517 | source = "registry+https://github.com/rust-lang/crates.io-index" 1518 | checksum = "f720def6ce1ee2fc44d40ac9ed6d3a59c361c80a75a7aa8e75bb9baed31cf2ea" 1519 | dependencies = [ 1520 | "serde", 1521 | ] 1522 | 1523 | [[package]] 1524 | name = "uncased" 1525 | version = "0.9.10" 1526 | source = "registry+https://github.com/rust-lang/crates.io-index" 1527 | checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" 1528 | dependencies = [ 1529 | "serde", 1530 | "version_check", 1531 | ] 1532 | 1533 | [[package]] 1534 | name = "unicode-ident" 1535 | version = "1.0.12" 1536 | source = "registry+https://github.com/rust-lang/crates.io-index" 1537 | checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" 1538 | 1539 | [[package]] 1540 | name = "unicode-xid" 1541 | version = "0.2.4" 1542 | source = "registry+https://github.com/rust-lang/crates.io-index" 1543 | checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" 1544 | 1545 | [[package]] 1546 | name = "valuable" 1547 | version = "0.1.0" 1548 | source = "registry+https://github.com/rust-lang/crates.io-index" 1549 | checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" 1550 | 1551 | [[package]] 1552 | name = "vcpkg" 1553 | version = "0.2.15" 1554 | source = "registry+https://github.com/rust-lang/crates.io-index" 1555 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1556 | 1557 | [[package]] 1558 | name = "version_check" 1559 | version = "0.9.4" 1560 | source = "registry+https://github.com/rust-lang/crates.io-index" 1561 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" 1562 | 1563 | [[package]] 1564 | name = "want" 1565 | version = "0.3.1" 1566 | source = "registry+https://github.com/rust-lang/crates.io-index" 1567 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1568 | dependencies = [ 1569 | "try-lock", 1570 | ] 1571 | 1572 | [[package]] 1573 | name = "wasi" 1574 | version = "0.11.0+wasi-snapshot-preview1" 1575 | source = "registry+https://github.com/rust-lang/crates.io-index" 1576 | checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" 1577 | 1578 | [[package]] 1579 | name = "winapi" 1580 | version = "0.3.9" 1581 | source = "registry+https://github.com/rust-lang/crates.io-index" 1582 | checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" 1583 | dependencies = [ 1584 | "winapi-i686-pc-windows-gnu", 1585 | "winapi-x86_64-pc-windows-gnu", 1586 | ] 1587 | 1588 | [[package]] 1589 | name = "winapi-i686-pc-windows-gnu" 1590 | version = "0.4.0" 1591 | source = "registry+https://github.com/rust-lang/crates.io-index" 1592 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" 1593 | 1594 | [[package]] 1595 | name = "winapi-x86_64-pc-windows-gnu" 1596 | version = "0.4.0" 1597 | source = "registry+https://github.com/rust-lang/crates.io-index" 1598 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" 1599 | 1600 | [[package]] 1601 | name = "windows" 1602 | version = "0.48.0" 1603 | source = "registry+https://github.com/rust-lang/crates.io-index" 1604 | checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" 1605 | dependencies = [ 1606 | "windows-targets 0.48.5", 1607 | ] 1608 | 1609 | [[package]] 1610 | name = "windows-sys" 1611 | version = "0.52.0" 1612 | source = "registry+https://github.com/rust-lang/crates.io-index" 1613 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1614 | dependencies = [ 1615 | "windows-targets 0.52.6", 1616 | ] 1617 | 1618 | [[package]] 1619 | name = "windows-targets" 1620 | version = "0.48.5" 1621 | source = "registry+https://github.com/rust-lang/crates.io-index" 1622 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1623 | dependencies = [ 1624 | "windows_aarch64_gnullvm 0.48.5", 1625 | "windows_aarch64_msvc 0.48.5", 1626 | "windows_i686_gnu 0.48.5", 1627 | "windows_i686_msvc 0.48.5", 1628 | "windows_x86_64_gnu 0.48.5", 1629 | "windows_x86_64_gnullvm 0.48.5", 1630 | "windows_x86_64_msvc 0.48.5", 1631 | ] 1632 | 1633 | [[package]] 1634 | name = "windows-targets" 1635 | version = "0.52.6" 1636 | source = "registry+https://github.com/rust-lang/crates.io-index" 1637 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1638 | dependencies = [ 1639 | "windows_aarch64_gnullvm 0.52.6", 1640 | "windows_aarch64_msvc 0.52.6", 1641 | "windows_i686_gnu 0.52.6", 1642 | "windows_i686_gnullvm", 1643 | "windows_i686_msvc 0.52.6", 1644 | "windows_x86_64_gnu 0.52.6", 1645 | "windows_x86_64_gnullvm 0.52.6", 1646 | "windows_x86_64_msvc 0.52.6", 1647 | ] 1648 | 1649 | [[package]] 1650 | name = "windows_aarch64_gnullvm" 1651 | version = "0.48.5" 1652 | source = "registry+https://github.com/rust-lang/crates.io-index" 1653 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1654 | 1655 | [[package]] 1656 | name = "windows_aarch64_gnullvm" 1657 | version = "0.52.6" 1658 | source = "registry+https://github.com/rust-lang/crates.io-index" 1659 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1660 | 1661 | [[package]] 1662 | name = "windows_aarch64_msvc" 1663 | version = "0.48.5" 1664 | source = "registry+https://github.com/rust-lang/crates.io-index" 1665 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1666 | 1667 | [[package]] 1668 | name = "windows_aarch64_msvc" 1669 | version = "0.52.6" 1670 | source = "registry+https://github.com/rust-lang/crates.io-index" 1671 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1672 | 1673 | [[package]] 1674 | name = "windows_i686_gnu" 1675 | version = "0.48.5" 1676 | source = "registry+https://github.com/rust-lang/crates.io-index" 1677 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1678 | 1679 | [[package]] 1680 | name = "windows_i686_gnu" 1681 | version = "0.52.6" 1682 | source = "registry+https://github.com/rust-lang/crates.io-index" 1683 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1684 | 1685 | [[package]] 1686 | name = "windows_i686_gnullvm" 1687 | version = "0.52.6" 1688 | source = "registry+https://github.com/rust-lang/crates.io-index" 1689 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1690 | 1691 | [[package]] 1692 | name = "windows_i686_msvc" 1693 | version = "0.48.5" 1694 | source = "registry+https://github.com/rust-lang/crates.io-index" 1695 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1696 | 1697 | [[package]] 1698 | name = "windows_i686_msvc" 1699 | version = "0.52.6" 1700 | source = "registry+https://github.com/rust-lang/crates.io-index" 1701 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1702 | 1703 | [[package]] 1704 | name = "windows_x86_64_gnu" 1705 | version = "0.48.5" 1706 | source = "registry+https://github.com/rust-lang/crates.io-index" 1707 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1708 | 1709 | [[package]] 1710 | name = "windows_x86_64_gnu" 1711 | version = "0.52.6" 1712 | source = "registry+https://github.com/rust-lang/crates.io-index" 1713 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1714 | 1715 | [[package]] 1716 | name = "windows_x86_64_gnullvm" 1717 | version = "0.48.5" 1718 | source = "registry+https://github.com/rust-lang/crates.io-index" 1719 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1720 | 1721 | [[package]] 1722 | name = "windows_x86_64_gnullvm" 1723 | version = "0.52.6" 1724 | source = "registry+https://github.com/rust-lang/crates.io-index" 1725 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1726 | 1727 | [[package]] 1728 | name = "windows_x86_64_msvc" 1729 | version = "0.48.5" 1730 | source = "registry+https://github.com/rust-lang/crates.io-index" 1731 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1732 | 1733 | [[package]] 1734 | name = "windows_x86_64_msvc" 1735 | version = "0.52.6" 1736 | source = "registry+https://github.com/rust-lang/crates.io-index" 1737 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1738 | 1739 | [[package]] 1740 | name = "winnow" 1741 | version = "0.6.16" 1742 | source = "registry+https://github.com/rust-lang/crates.io-index" 1743 | checksum = "b480ae9340fc261e6be3e95a1ba86d54ae3f9171132a73ce8d4bbaf68339507c" 1744 | dependencies = [ 1745 | "memchr", 1746 | ] 1747 | 1748 | [[package]] 1749 | name = "yansi" 1750 | version = "1.0.1" 1751 | source = "registry+https://github.com/rust-lang/crates.io-index" 1752 | checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" 1753 | dependencies = [ 1754 | "is-terminal", 1755 | ] 1756 | --------------------------------------------------------------------------------