From 9508d4223e9bd982676b48f4b5be595aaa8927b9 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Fri, 10 Mar 2023 14:59:17 +0100
Subject: [PATCH 01/26] feat: draft of extracting service integrations
---
Cargo.toml | 3 +-
codegen/src/shuttle_main/mod.rs | 134 +++++++++++++++++++--------
integrations/README.md | 5 +
integrations/shuttle-axum/Cargo.toml | 12 +++
integrations/shuttle-axum/src/lib.rs | 39 ++++++++
runtime/src/lib.rs | 8 +-
6 files changed, 158 insertions(+), 43 deletions(-)
create mode 100644 integrations/README.md
create mode 100644 integrations/shuttle-axum/Cargo.toml
create mode 100644 integrations/shuttle-axum/src/lib.rs
diff --git a/Cargo.toml b/Cargo.toml
index fb3a9ccda..ebcd4bb4f 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -20,7 +20,8 @@ exclude = [
"resources/persist",
"resources/secrets",
"resources/shared-db",
- "resources/static-folder"
+ "resources/static-folder",
+ "integrations"
]
[workspace.package]
diff --git a/codegen/src/shuttle_main/mod.rs b/codegen/src/shuttle_main/mod.rs
index 3b73f82a5..22698db62 100644
--- a/codegen/src/shuttle_main/mod.rs
+++ b/codegen/src/shuttle_main/mod.rs
@@ -4,7 +4,7 @@ use quote::{quote, ToTokens};
use syn::{
parenthesized, parse::Parse, parse2, parse_macro_input, parse_quote, punctuated::Punctuated,
spanned::Spanned, token::Paren, Attribute, Expr, FnArg, Ident, ItemFn, Pat, PatIdent, Path,
- ReturnType, Signature, Stmt, Token, Type, TypePath,
+ PathSegment, ReturnType, Signature, Stmt, Token, Type, TypePath,
};
pub(crate) fn r#impl(_attr: TokenStream, item: TokenStream) -> TokenStream {
@@ -12,11 +12,10 @@ pub(crate) fn r#impl(_attr: TokenStream, item: TokenStream) -> TokenStream {
let loader = Loader::from_item_fn(&mut fn_decl);
+ let main_fn = MainFn::from_item_fn(&mut fn_decl);
+
let expanded = quote! {
- #[tokio::main]
- async fn main() {
- shuttle_runtime::start(loader).await;
- }
+ #main_fn
#loader
@@ -30,6 +29,11 @@ struct Loader {
fn_ident: Ident,
fn_inputs: Vec,
fn_return: TypePath,
+ import_path: PathSegment,
+}
+
+struct MainFn {
+ import_path: PathSegment,
}
#[derive(Debug, PartialEq)]
@@ -128,10 +132,16 @@ impl Loader {
.collect();
if let Some(type_path) = check_return_type(item_fn.sig.clone()) {
+ // We need the first segment of the path so we can import the codegen dependencies from it.
+ let Some(import_path) = type_path.path.segments.first().cloned() else {
+ return None;
+ };
+
Some(Self {
fn_ident: item_fn.sig.ident.clone(),
fn_inputs: inputs,
fn_return: type_path,
+ import_path,
})
} else {
None
@@ -139,6 +149,21 @@ impl Loader {
}
}
+impl MainFn {
+ pub(crate) fn from_item_fn(item_fn: &mut ItemFn) -> Option {
+ if let Some(type_path) = check_return_type(item_fn.sig.clone()) {
+ // We need the first segment of the path so we can import the codegen dependencies from it.
+ let Some(import_path) = type_path.path.segments.first().cloned() else {
+ return None;
+ };
+
+ Some(Self { import_path })
+ } else {
+ None
+ }
+ }
+}
+
fn check_return_type(signature: Signature) -> Option {
match signature.output {
ReturnType::Default => {
@@ -193,6 +218,8 @@ impl ToTokens for Loader {
let return_type = &self.fn_return;
+ let import_path = &self.import_path;
+
let mut fn_inputs: Vec<_> = Vec::with_capacity(self.fn_inputs.len());
let mut fn_inputs_builder: Vec<_> = Vec::with_capacity(self.fn_inputs.len());
let mut fn_inputs_builder_options: Vec<_> = Vec::with_capacity(self.fn_inputs.len());
@@ -213,25 +240,25 @@ impl ToTokens for Loader {
None
} else {
Some(parse_quote!(
- use shuttle_service::ResourceBuilder;
+ use #import_path::shuttle_runtime::ResourceBuilder;
))
};
let loader = quote! {
- async fn loader(
- mut #factory_ident: shuttle_runtime::ProvisionerFactory,
- logger: shuttle_runtime::Logger,
+ async fn loader(
+ mut #factory_ident: #import_path::shuttle_runtime::ProvisionerFactory,
+ logger: #import_path::shuttle_runtime::Logger,
) -> #return_type {
- use shuttle_service::Context;
- use shuttle_service::tracing_subscriber::prelude::*;
+ use #import_path::shuttle_runtime::Context;
+ use #import_path::shuttle_runtime::tracing_subscriber::prelude::*;
#extra_imports
let filter_layer =
- shuttle_service::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_service::tracing_subscriber::EnvFilter::try_new("INFO"))
+ #import_path::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| #import_path::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_service::tracing_subscriber::registry()
+ #import_path::shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
@@ -246,11 +273,27 @@ impl ToTokens for Loader {
}
}
+impl ToTokens for MainFn {
+ fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) {
+ let import_path = &self.import_path;
+
+ let main_fn = quote! {
+ #[tokio::main]
+ async fn main() {
+ #import_path::shuttle_runtime::start(loader).await;
+ }
+
+ };
+
+ main_fn.to_tokens(tokens);
+ }
+}
+
#[cfg(test)]
mod tests {
use pretty_assertions::assert_eq;
use quote::quote;
- use syn::{parse_quote, Ident};
+ use syn::{parse_quote, Ident, PathSegment};
use super::{Builder, BuilderOptions, Input, Loader};
@@ -269,27 +312,30 @@ mod tests {
#[test]
fn output_with_return() {
+ let import_path: PathSegment = parse_quote!(shuttle_simple);
+
let input = Loader {
fn_ident: parse_quote!(simple),
fn_inputs: Vec::new(),
fn_return: parse_quote!(ShuttleSimple),
+ import_path,
};
let actual = quote!(#input);
let expected = quote! {
- async fn loader(
- mut _factory: shuttle_runtime::ProvisionerFactory,
- logger: shuttle_runtime::Logger,
+ async fn loader(
+ mut _factory: shuttle_simple::shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_simple::shuttle_runtime::Logger,
) -> ShuttleSimple {
- use shuttle_service::Context;
- use shuttle_service::tracing_subscriber::prelude::*;
+ use shuttle_simple::shuttle_runtime::Context;
+ use shuttle_simple::shuttle_runtime::tracing_subscriber::prelude::*;
let filter_layer =
- shuttle_service::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_service::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_simple::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_simple::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_service::tracing_subscriber::registry()
+ shuttle_simple::shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
@@ -334,6 +380,8 @@ mod tests {
#[test]
fn output_with_inputs() {
+ let import_path: PathSegment = parse_quote!(shuttle_complex);
+
let input = Loader {
fn_ident: parse_quote!(complex),
fn_inputs: vec![
@@ -353,24 +401,25 @@ mod tests {
},
],
fn_return: parse_quote!(ShuttleComplex),
+ import_path,
};
let actual = quote!(#input);
let expected = quote! {
- async fn loader(
- mut factory: shuttle_runtime::ProvisionerFactory,
- logger: shuttle_runtime::Logger,
+ async fn loader(
+ mut factory: shuttle_complex::shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_complex::shuttle_runtime::Logger,
) -> ShuttleComplex {
- use shuttle_service::Context;
- use shuttle_service::tracing_subscriber::prelude::*;
- use shuttle_service::ResourceBuilder;
+ use shuttle_complex::shuttle_runtime::Context;
+ use shuttle_complex::shuttle_runtime::tracing_subscriber::prelude::*;
+ use shuttle_complex::shuttle_runtime::ResourceBuilder;
let filter_layer =
- shuttle_service::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_service::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_service::tracing_subscriber::registry()
+ shuttle_complex::shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
@@ -460,6 +509,8 @@ mod tests {
#[test]
fn output_with_input_options() {
+ let import_path: PathSegment = parse_quote!(shuttle_complex);
+
let mut input = Loader {
fn_ident: parse_quote!(complex),
fn_inputs: vec![Input {
@@ -470,6 +521,7 @@ mod tests {
},
}],
fn_return: parse_quote!(ShuttleComplex),
+ import_path,
};
input.fn_inputs[0]
@@ -485,20 +537,20 @@ mod tests {
let actual = quote!(#input);
let expected = quote! {
- async fn loader(
- mut factory: shuttle_runtime::ProvisionerFactory,
- logger: shuttle_runtime::Logger,
+ async fn loader(
+ mut factory: shuttle_complex::shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_complex::shuttle_runtime::Logger,
) -> ShuttleComplex {
- use shuttle_service::Context;
- use shuttle_service::tracing_subscriber::prelude::*;
- use shuttle_service::ResourceBuilder;
+ use shuttle_complex::shuttle_runtime::Context;
+ use shuttle_complex::shuttle_runtime::tracing_subscriber::prelude::*;
+ use shuttle_complex::shuttle_runtime::ResourceBuilder;
let filter_layer =
- shuttle_service::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_service::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_service::tracing_subscriber::registry()
+ shuttle_complex::shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
diff --git a/integrations/README.md b/integrations/README.md
new file mode 100644
index 000000000..39272e508
--- /dev/null
+++ b/integrations/README.md
@@ -0,0 +1,5 @@
+## Service Integrations
+The list of supported frameworks for shuttle is always growing. If you feel we are missing a framework you would like, then feel to create a feature request for your desired framework.
+
+## Writing your own service integration
+Creating your own service integration is quite simple. You only need to implement the [`Service`](https://docs.rs/shuttle-service/latest/shuttle_service/trait.Service.html) trait for your framework.
diff --git a/integrations/shuttle-axum/Cargo.toml b/integrations/shuttle-axum/Cargo.toml
new file mode 100644
index 000000000..65213b78d
--- /dev/null
+++ b/integrations/shuttle-axum/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "shuttle-axum"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+async-trait = "0.1.56"
+axum = { version = "0.6.0" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
new file mode 100644
index 000000000..8d075586e
--- /dev/null
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -0,0 +1,39 @@
+//! Shuttle service integration for the Axum web framework.
+//! ## Example
+//! ```rust,no_run
+//! use shuttle_axum::AxumService;
+//!
+//! async fn hello_world() -> &'static str {
+//! "Hello, world!"
+//! }
+//!
+//! #[shuttle_axum::main]
+//! async fn axum() -> shuttle_service::ShuttleAxum {
+//! let router = Router::new().route("/hello", get(hello_world));
+//!
+//! Ok(AxumService(router))
+//! }
+//! ```
+
+/// A wrapper type for `axum::Router` so we can implement `shuttle_runtime::Service` for it.
+pub struct AxumService(pub axum::Router);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for AxumService {
+ /// Takes the router that is returned by the user in their `shuttle_runtime::main` function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
+ axum::Server::bind(&addr)
+ .serve(self.0.into_make_service())
+ .await
+ .map_err(shuttle_runtime::CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+/// The return type that should be returned from the `shuttle_runtime::main` function.
+pub type ShuttleAxum = Result;
+
+pub use shuttle_runtime;
+pub use shuttle_runtime::*;
diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs
index 233616493..44cf6a994 100644
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -4,10 +4,16 @@ mod logger;
mod next;
mod provisioner_factory;
+pub use async_trait::async_trait;
pub use legacy::{start, Legacy};
pub use logger::Logger;
#[cfg(feature = "next")]
pub use next::{AxumWasm, NextArgs};
pub use provisioner_factory::ProvisionerFactory;
pub use shuttle_common::storage_manager::StorageManager;
-pub use shuttle_service::{main, Error, Service};
+pub use shuttle_service::{main, Error, ResourceBuilder, Service};
+
+pub type CustomError = anyhow::Error;
+pub use anyhow::Context;
+pub use tracing;
+pub use tracing_subscriber;
From 5bde6a3bae78a5ea037c93bdceb7b865c95c0207 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Fri, 10 Mar 2023 15:20:06 +0100
Subject: [PATCH 02/26] refactor: revert codegen changes
---
codegen/src/shuttle_main/mod.rs | 144 ++++++++++----------------------
1 file changed, 46 insertions(+), 98 deletions(-)
diff --git a/codegen/src/shuttle_main/mod.rs b/codegen/src/shuttle_main/mod.rs
index 22698db62..3a9fa923a 100644
--- a/codegen/src/shuttle_main/mod.rs
+++ b/codegen/src/shuttle_main/mod.rs
@@ -4,7 +4,7 @@ use quote::{quote, ToTokens};
use syn::{
parenthesized, parse::Parse, parse2, parse_macro_input, parse_quote, punctuated::Punctuated,
spanned::Spanned, token::Paren, Attribute, Expr, FnArg, Ident, ItemFn, Pat, PatIdent, Path,
- PathSegment, ReturnType, Signature, Stmt, Token, Type, TypePath,
+ ReturnType, Signature, Stmt, Token, Type, TypePath,
};
pub(crate) fn r#impl(_attr: TokenStream, item: TokenStream) -> TokenStream {
@@ -12,10 +12,11 @@ pub(crate) fn r#impl(_attr: TokenStream, item: TokenStream) -> TokenStream {
let loader = Loader::from_item_fn(&mut fn_decl);
- let main_fn = MainFn::from_item_fn(&mut fn_decl);
-
let expanded = quote! {
- #main_fn
+ #[tokio::main]
+ async fn main() {
+ shuttle_runtime::start(loader).await;
+ }
#loader
@@ -29,11 +30,6 @@ struct Loader {
fn_ident: Ident,
fn_inputs: Vec,
fn_return: TypePath,
- import_path: PathSegment,
-}
-
-struct MainFn {
- import_path: PathSegment,
}
#[derive(Debug, PartialEq)]
@@ -41,7 +37,7 @@ struct Input {
/// The identifier for a resource input
ident: Ident,
- /// The shuttle_service builder for this resource
+ /// The shuttle_runtime builder for this resource
builder: Builder,
}
@@ -132,16 +128,10 @@ impl Loader {
.collect();
if let Some(type_path) = check_return_type(item_fn.sig.clone()) {
- // We need the first segment of the path so we can import the codegen dependencies from it.
- let Some(import_path) = type_path.path.segments.first().cloned() else {
- return None;
- };
-
Some(Self {
fn_ident: item_fn.sig.ident.clone(),
fn_inputs: inputs,
fn_return: type_path,
- import_path,
})
} else {
None
@@ -149,29 +139,14 @@ impl Loader {
}
}
-impl MainFn {
- pub(crate) fn from_item_fn(item_fn: &mut ItemFn) -> Option {
- if let Some(type_path) = check_return_type(item_fn.sig.clone()) {
- // We need the first segment of the path so we can import the codegen dependencies from it.
- let Some(import_path) = type_path.path.segments.first().cloned() else {
- return None;
- };
-
- Some(Self { import_path })
- } else {
- None
- }
- }
-}
-
fn check_return_type(signature: Signature) -> Option {
match signature.output {
ReturnType::Default => {
emit_error!(
signature,
- "shuttle_service::main functions need to return a service";
+ "shuttle_runtime::main functions need to return a service";
hint = "See the docs for services with first class support";
- doc = "https://docs.rs/shuttle-service/latest/shuttle_service/attr.main.html#shuttle-supported-services"
+ doc = "https://docs.rs/shuttle-service/latest/shuttle_runtime/attr.main.html#shuttle-supported-services"
);
None
}
@@ -180,9 +155,9 @@ fn check_return_type(signature: Signature) -> Option {
_ => {
emit_error!(
r#type,
- "shuttle_service::main functions need to return a first class service or 'Result";
+ "shuttle_runtime::main functions need to return a first class service or 'Result";
hint = "See the docs for services with first class support";
- doc = "https://docs.rs/shuttle-service/latest/shuttle_service/attr.main.html#shuttle-supported-services"
+ doc = "https://docs.rs/shuttle-service/latest/shuttle_runtime/attr.main.html#shuttle-supported-services"
);
None
}
@@ -218,8 +193,6 @@ impl ToTokens for Loader {
let return_type = &self.fn_return;
- let import_path = &self.import_path;
-
let mut fn_inputs: Vec<_> = Vec::with_capacity(self.fn_inputs.len());
let mut fn_inputs_builder: Vec<_> = Vec::with_capacity(self.fn_inputs.len());
let mut fn_inputs_builder_options: Vec<_> = Vec::with_capacity(self.fn_inputs.len());
@@ -240,25 +213,25 @@ impl ToTokens for Loader {
None
} else {
Some(parse_quote!(
- use #import_path::shuttle_runtime::ResourceBuilder;
+ use shuttle_runtime::ResourceBuilder;
))
};
let loader = quote! {
- async fn loader(
- mut #factory_ident: #import_path::shuttle_runtime::ProvisionerFactory,
- logger: #import_path::shuttle_runtime::Logger,
+ async fn loader(
+ mut #factory_ident: shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_runtime::Logger,
) -> #return_type {
- use #import_path::shuttle_runtime::Context;
- use #import_path::shuttle_runtime::tracing_subscriber::prelude::*;
+ use shuttle_runtime::Context;
+ use shuttle_runtime::tracing_subscriber::prelude::*;
#extra_imports
let filter_layer =
- #import_path::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| #import_path::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- #import_path::shuttle_runtime::tracing_subscriber::registry()
+ shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
@@ -273,27 +246,11 @@ impl ToTokens for Loader {
}
}
-impl ToTokens for MainFn {
- fn to_tokens(&self, tokens: &mut proc_macro2::TokenStream) {
- let import_path = &self.import_path;
-
- let main_fn = quote! {
- #[tokio::main]
- async fn main() {
- #import_path::shuttle_runtime::start(loader).await;
- }
-
- };
-
- main_fn.to_tokens(tokens);
- }
-}
-
#[cfg(test)]
mod tests {
use pretty_assertions::assert_eq;
use quote::quote;
- use syn::{parse_quote, Ident, PathSegment};
+ use syn::{parse_quote, Ident};
use super::{Builder, BuilderOptions, Input, Loader};
@@ -312,30 +269,27 @@ mod tests {
#[test]
fn output_with_return() {
- let import_path: PathSegment = parse_quote!(shuttle_simple);
-
let input = Loader {
fn_ident: parse_quote!(simple),
fn_inputs: Vec::new(),
fn_return: parse_quote!(ShuttleSimple),
- import_path,
};
let actual = quote!(#input);
let expected = quote! {
- async fn loader(
- mut _factory: shuttle_simple::shuttle_runtime::ProvisionerFactory,
- logger: shuttle_simple::shuttle_runtime::Logger,
+ async fn loader(
+ mut _factory: shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_runtime::Logger,
) -> ShuttleSimple {
- use shuttle_simple::shuttle_runtime::Context;
- use shuttle_simple::shuttle_runtime::tracing_subscriber::prelude::*;
+ use shuttle_runtime::Context;
+ use shuttle_runtime::tracing_subscriber::prelude::*;
let filter_layer =
- shuttle_simple::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_simple::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_simple::shuttle_runtime::tracing_subscriber::registry()
+ shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
@@ -380,8 +334,6 @@ mod tests {
#[test]
fn output_with_inputs() {
- let import_path: PathSegment = parse_quote!(shuttle_complex);
-
let input = Loader {
fn_ident: parse_quote!(complex),
fn_inputs: vec![
@@ -401,25 +353,24 @@ mod tests {
},
],
fn_return: parse_quote!(ShuttleComplex),
- import_path,
};
let actual = quote!(#input);
let expected = quote! {
- async fn loader(
- mut factory: shuttle_complex::shuttle_runtime::ProvisionerFactory,
- logger: shuttle_complex::shuttle_runtime::Logger,
+ async fn loader(
+ mut factory: shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_runtime::Logger,
) -> ShuttleComplex {
- use shuttle_complex::shuttle_runtime::Context;
- use shuttle_complex::shuttle_runtime::tracing_subscriber::prelude::*;
- use shuttle_complex::shuttle_runtime::ResourceBuilder;
+ use shuttle_runtime::Context;
+ use shuttle_runtime::tracing_subscriber::prelude::*;
+ use shuttle_runtime::ResourceBuilder;
let filter_layer =
- shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_complex::shuttle_runtime::tracing_subscriber::registry()
+ shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
@@ -509,8 +460,6 @@ mod tests {
#[test]
fn output_with_input_options() {
- let import_path: PathSegment = parse_quote!(shuttle_complex);
-
let mut input = Loader {
fn_ident: parse_quote!(complex),
fn_inputs: vec![Input {
@@ -521,7 +470,6 @@ mod tests {
},
}],
fn_return: parse_quote!(ShuttleComplex),
- import_path,
};
input.fn_inputs[0]
@@ -537,20 +485,20 @@ mod tests {
let actual = quote!(#input);
let expected = quote! {
- async fn loader(
- mut factory: shuttle_complex::shuttle_runtime::ProvisionerFactory,
- logger: shuttle_complex::shuttle_runtime::Logger,
+ async fn loader(
+ mut factory: shuttle_runtime::ProvisionerFactory,
+ logger: shuttle_runtime::Logger,
) -> ShuttleComplex {
- use shuttle_complex::shuttle_runtime::Context;
- use shuttle_complex::shuttle_runtime::tracing_subscriber::prelude::*;
- use shuttle_complex::shuttle_runtime::ResourceBuilder;
+ use shuttle_runtime::Context;
+ use shuttle_runtime::tracing_subscriber::prelude::*;
+ use shuttle_runtime::ResourceBuilder;
let filter_layer =
- shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
- .or_else(|_| shuttle_complex::shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
+ shuttle_runtime::tracing_subscriber::EnvFilter::try_from_default_env()
+ .or_else(|_| shuttle_runtime::tracing_subscriber::EnvFilter::try_new("INFO"))
.unwrap();
- shuttle_complex::shuttle_runtime::tracing_subscriber::registry()
+ shuttle_runtime::tracing_subscriber::registry()
.with(filter_layer)
.with(logger)
.init();
From 275c63283ea10027a441174b1642fd28fe197b15 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Fri, 10 Mar 2023 15:23:53 +0100
Subject: [PATCH 03/26] refactor: depend on shuttle_runtime & service
integration
---
integrations/shuttle-axum/src/lib.rs | 3 ---
runtime/src/lib.rs | 4 ++--
service/Cargo.toml | 2 --
service/src/lib.rs | 25 ++-----------------------
4 files changed, 4 insertions(+), 30 deletions(-)
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
index 8d075586e..d8ff69b46 100644
--- a/integrations/shuttle-axum/src/lib.rs
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -34,6 +34,3 @@ impl shuttle_runtime::Service for AxumService {
/// The return type that should be returned from the `shuttle_runtime::main` function.
pub type ShuttleAxum = Result;
-
-pub use shuttle_runtime;
-pub use shuttle_runtime::*;
diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs
index 44cf6a994..63a574f23 100644
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -11,9 +11,9 @@ pub use logger::Logger;
pub use next::{AxumWasm, NextArgs};
pub use provisioner_factory::ProvisionerFactory;
pub use shuttle_common::storage_manager::StorageManager;
-pub use shuttle_service::{main, Error, ResourceBuilder, Service};
+pub use shuttle_service::{main, CustomError, Error, ResourceBuilder, Service};
-pub type CustomError = anyhow::Error;
+// Dependencies required by the codegen
pub use anyhow::Context;
pub use tracing;
pub use tracing_subscriber;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index ceb48a7ef..b82ef7733 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -34,7 +34,6 @@ tide = { version = "0.16.0", optional = true }
tokio = { version = "1.22.0", features = ["sync"] }
tower = { version = "0.4.13", features = ["make"], optional = true }
tracing = { workspace = true }
-tracing-subscriber = { workspace = true, features = ["env-filter"] }
warp = { version = "0.3.3", optional = true }
# Tide does not have tokio support. So make sure async-std is compatible with tokio
@@ -62,7 +61,6 @@ codegen = ["shuttle-codegen/frameworks"]
builder = ["cargo"]
web-actix-web = ["actix-web", "num_cpus"]
-web-axum = ["axum"]
web-rocket = ["rocket"]
web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index de58ad046..ae5a3ab35 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -213,15 +213,10 @@ use std::collections::BTreeMap;
use std::net::SocketAddr;
use std::path::PathBuf;
-pub use async_trait::async_trait;
-
-// Pub uses by `codegen`
-pub use anyhow::Context;
-pub use tracing;
-pub use tracing_subscriber;
+use async_trait::async_trait;
pub mod error;
-pub use error::Error;
+pub use error::{CustomError, Error};
pub use shuttle_common::database;
@@ -456,22 +451,6 @@ where
#[cfg(feature = "web-warp")]
pub type ShuttleWarp = Result, Error>;
-#[cfg(feature = "web-axum")]
-#[async_trait]
-impl Service for axum::Router {
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- axum::Server::bind(&addr)
- .serve(self.into_make_service())
- .await
- .map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "web-axum")]
-pub type ShuttleAxum = Result;
-
#[cfg(feature = "web-actix-web")]
#[async_trait]
impl Service for F
From 2788e9af8dba583f9d4987c851c37cbe14e92a51 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Fri, 10 Mar 2023 15:39:06 +0100
Subject: [PATCH 04/26] feat: remove rocket bin, comment out version check
---
runtime/Cargo.toml | 11 ++-------
runtime/src/bin/rocket.rs | 51 ---------------------------------------
service/src/builder.rs | 47 ++++++++++++++++++------------------
3 files changed, 26 insertions(+), 83 deletions(-)
delete mode 100644 runtime/src/bin/rocket.rs
diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml
index 36f83ee99..973483bd3 100644
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -6,9 +6,6 @@ license.workspace = true
publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-[[bin]]
-name = "rocket"
-
[[bin]]
name = "shuttle-next"
required-features = ["next"]
@@ -36,11 +33,6 @@ wasi-common = { version = "4.0.0", optional = true }
wasmtime = { version = "4.0.0", optional = true }
wasmtime-wasi = { version = "4.0.0", optional = true }
-# For rocket.rs
-# TODO: remove
-shuttle-secrets = { path = "../resources/secrets" }
-rocket = "0.5.0-rc.2"
-
[dependencies.shuttle-common]
workspace = true
features = ["service"]
@@ -50,7 +42,7 @@ workspace = true
[dependencies.shuttle-service]
workspace = true
-features = ["builder", "web-rocket"] # TODO: remove web-rocket
+features = ["builder"] # TODO: remove web-rocket
[dev-dependencies]
crossbeam-channel = "0.5.6"
@@ -58,6 +50,7 @@ portpicker = "0.1.1"
futures = { version = "0.3.25" }
[features]
+default = []
next = [
"cap-std",
"futures",
diff --git a/runtime/src/bin/rocket.rs b/runtime/src/bin/rocket.rs
deleted file mode 100644
index db3836826..000000000
--- a/runtime/src/bin/rocket.rs
+++ /dev/null
@@ -1,51 +0,0 @@
-// The few line below is what we should now codegen for legacy
-#[tokio::main]
-async fn main() {
- shuttle_runtime::start(loader).await;
-}
-
-async fn loader(
- mut factory: shuttle_runtime::ProvisionerFactory,
- _logger: shuttle_runtime::Logger,
-) -> shuttle_service::ShuttleRocket {
- use shuttle_service::ResourceBuilder;
-
- let secrets = shuttle_secrets::Secrets::new().build(&mut factory).await?;
-
- rocket(secrets).await
-}
-
-// Everything below this is the usual code a user will write
-use anyhow::anyhow;
-use rocket::response::status::BadRequest;
-use rocket::State;
-use shuttle_secrets::SecretStore;
-
-#[rocket::get("/secret")]
-async fn secret(state: &State) -> Result> {
- Ok(state.secret.clone())
-}
-
-struct MyState {
- secret: String,
-}
-
-// #[shuttle_service::main]
-pub async fn rocket(
- // #[shuttle_secrets::Secrets] secret_store: SecretStore,
- secret_store: SecretStore,
-) -> shuttle_service::ShuttleRocket {
- // get secret defined in `Secrets.toml` file.
- let secret = if let Some(secret) = secret_store.get("MY_API_KEY") {
- secret
- } else {
- return Err(anyhow!("secret was not found").into());
- };
-
- let state = MyState { secret };
- let rocket = rocket::build()
- .mount("/", rocket::routes![secret])
- .manage(state);
-
- Ok(rocket)
-}
diff --git a/service/src/builder.rs b/service/src/builder.rs
index 1d1358a8b..6b8f1828a 100644
--- a/service/src/builder.rs
+++ b/service/src/builder.rs
@@ -57,7 +57,7 @@ pub async fn build_crate(
let is_next = is_next(summary);
if !is_next {
- check_version(summary)?;
+ // check_version(summary)?;
ensure_binary(current.manifest())?;
} else {
ensure_cdylib(current.manifest_mut())?;
@@ -208,28 +208,29 @@ fn ensure_cdylib(manifest: &mut Manifest) -> anyhow::Result<()> {
}
}
-/// Check that the crate being build is compatible with this version of loader
-fn check_version(summary: &Summary) -> anyhow::Result<()> {
- let valid_version = VERSION.to_semver().unwrap();
-
- let version_req = if let Some(shuttle) = summary
- .dependencies()
- .iter()
- .find(|dependency| dependency.package_name() == NAME)
- {
- shuttle.version_req()
- } else {
- return Err(anyhow!("this crate does not use the shuttle service"));
- };
-
- if version_req.matches(&valid_version) {
- Ok(())
- } else {
- Err(anyhow!(
- "the version of `shuttle-service` specified as a dependency to this service ({version_req}) is not supported by this project instance ({valid_version}); try updating `shuttle-service` to '{valid_version}' or update the project instance using `cargo shuttle project rm` and `cargo shuttle project new`"
- ))
- }
-}
+// TODO: do we still need this? If so we need to check the runtime version, since that's what the user depends on.
+// /// Check that the crate being build is compatible with this version of loader
+// fn check_version(summary: &Summary) -> anyhow::Result<()> {
+// let valid_version = VERSION.to_semver().unwrap();
+
+// let version_req = if let Some(shuttle) = summary
+// .dependencies()
+// .iter()
+// .find(|dependency| dependency.package_name() == NAME)
+// {
+// shuttle.version_req()
+// } else {
+// return Err(anyhow!("this crate does not use the shuttle service"));
+// };
+
+// if version_req.matches(&valid_version) {
+// Ok(())
+// } else {
+// Err(anyhow!(
+// "the version of `shuttle-service` specified as a dependency to this service ({version_req}) is not supported by this project instance ({valid_version}); try updating `shuttle-service` to '{valid_version}' or update the project instance using `cargo shuttle project rm` and `cargo shuttle project new`"
+// ))
+// }
+// }
/// Ensure `panic = "abort"` is not set:
fn check_no_panic(ws: &Workspace) -> anyhow::Result<()> {
From ff57736e9de59ee10c3559d0887ea9adfa9edac6 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Fri, 10 Mar 2023 16:37:38 +0100
Subject: [PATCH 05/26] feat: impl from for integration wrapper
---
integrations/shuttle-axum/src/lib.rs | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
index d8ff69b46..ae5fcae57 100644
--- a/integrations/shuttle-axum/src/lib.rs
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -32,5 +32,10 @@ impl shuttle_runtime::Service for AxumService {
}
}
+impl From for AxumService {
+ fn from(router: axum::Router) -> Self {
+ Self(router)
+ }
+}
/// The return type that should be returned from the `shuttle_runtime::main` function.
pub type ShuttleAxum = Result;
From 966eb3cc41528ece2c7f4a577d5bee4d1f08e07b Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 13:07:59 +0100
Subject: [PATCH 06/26] feat: cleanup shuttle-axum docs, remove version check
---
integrations/shuttle-axum/Cargo.toml | 2 +-
integrations/shuttle-axum/src/lib.rs | 8 ++++----
service/src/builder.rs | 28 ++--------------------------
service/src/lib.rs | 2 --
4 files changed, 7 insertions(+), 33 deletions(-)
diff --git a/integrations/shuttle-axum/Cargo.toml b/integrations/shuttle-axum/Cargo.toml
index 65213b78d..9c8a09e2c 100644
--- a/integrations/shuttle-axum/Cargo.toml
+++ b/integrations/shuttle-axum/Cargo.toml
@@ -8,5 +8,5 @@ edition = "2021"
[dependencies]
async-trait = "0.1.56"
-axum = { version = "0.6.0" }
+axum = { version = "0.6.10" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
index ae5fcae57..1902af763 100644
--- a/integrations/shuttle-axum/src/lib.rs
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -1,17 +1,17 @@
//! Shuttle service integration for the Axum web framework.
//! ## Example
//! ```rust,no_run
-//! use shuttle_axum::AxumService;
+//! use axum::{routing::get, Router};
//!
//! async fn hello_world() -> &'static str {
//! "Hello, world!"
//! }
//!
-//! #[shuttle_axum::main]
-//! async fn axum() -> shuttle_service::ShuttleAxum {
+//! #[shuttle_runtime::main]
+//! async fn axum() -> shuttle_axum::ShuttleAxum {
//! let router = Router::new().route("/hello", get(hello_world));
//!
-//! Ok(AxumService(router))
+//! Ok(router.into())
//! }
//! ```
diff --git a/service/src/builder.rs b/service/src/builder.rs
index 6b8f1828a..4eb435cf3 100644
--- a/service/src/builder.rs
+++ b/service/src/builder.rs
@@ -4,15 +4,15 @@ use anyhow::{anyhow, bail, Context};
use cargo::core::compiler::{CompileKind, CompileMode, CompileTarget, MessageFormat};
use cargo::core::{Manifest, Shell, Summary, Verbosity, Workspace};
use cargo::ops::{clean, compile, CleanOptions, CompileOptions};
+use cargo::util::homedir;
use cargo::util::interning::InternedString;
-use cargo::util::{homedir, ToSemver};
use cargo::Config;
use cargo_metadata::Message;
use crossbeam_channel::Sender;
use pipe::PipeWriter;
use tracing::{error, trace};
-use crate::{NAME, NEXT_NAME, VERSION};
+use crate::NEXT_NAME;
/// How to run/build the project
pub enum Runtime {
@@ -208,30 +208,6 @@ fn ensure_cdylib(manifest: &mut Manifest) -> anyhow::Result<()> {
}
}
-// TODO: do we still need this? If so we need to check the runtime version, since that's what the user depends on.
-// /// Check that the crate being build is compatible with this version of loader
-// fn check_version(summary: &Summary) -> anyhow::Result<()> {
-// let valid_version = VERSION.to_semver().unwrap();
-
-// let version_req = if let Some(shuttle) = summary
-// .dependencies()
-// .iter()
-// .find(|dependency| dependency.package_name() == NAME)
-// {
-// shuttle.version_req()
-// } else {
-// return Err(anyhow!("this crate does not use the shuttle service"));
-// };
-
-// if version_req.matches(&valid_version) {
-// Ok(())
-// } else {
-// Err(anyhow!(
-// "the version of `shuttle-service` specified as a dependency to this service ({version_req}) is not supported by this project instance ({valid_version}); try updating `shuttle-service` to '{valid_version}' or update the project instance using `cargo shuttle project rm` and `cargo shuttle project new`"
-// ))
-// }
-// }
-
/// Ensure `panic = "abort"` is not set:
fn check_no_panic(ws: &Workspace) -> anyhow::Result<()> {
if let Some(profiles) = ws.profiles() {
diff --git a/service/src/lib.rs b/service/src/lib.rs
index ae5a3ab35..976fd9c77 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -573,6 +573,4 @@ where
#[cfg(feature = "bot-poise")]
pub type ShuttlePoise = Result>, Error>;
-pub const VERSION: &str = env!("CARGO_PKG_VERSION");
-pub const NAME: &str = env!("CARGO_PKG_NAME");
pub const NEXT_NAME: &str = "shuttle-next";
From 994b9ccd7f606591c33cccb1c2b0c4fb39ef4c92 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 13:45:12 +0100
Subject: [PATCH 07/26] feat: actix-web service integration
---
integrations/shuttle-actix-web/Cargo.toml | 13 +++++
integrations/shuttle-actix-web/src/lib.rs | 60 +++++++++++++++++++++++
integrations/shuttle-axum/src/lib.rs | 2 +-
service/Cargo.toml | 3 --
service/src/lib.rs | 22 ---------
5 files changed, 74 insertions(+), 26 deletions(-)
create mode 100644 integrations/shuttle-actix-web/Cargo.toml
create mode 100644 integrations/shuttle-actix-web/src/lib.rs
diff --git a/integrations/shuttle-actix-web/Cargo.toml b/integrations/shuttle-actix-web/Cargo.toml
new file mode 100644
index 000000000..06fdd1aef
--- /dev/null
+++ b/integrations/shuttle-actix-web/Cargo.toml
@@ -0,0 +1,13 @@
+[package]
+name = "shuttle-actix-web"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+async-trait = "0.1.56"
+actix-web = { version = "4.3.1" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+num_cpus = "1.15.0"
diff --git a/integrations/shuttle-actix-web/src/lib.rs b/integrations/shuttle-actix-web/src/lib.rs
new file mode 100644
index 000000000..0eddfc0b8
--- /dev/null
+++ b/integrations/shuttle-actix-web/src/lib.rs
@@ -0,0 +1,60 @@
+//! Shuttle service integration for the Actix Web framework.
+//! ## Example
+//! ```rust,no_run
+//! use actix_web::{get, web::ServiceConfig};
+//! use shuttle_actix_web::ShuttleActixWeb;
+//!
+//! #[get("/hello")]
+//! async fn hello_world() -> &'static str {
+//! "Hello World!"
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn actix_web(
+//! ) -> ShuttleActixWeb {
+//! let config = move |cfg: &mut ServiceConfig| {
+//! cfg.service(hello_world);
+//! };
+//!
+//! Ok(config.into())
+//! }
+//! ```
+use std::net::SocketAddr;
+
+/// A wrapper type for a closure that returns an [actix_web::web::ServiceConfig] so we can implement
+/// [shuttle_runtime::Service] for it.
+#[derive(Clone)]
+pub struct ActixWebService(F);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for ActixWebService
+where
+ F: FnOnce(&mut actix_web::web::ServiceConfig) + Send + Clone + 'static,
+{
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), shuttle_runtime::Error> {
+ // Start a worker for each cpu, but no more than 4.
+ let worker_count = num_cpus::get().min(4);
+
+ let server =
+ actix_web::HttpServer::new(move || actix_web::App::new().configure(self.0.clone()))
+ .workers(worker_count)
+ .bind(addr)?
+ .run();
+
+ server.await.map_err(shuttle_runtime::CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From for ActixWebService
+where
+ F: FnOnce(&mut actix_web::web::ServiceConfig) + Send + Clone + 'static,
+{
+ fn from(service_config: F) -> Self {
+ Self(service_config)
+ }
+}
+
+/// The return type that should be returned from the `shuttle_runtime::main` function.
+pub type ShuttleActixWeb = Result, shuttle_runtime::Error>;
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
index 1902af763..8ce9428fa 100644
--- a/integrations/shuttle-axum/src/lib.rs
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -15,7 +15,7 @@
//! }
//! ```
-/// A wrapper type for `axum::Router` so we can implement `shuttle_runtime::Service` for it.
+/// A wrapper type for [axum::Router] so we can implement [shuttle_runtime::Service] for it.
pub struct AxumService(pub axum::Router);
#[shuttle_runtime::async_trait]
diff --git a/service/Cargo.toml b/service/Cargo.toml
index b82ef7733..0ab9ddbc1 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -10,7 +10,6 @@ homepage = "https://www.shuttle.rs"
doctest = false
[dependencies]
-actix-web = { version = "4.2.1", optional = true }
anyhow = { workspace = true }
async-trait = { workspace = true }
axum = { workspace = true, optional = true }
@@ -20,7 +19,6 @@ cargo = { version = "0.65.0", optional = true }
cargo_metadata = "0.15.2"
crossbeam-channel = "0.5.6"
hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional = true }
-num_cpus = { version = "1.14.0", optional = true }
pipe = "0.4.0"
poem = { version = "1.3.49", optional = true }
rocket = { version = "0.5.0-rc.2", optional = true }
@@ -60,7 +58,6 @@ default = ["codegen"]
codegen = ["shuttle-codegen/frameworks"]
builder = ["cargo"]
-web-actix-web = ["actix-web", "num_cpus"]
web-rocket = ["rocket"]
web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 976fd9c77..4e0b192bf 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -451,28 +451,6 @@ where
#[cfg(feature = "web-warp")]
pub type ShuttleWarp = Result, Error>;
-#[cfg(feature = "web-actix-web")]
-#[async_trait]
-impl Service for F
-where
- F: FnOnce(&mut actix_web::web::ServiceConfig) + Sync + Send + Clone + 'static,
-{
- async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
- // Start a worker for each cpu, but no more than 4.
- let worker_count = num_cpus::get().max(4);
-
- let srv = actix_web::HttpServer::new(move || actix_web::App::new().configure(self.clone()))
- .workers(worker_count)
- .bind(addr)?
- .run();
- srv.await.map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-#[cfg(feature = "web-actix-web")]
-pub type ShuttleActixWeb = Result;
-
#[cfg(feature = "web-salvo")]
#[async_trait]
impl Service for salvo::Router {
From 19ef9667e7992d645f4f753a4e0a44db92a375f7 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 13:58:10 +0100
Subject: [PATCH 08/26] feat: extract poem service integration
---
integrations/shuttle-actix-web/src/lib.rs | 2 +-
integrations/shuttle-axum/src/lib.rs | 2 +-
integrations/shuttle-poem/Cargo.toml | 12 ++++++
integrations/shuttle-poem/src/lib.rs | 49 +++++++++++++++++++++++
service/Cargo.toml | 2 -
service/src/lib.rs | 19 ---------
6 files changed, 63 insertions(+), 23 deletions(-)
create mode 100644 integrations/shuttle-poem/Cargo.toml
create mode 100644 integrations/shuttle-poem/src/lib.rs
diff --git a/integrations/shuttle-actix-web/src/lib.rs b/integrations/shuttle-actix-web/src/lib.rs
index 0eddfc0b8..76547268c 100644
--- a/integrations/shuttle-actix-web/src/lib.rs
+++ b/integrations/shuttle-actix-web/src/lib.rs
@@ -56,5 +56,5 @@ where
}
}
-/// The return type that should be returned from the `shuttle_runtime::main` function.
+/// The return type that should be returned from the [shuttle_runtime::main] function.
pub type ShuttleActixWeb = Result, shuttle_runtime::Error>;
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
index 8ce9428fa..9f580f645 100644
--- a/integrations/shuttle-axum/src/lib.rs
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -37,5 +37,5 @@ impl From for AxumService {
Self(router)
}
}
-/// The return type that should be returned from the `shuttle_runtime::main` function.
+/// The return type that should be returned from the [shuttle_runtime::main] function.
pub type ShuttleAxum = Result;
diff --git a/integrations/shuttle-poem/Cargo.toml b/integrations/shuttle-poem/Cargo.toml
new file mode 100644
index 000000000..2a5ee4bc6
--- /dev/null
+++ b/integrations/shuttle-poem/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "shuttle-poem"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+async-trait = "0.1.56"
+poem = { version = "1.3.55" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-poem/src/lib.rs b/integrations/shuttle-poem/src/lib.rs
new file mode 100644
index 000000000..fa9a75151
--- /dev/null
+++ b/integrations/shuttle-poem/src/lib.rs
@@ -0,0 +1,49 @@
+//! Shuttle service integration for the Poem web framework.
+//! ## Example
+//! ```rust,no_run
+//! use poem::{get, handler, Route};
+//! use shuttle_poem::ShuttlePoem;
+//!
+//! #[handler]
+//! fn hello_world() -> &'static str {
+//! "Hello, world!"
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn poem() -> ShuttlePoem {
+//! let app = Route::new().at("/hello", get(hello_world));
+//!
+//! Ok(app.into())
+//! }
+//!
+//! ```
+
+/// A wrapper type for [poem::Endpoint] so we can implement [shuttle_runtime::Service] for it.
+pub struct PoemService(T);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for PoemService
+where
+ T: poem::Endpoint + Send + 'static,
+{
+ async fn bind(mut self, addr: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
+ poem::Server::new(poem::listener::TcpListener::bind(addr))
+ .run(self.0)
+ .await
+ .map_err(shuttle_runtime::CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From for PoemService
+where
+ T: poem::Endpoint + Send + 'static,
+{
+ fn from(router: T) -> Self {
+ Self(router)
+ }
+}
+
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttlePoem = Result, shuttle_runtime::Error>;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index 0ab9ddbc1..aad679efe 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -20,7 +20,6 @@ cargo_metadata = "0.15.2"
crossbeam-channel = "0.5.6"
hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional = true }
pipe = "0.4.0"
-poem = { version = "1.3.49", optional = true }
rocket = { version = "0.5.0-rc.2", optional = true }
salvo = { version = "0.37.5", optional = true }
serde_json = { workspace = true }
@@ -62,7 +61,6 @@ web-rocket = ["rocket"]
web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
web-tower = ["tower", "hyper"]
-web-poem = ["poem"]
web-salvo = ["salvo"]
bot-serenity = ["serenity"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 4e0b192bf..2dc9ab0dd 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -416,25 +416,6 @@ impl Service for rocket::Rocket {
#[cfg(feature = "web-rocket")]
pub type ShuttleRocket = Result, Error>;
-#[cfg(feature = "web-poem")]
-#[async_trait]
-impl Service for T
-where
- T: poem::Endpoint + Sync + Send + 'static,
-{
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- poem::Server::new(poem::listener::TcpListener::bind(addr))
- .run(self)
- .await
- .map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "web-poem")]
-pub type ShuttlePoem = Result;
-
#[cfg(feature = "web-warp")]
#[async_trait]
impl Service for T
From c6d20332f868f68f21dbfdaf854138f296acd0c4 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 14:22:12 +0100
Subject: [PATCH 09/26] feat: extract poise service integration
---
integrations/shuttle-actix-web/Cargo.toml | 1 -
integrations/shuttle-axum/Cargo.toml | 1 -
integrations/shuttle-poem/Cargo.toml | 1 -
integrations/shuttle-poise/Cargo.toml | 11 ++++
integrations/shuttle-poise/src/lib.rs | 76 +++++++++++++++++++++++
service/Cargo.toml | 2 -
service/src/lib.rs | 17 -----
7 files changed, 87 insertions(+), 22 deletions(-)
create mode 100644 integrations/shuttle-poise/Cargo.toml
create mode 100644 integrations/shuttle-poise/src/lib.rs
diff --git a/integrations/shuttle-actix-web/Cargo.toml b/integrations/shuttle-actix-web/Cargo.toml
index 06fdd1aef..994e3d4c8 100644
--- a/integrations/shuttle-actix-web/Cargo.toml
+++ b/integrations/shuttle-actix-web/Cargo.toml
@@ -7,7 +7,6 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-async-trait = "0.1.56"
actix-web = { version = "4.3.1" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
num_cpus = "1.15.0"
diff --git a/integrations/shuttle-axum/Cargo.toml b/integrations/shuttle-axum/Cargo.toml
index 9c8a09e2c..05b7a6a79 100644
--- a/integrations/shuttle-axum/Cargo.toml
+++ b/integrations/shuttle-axum/Cargo.toml
@@ -7,6 +7,5 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-async-trait = "0.1.56"
axum = { version = "0.6.10" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-poem/Cargo.toml b/integrations/shuttle-poem/Cargo.toml
index 2a5ee4bc6..03e804b39 100644
--- a/integrations/shuttle-poem/Cargo.toml
+++ b/integrations/shuttle-poem/Cargo.toml
@@ -7,6 +7,5 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-async-trait = "0.1.56"
poem = { version = "1.3.55" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-poise/Cargo.toml b/integrations/shuttle-poise/Cargo.toml
new file mode 100644
index 000000000..508d97097
--- /dev/null
+++ b/integrations/shuttle-poise/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "shuttle-poise"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+poise = { version = "0.5.2" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-poise/src/lib.rs b/integrations/shuttle-poise/src/lib.rs
new file mode 100644
index 000000000..f58b75bfd
--- /dev/null
+++ b/integrations/shuttle-poise/src/lib.rs
@@ -0,0 +1,76 @@
+//! Shuttle service integration for the Poise discord bot framework.
+//! ## Example
+//! ```rust,no_run
+//! use anyhow::Context as _;
+//! use poise::serenity_prelude as serenity;
+//! use shuttle_secrets::SecretStore;
+//! use shuttle_poise::ShuttlePoise;
+//!
+//! struct Data {} // User data, which is stored and accessible in all command invocations
+//! type Error = Box;
+//! type Context<'a> = poise::Context<'a, Data, Error>;
+//!
+//! /// Responds with "world!"
+//! #[poise::command(slash_command)]
+//! async fn hello(ctx: Context<'_>) -> Result<(), Error> {
+//! ctx.say("world!").await?;
+//! Ok(())
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn poise(#[shuttle_secrets::Secrets] secret_store: SecretStore) -> ShuttlePoise {
+//! // Get the discord token set in `Secrets.toml`
+//! let discord_token = secret_store
+//! .get("DISCORD_TOKEN")
+//! .context("'DISCORD_TOKEN' was not found")?;
+//!
+//! let framework = poise::Framework::builder()
+//! .options(poise::FrameworkOptions {
+//! commands: vec![hello()],
+//! ..Default::default()
+//! })
+//! .token(discord_token)
+//! .intents(serenity::GatewayIntents::non_privileged())
+//! .setup(|ctx, _ready, framework| {
+//! Box::pin(async move {
+//! poise::builtins::register_globally(ctx, &framework.options().commands).await?;
+//! Ok(Data {})
+//! })
+//! })
+//! .build()
+//! .await
+//! .map_err(shuttle_runtime::CustomError::new)?;
+//!
+//! Ok(framework.into())
+//! }
+//! ```
+use std::net::SocketAddr;
+use std::sync::Arc;
+
+/// A wrapper type for [poise::Framework] so we can implement [shuttle_runtime::Service] for it.
+pub struct PoiseService(pub Arc>);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for PoiseService
+where
+ T: Send + Sync + 'static,
+ E: Send + Sync + 'static,
+{
+ async fn bind(mut self, _addr: SocketAddr) -> Result<(), shuttle_runtime::Error> {
+ self.0
+ .start()
+ .await
+ .map_err(shuttle_runtime::CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From>> for PoiseService {
+ fn from(framework: Arc>) -> Self {
+ Self(framework)
+ }
+}
+
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttlePoise = Result, shuttle_runtime::Error>;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index aad679efe..b184cc51b 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -24,7 +24,6 @@ rocket = { version = "0.5.0-rc.2", optional = true }
salvo = { version = "0.37.5", optional = true }
serde_json = { workspace = true }
serenity = { version = "0.11.5", default-features = false, features = ["client", "gateway", "rustls_backend", "model"], optional = true }
-poise = { version = "0.5.2", optional = true }
thiserror = { workspace = true }
thruster = { version = "1.3.0", optional = true }
tide = { version = "0.16.0", optional = true }
@@ -64,5 +63,4 @@ web-tower = ["tower", "hyper"]
web-salvo = ["salvo"]
bot-serenity = ["serenity"]
-bot-poise = ["poise"]
web-warp = ["warp"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 2dc9ab0dd..c57a4d76c 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -515,21 +515,4 @@ impl Service for serenity::Client {
#[cfg(feature = "bot-serenity")]
pub type ShuttleSerenity = Result;
-#[cfg(feature = "bot-poise")]
-#[async_trait]
-impl Service for std::sync::Arc>
-where
- T: std::marker::Send + std::marker::Sync + 'static,
- E: std::marker::Send + std::marker::Sync + 'static,
-{
- async fn bind(mut self, _addr: SocketAddr) -> Result<(), error::Error> {
- self.start().await.map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "bot-poise")]
-pub type ShuttlePoise = Result>, Error>;
-
pub const NEXT_NAME: &str = "shuttle-next";
From 017c9c2a7d1d72ccb6fb693f20b86932887a88dc Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 14:31:42 +0100
Subject: [PATCH 10/26] feat: extract rocket service integration
---
integrations/shuttle-rocket/Cargo.toml | 11 +++++
integrations/shuttle-rocket/src/lib.rs | 61 ++++++++++++++++++++++++++
service/Cargo.toml | 2 -
service/src/lib.rs | 30 -------------
4 files changed, 72 insertions(+), 32 deletions(-)
create mode 100644 integrations/shuttle-rocket/Cargo.toml
create mode 100644 integrations/shuttle-rocket/src/lib.rs
diff --git a/integrations/shuttle-rocket/Cargo.toml b/integrations/shuttle-rocket/Cargo.toml
new file mode 100644
index 000000000..ec5c1101f
--- /dev/null
+++ b/integrations/shuttle-rocket/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "shuttle-rocket"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+rocket = { version = "0.5.0-rc.2" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-rocket/src/lib.rs b/integrations/shuttle-rocket/src/lib.rs
new file mode 100644
index 000000000..0fdbfd442
--- /dev/null
+++ b/integrations/shuttle-rocket/src/lib.rs
@@ -0,0 +1,61 @@
+//! Shuttle service integration for the Rocket web framework.
+//! ## Example
+//! ```rust,no_run
+//! #[macro_use]
+//! extern crate rocket;
+//!
+//! #[get("/")]
+//! fn index() -> &'static str {
+//! "Hello, world!"
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn rocket() -> shuttle_rocket::ShuttleRocket {
+//! let rocket = rocket::build().mount("/hello", routes![index]);
+//!
+//! Ok(rocket.into())
+//! }
+//! ```
+use std::net::SocketAddr;
+
+/// A wrapper type for [rocket::Rocket] so we can implement [shuttle_runtime::Service] for it.
+pub struct RocketService(pub rocket::Rocket);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for RocketService {
+ /// Takes the router that is returned by the user in their [shuttle_runtime::main] function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), shuttle_runtime::Error> {
+ let shutdown = rocket::config::Shutdown {
+ ctrlc: false,
+ ..rocket::config::Shutdown::default()
+ };
+
+ let config = self
+ .0
+ .figment()
+ .clone()
+ .merge((rocket::Config::ADDRESS, addr.ip()))
+ .merge((rocket::Config::PORT, addr.port()))
+ .merge((rocket::Config::LOG_LEVEL, rocket::config::LogLevel::Off))
+ .merge((rocket::Config::SHUTDOWN, shutdown));
+
+ let _rocket = self
+ .0
+ .configure(config)
+ .launch()
+ .await
+ .map_err(shuttle_runtime::CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From> for RocketService {
+ fn from(router: rocket::Rocket) -> Self {
+ Self(router)
+ }
+}
+
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleRocket = Result;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index b184cc51b..7ef069d16 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -20,7 +20,6 @@ cargo_metadata = "0.15.2"
crossbeam-channel = "0.5.6"
hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional = true }
pipe = "0.4.0"
-rocket = { version = "0.5.0-rc.2", optional = true }
salvo = { version = "0.37.5", optional = true }
serde_json = { workspace = true }
serenity = { version = "0.11.5", default-features = false, features = ["client", "gateway", "rustls_backend", "model"], optional = true }
@@ -56,7 +55,6 @@ default = ["codegen"]
codegen = ["shuttle-codegen/frameworks"]
builder = ["cargo"]
-web-rocket = ["rocket"]
web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
web-tower = ["tower", "hyper"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index c57a4d76c..7b4f9a6a7 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -386,36 +386,6 @@ pub trait Service: Send {
async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error>;
}
-#[cfg(feature = "web-rocket")]
-#[async_trait]
-impl Service for rocket::Rocket {
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- let shutdown = rocket::config::Shutdown {
- ctrlc: false,
- ..rocket::config::Shutdown::default()
- };
-
- let config = self
- .figment()
- .clone()
- .merge((rocket::Config::ADDRESS, addr.ip()))
- .merge((rocket::Config::PORT, addr.port()))
- .merge((rocket::Config::LOG_LEVEL, rocket::config::LogLevel::Off))
- .merge((rocket::Config::SHUTDOWN, shutdown));
-
- let _rocket = self
- .configure(config)
- .launch()
- .await
- .map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "web-rocket")]
-pub type ShuttleRocket = Result, Error>;
-
#[cfg(feature = "web-warp")]
#[async_trait]
impl Service for T
From 3257234b7f4c29975ca873d8b7aae9aeb96d2d00 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 14:47:10 +0100
Subject: [PATCH 11/26] feat: extract salvo service integration
---
integrations/shuttle-axum/src/lib.rs | 10 +++---
integrations/shuttle-salvo/Cargo.toml | 11 +++++++
integrations/shuttle-salvo/src/lib.rs | 44 +++++++++++++++++++++++++++
service/Cargo.toml | 2 --
service/src/lib.rs | 15 ---------
5 files changed, 61 insertions(+), 21 deletions(-)
create mode 100644 integrations/shuttle-salvo/Cargo.toml
create mode 100644 integrations/shuttle-salvo/src/lib.rs
diff --git a/integrations/shuttle-axum/src/lib.rs b/integrations/shuttle-axum/src/lib.rs
index 9f580f645..6ca9589ff 100644
--- a/integrations/shuttle-axum/src/lib.rs
+++ b/integrations/shuttle-axum/src/lib.rs
@@ -14,19 +14,21 @@
//! Ok(router.into())
//! }
//! ```
+use shuttle_runtime::{CustomError, Error};
+use std::net::SocketAddr;
/// A wrapper type for [axum::Router] so we can implement [shuttle_runtime::Service] for it.
pub struct AxumService(pub axum::Router);
#[shuttle_runtime::async_trait]
impl shuttle_runtime::Service for AxumService {
- /// Takes the router that is returned by the user in their `shuttle_runtime::main` function
+ /// Takes the router that is returned by the user in their [shuttle_runtime::main] function
/// and binds to an address passed in by shuttle.
- async fn bind(mut self, addr: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
axum::Server::bind(&addr)
.serve(self.0.into_make_service())
.await
- .map_err(shuttle_runtime::CustomError::new)?;
+ .map_err(CustomError::new)?;
Ok(())
}
@@ -38,4 +40,4 @@ impl From for AxumService {
}
}
/// The return type that should be returned from the [shuttle_runtime::main] function.
-pub type ShuttleAxum = Result;
+pub type ShuttleAxum = Result;
diff --git a/integrations/shuttle-salvo/Cargo.toml b/integrations/shuttle-salvo/Cargo.toml
new file mode 100644
index 000000000..4c6f54eb6
--- /dev/null
+++ b/integrations/shuttle-salvo/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "shuttle-salvo"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+salvo = { version = "0.37.5" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-salvo/src/lib.rs b/integrations/shuttle-salvo/src/lib.rs
new file mode 100644
index 000000000..a38d4ab28
--- /dev/null
+++ b/integrations/shuttle-salvo/src/lib.rs
@@ -0,0 +1,44 @@
+//! Shuttle service integration for the Salvo web framework.
+//! ## Example
+//! ```rust,no_run
+//! use salvo::prelude::*;
+//!
+//! #[handler]
+//! async fn hello_world(res: &mut Response) {
+//! res.render(Text::Plain("Hello, world!"));
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn salvo() -> shuttle_salvo::ShuttleSalvo {
+//! let router = Router::with_path("hello").get(hello_world);
+//!
+//! Ok(router.into())
+//! }
+//!
+//! ```
+use shuttle_runtime::Error;
+use std::net::SocketAddr;
+
+/// A wrapper type for [salvo::Router] so we can implement [shuttle_runtime::Service] for it.
+pub struct SalvoService(pub salvo::Router);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for SalvoService {
+ /// Takes the router that is returned by the user in their [shuttle_runtime::main] function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
+ salvo::Server::new(salvo::listener::TcpListener::bind(addr))
+ .serve(self.0)
+ .await;
+
+ Ok(())
+ }
+}
+
+impl From for SalvoService {
+ fn from(router: salvo::Router) -> Self {
+ Self(router)
+ }
+}
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleSalvo = Result;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index 7ef069d16..4dc88ba7a 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -20,7 +20,6 @@ cargo_metadata = "0.15.2"
crossbeam-channel = "0.5.6"
hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional = true }
pipe = "0.4.0"
-salvo = { version = "0.37.5", optional = true }
serde_json = { workspace = true }
serenity = { version = "0.11.5", default-features = false, features = ["client", "gateway", "rustls_backend", "model"], optional = true }
thiserror = { workspace = true }
@@ -58,7 +57,6 @@ builder = ["cargo"]
web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
web-tower = ["tower", "hyper"]
-web-salvo = ["salvo"]
bot-serenity = ["serenity"]
web-warp = ["warp"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 7b4f9a6a7..3c24671c6 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -402,21 +402,6 @@ where
#[cfg(feature = "web-warp")]
pub type ShuttleWarp = Result, Error>;
-#[cfg(feature = "web-salvo")]
-#[async_trait]
-impl Service for salvo::Router {
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- salvo::Server::new(salvo::listener::TcpListener::bind(addr))
- .serve(self)
- .await;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "web-salvo")]
-pub type ShuttleSalvo = Result;
-
#[cfg(feature = "web-thruster")]
#[async_trait]
impl Service for T
From d042562d1d21f4715c56ffd58257c9beb0e76ef4 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 14:53:56 +0100
Subject: [PATCH 12/26] feat: extract the serenity service integration
---
integrations/shuttle-serenity/Cargo.toml | 11 ++++
integrations/shuttle-serenity/src/lib.rs | 76 ++++++++++++++++++++++++
service/Cargo.toml | 2 -
service/src/lib.rs | 13 ----
4 files changed, 87 insertions(+), 15 deletions(-)
create mode 100644 integrations/shuttle-serenity/Cargo.toml
create mode 100644 integrations/shuttle-serenity/src/lib.rs
diff --git a/integrations/shuttle-serenity/Cargo.toml b/integrations/shuttle-serenity/Cargo.toml
new file mode 100644
index 000000000..182a4513c
--- /dev/null
+++ b/integrations/shuttle-serenity/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "shuttle-serenity"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+serenity = { version = "0.11.5", default-features = false, features = ["client", "gateway", "rustls_backend", "model"] }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-serenity/src/lib.rs b/integrations/shuttle-serenity/src/lib.rs
new file mode 100644
index 000000000..c216b80f9
--- /dev/null
+++ b/integrations/shuttle-serenity/src/lib.rs
@@ -0,0 +1,76 @@
+//! Shuttle service integration for the Serenity discord bot framework.
+//! ## Example
+//! ```rust,no_run
+//! use anyhow::anyhow;
+//! use serenity::async_trait;
+//! use serenity::model::channel::Message;
+//! use serenity::model::gateway::Ready;
+//! use serenity::prelude::*;
+//! use shuttle_secrets::SecretStore;
+//! use tracing::{error, info};
+//!
+//! struct Bot;
+//!
+//! #[async_trait]
+//! impl EventHandler for Bot {
+//! async fn message(&self, ctx: Context, msg: Message) {
+//! if msg.content == "!hello" {
+//! if let Err(e) = msg.channel_id.say(&ctx.http, "world!").await {
+//! error!("Error sending message: {:?}", e);
+//! }
+//! }
+//! }
+//!
+//! async fn ready(&self, _: Context, ready: Ready) {
+//! info!("{} is connected!", ready.user.name);
+//! }
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn serenity(
+//! #[shuttle_secrets::Secrets] secret_store: SecretStore,
+//! ) -> shuttle_serenity::ShuttleSerenity {
+//! // Get the discord token set in `Secrets.toml`
+//! let token = if let Some(token) = secret_store.get("DISCORD_TOKEN") {
+//! token
+//! } else {
+//! return Err(anyhow!("'DISCORD_TOKEN' was not found").into());
+//! };
+//!
+//! // Set gateway intents, which decides what events the bot will be notified about
+//! let intents = GatewayIntents::GUILD_MESSAGES | GatewayIntents::MESSAGE_CONTENT;
+//!
+//! let client = Client::builder(&token, intents)
+//! .event_handler(Bot)
+//! .await
+//! .expect("Err creating client");
+//!
+//! Ok(client.into())
+//! }
+//!
+//! ```
+use shuttle_runtime::{CustomError, Error};
+use std::net::SocketAddr;
+
+/// A wrapper type for [serenity::Client] so we can implement [shuttle_runtime::Service] for it.
+pub struct SerenityService(pub serenity::Client);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for SerenityService {
+ /// Takes the client that is returned by the user in their [shuttle_runtime::main] function
+ /// and starts it.
+ async fn bind(mut self, _addr: SocketAddr) -> Result<(), Error> {
+ self.0.start().await.map_err(CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From for SerenityService {
+ fn from(router: serenity::Client) -> Self {
+ Self(router)
+ }
+}
+
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleSerenity = Result;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index 4dc88ba7a..c84ff992f 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -21,7 +21,6 @@ crossbeam-channel = "0.5.6"
hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional = true }
pipe = "0.4.0"
serde_json = { workspace = true }
-serenity = { version = "0.11.5", default-features = false, features = ["client", "gateway", "rustls_backend", "model"], optional = true }
thiserror = { workspace = true }
thruster = { version = "1.3.0", optional = true }
tide = { version = "0.16.0", optional = true }
@@ -58,5 +57,4 @@ web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
web-tower = ["tower", "hyper"]
-bot-serenity = ["serenity"]
web-warp = ["warp"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 3c24671c6..2b92f290a 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -457,17 +457,4 @@ where
}
}
-#[cfg(feature = "bot-serenity")]
-#[async_trait]
-impl Service for serenity::Client {
- async fn bind(mut self, _addr: SocketAddr) -> Result<(), error::Error> {
- self.start().await.map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "bot-serenity")]
-pub type ShuttleSerenity = Result;
-
pub const NEXT_NAME: &str = "shuttle-next";
From 68955b9ebcf0c3997f88ff01b58f5462106b134c Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 15:01:45 +0100
Subject: [PATCH 13/26] feat: extract the thruster service integration
---
integrations/shuttle-thruster/Cargo.toml | 11 +++++
integrations/shuttle-thruster/src/lib.rs | 53 ++++++++++++++++++++++++
service/Cargo.toml | 2 -
service/src/lib.rs | 16 -------
4 files changed, 64 insertions(+), 18 deletions(-)
create mode 100644 integrations/shuttle-thruster/Cargo.toml
create mode 100644 integrations/shuttle-thruster/src/lib.rs
diff --git a/integrations/shuttle-thruster/Cargo.toml b/integrations/shuttle-thruster/Cargo.toml
new file mode 100644
index 000000000..788d2ac1b
--- /dev/null
+++ b/integrations/shuttle-thruster/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "shuttle-thruster"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+thruster = { version = "1.3.0"}
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-thruster/src/lib.rs b/integrations/shuttle-thruster/src/lib.rs
new file mode 100644
index 000000000..f642db1dd
--- /dev/null
+++ b/integrations/shuttle-thruster/src/lib.rs
@@ -0,0 +1,53 @@
+//! Shuttle service integration for the Thruster web framework.
+//! ## Example
+//! ```rust,no_run
+//! use thruster::{
+//! context::basic_hyper_context::{generate_context, BasicHyperContext as Ctx, HyperRequest},
+//! m, middleware_fn, App, HyperServer, MiddlewareNext, MiddlewareResult, ThrusterServer,
+//! };
+//!
+//! #[middleware_fn]
+//! async fn hello(mut context: Ctx, _next: MiddlewareNext) -> MiddlewareResult {
+//! context.body("Hello, World!");
+//! Ok(context)
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn thruster() -> shuttle_thruster::ShuttleThruster> {
+//! let server = HyperServer::new(
+//! App::::create(generate_context, ()).get("/hello", m![hello]),
+//! );
+//!
+//! Ok(server.into())
+//! }
+//! ```
+use shuttle_runtime::Error;
+use std::net::SocketAddr;
+
+/// A wrapper type for [thruster::ThrusterServer] so we can implement [shuttle_runtime::Service] for it.
+pub struct ThrusterService(pub T);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for ThrusterService
+where
+ T: thruster::ThrusterServer + Send + 'static,
+{
+ /// Takes the server that is returned by the user in their [shuttle_runtime::main] function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
+ self.0.build(&addr.ip().to_string(), addr.port()).await;
+
+ Ok(())
+ }
+}
+
+impl From for ThrusterService
+where
+ T: thruster::ThrusterServer + Send + 'static,
+{
+ fn from(router: T) -> Self {
+ Self(router)
+ }
+}
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleThruster = Result, Error>;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index c84ff992f..26a5c19ed 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -22,7 +22,6 @@ hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional =
pipe = "0.4.0"
serde_json = { workspace = true }
thiserror = { workspace = true }
-thruster = { version = "1.3.0", optional = true }
tide = { version = "0.16.0", optional = true }
tokio = { version = "1.22.0", features = ["sync"] }
tower = { version = "0.4.13", features = ["make"], optional = true }
@@ -53,7 +52,6 @@ default = ["codegen"]
codegen = ["shuttle-codegen/frameworks"]
builder = ["cargo"]
-web-thruster = ["thruster"]
web-tide = ["tide", "async-std"]
web-tower = ["tower", "hyper"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 2b92f290a..eea67e1ad 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -402,22 +402,6 @@ where
#[cfg(feature = "web-warp")]
pub type ShuttleWarp = Result, Error>;
-#[cfg(feature = "web-thruster")]
-#[async_trait]
-impl Service for T
-where
- T: thruster::ThrusterServer + Sync + Send + 'static,
-{
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- self.build(&addr.ip().to_string(), addr.port()).await;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "web-thruster")]
-pub type ShuttleThruster = Result;
-
#[cfg(feature = "web-tide")]
#[async_trait]
impl Service for tide::Server
From 916f98941e6330d1170cf7f7d3449fcc803bf517 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 15:19:19 +0100
Subject: [PATCH 14/26] feat: extract warp service integration
---
integrations/shuttle-warp/Cargo.toml | 11 ++++++
integrations/shuttle-warp/src/lib.rs | 53 ++++++++++++++++++++++++++++
service/Cargo.toml | 3 --
service/src/lib.rs | 16 ---------
4 files changed, 64 insertions(+), 19 deletions(-)
create mode 100644 integrations/shuttle-warp/Cargo.toml
create mode 100644 integrations/shuttle-warp/src/lib.rs
diff --git a/integrations/shuttle-warp/Cargo.toml b/integrations/shuttle-warp/Cargo.toml
new file mode 100644
index 000000000..8b951dd9e
--- /dev/null
+++ b/integrations/shuttle-warp/Cargo.toml
@@ -0,0 +1,11 @@
+[package]
+name = "shuttle-warp"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+warp = { version = "0.3.3" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
diff --git a/integrations/shuttle-warp/src/lib.rs b/integrations/shuttle-warp/src/lib.rs
new file mode 100644
index 000000000..acaef062f
--- /dev/null
+++ b/integrations/shuttle-warp/src/lib.rs
@@ -0,0 +1,53 @@
+//! Shuttle service integration for the Warp web framework.
+//! ## Example
+//! ```rust,no_run
+//! use warp::Filter;
+//! use warp::Reply;
+//!
+//! #[shuttle_runtime::main]
+//! async fn warp() -> shuttle_warp::ShuttleWarp<(impl Reply,)> {
+//! let route = warp::any().map(|| "Hello, World!");
+//! Ok(route.boxed().into())
+//! }
+//! ```
+use shuttle_runtime::Error;
+use std::net::SocketAddr;
+use std::ops::Deref;
+
+/// A wrapper type for [warp::Filter] so we can implement [shuttle_runtime::Service] for it.
+pub struct WarpService(pub T);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for WarpService
+where
+ T: Send + Sync + Clone + 'static + warp::Filter,
+ T::Extract: warp::reply::Reply,
+{
+ /// Takes the router that is returned by the user in their [shuttle_runtime::main] function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
+ warp::serve((*self).clone()).run(addr).await;
+ Ok(())
+ }
+}
+
+impl From for WarpService
+where
+ T: Send + Sync + Clone + 'static + warp::Filter,
+ T::Extract: warp::reply::Reply,
+{
+ fn from(router: T) -> Self {
+ Self(router)
+ }
+}
+
+impl Deref for WarpService {
+ type Target = T;
+
+ fn deref(&self) -> &Self::Target {
+ &self.0
+ }
+}
+
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleWarp = Result>, Error>;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index 26a5c19ed..19411d063 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -26,7 +26,6 @@ tide = { version = "0.16.0", optional = true }
tokio = { version = "1.22.0", features = ["sync"] }
tower = { version = "0.4.13", features = ["make"], optional = true }
tracing = { workspace = true }
-warp = { version = "0.3.3", optional = true }
# Tide does not have tokio support. So make sure async-std is compatible with tokio
# https://github.com/http-rs/tide/issues/791
@@ -54,5 +53,3 @@ builder = ["cargo"]
web-tide = ["tide", "async-std"]
web-tower = ["tower", "hyper"]
-
-web-warp = ["warp"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index eea67e1ad..080ab9d99 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -386,22 +386,6 @@ pub trait Service: Send {
async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error>;
}
-#[cfg(feature = "web-warp")]
-#[async_trait]
-impl Service for T
-where
- T: Send + Sync + Clone + 'static + warp::Filter,
- T::Extract: warp::reply::Reply,
-{
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- warp::serve(*self).run(addr).await;
- Ok(())
- }
-}
-
-#[cfg(feature = "web-warp")]
-pub type ShuttleWarp = Result, Error>;
-
#[cfg(feature = "web-tide")]
#[async_trait]
impl Service for tide::Server
From 94531de56d5e71bd87e6a51a411bd2ceb1d80820 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 15:34:22 +0100
Subject: [PATCH 15/26] feat: extract the tower service integration
---
integrations/shuttle-tower/Cargo.toml | 12 ++++
integrations/shuttle-tower/src/lib.rs | 87 +++++++++++++++++++++++++++
service/Cargo.toml | 3 -
service/src/lib.rs | 23 -------
4 files changed, 99 insertions(+), 26 deletions(-)
create mode 100644 integrations/shuttle-tower/Cargo.toml
create mode 100644 integrations/shuttle-tower/src/lib.rs
diff --git a/integrations/shuttle-tower/Cargo.toml b/integrations/shuttle-tower/Cargo.toml
new file mode 100644
index 000000000..464f88272
--- /dev/null
+++ b/integrations/shuttle-tower/Cargo.toml
@@ -0,0 +1,12 @@
+[package]
+name = "shuttle-tower"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+hyper = { version = "0.14.23", features = ["server", "tcp", "http1"] }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+tower = { version = "0.4.13", features = ["make"] }
diff --git a/integrations/shuttle-tower/src/lib.rs b/integrations/shuttle-tower/src/lib.rs
new file mode 100644
index 000000000..6c00610cc
--- /dev/null
+++ b/integrations/shuttle-tower/src/lib.rs
@@ -0,0 +1,87 @@
+//! Shuttle service integration for the Tower framework.
+//! ## Example
+//! ```rust,no_run
+//! use std::convert::Infallible;
+//! use std::future::Future;
+//! use std::pin::Pin;
+//! use std::task::{Context, Poll};
+//!
+//! #[derive(Clone)]
+//! struct HelloWorld;
+//!
+//! impl tower::Service> for HelloWorld {
+//! type Response = hyper::Response;
+//! type Error = Infallible;
+//! type Future = Pin> + Send + Sync>>;
+//!
+//! fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll> {
+//! Poll::Ready(Ok(()))
+//! }
+//!
+//! fn call(&mut self, _req: hyper::Request) -> Self::Future {
+//! let body = hyper::Body::from("Hello, world!");
+//! let resp = hyper::Response::builder()
+//! .status(200)
+//! .body(body)
+//! .expect("Unable to create the `hyper::Response` object");
+//!
+//! let fut = async { Ok(resp) };
+//!
+//! Box::pin(fut)
+//! }
+//! }
+//!
+//! #[shuttle_runtime::main]
+//! async fn tower() -> shuttle_tower::ShuttleTower {
+//! let service = HelloWorld;
+//!
+//! Ok(service.into())
+//! }
+//! ```
+use shuttle_runtime::{CustomError, Error};
+use std::net::SocketAddr;
+
+/// A wrapper type for [tower::Service] so we can implement [shuttle_runtime::Service] for it.
+pub struct TowerService(pub T);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for TowerService
+where
+ T: tower::Service, Response = hyper::Response>
+ + Clone
+ + Send
+ + Sync
+ + 'static,
+ T::Error: std::error::Error + Send + Sync,
+ T::Future: std::future::Future + Send + Sync,
+{
+ /// Takes the service that is returned by the user in their [shuttle_runtime::main] function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
+ let shared = tower::make::Shared::new(self.0);
+ hyper::Server::bind(&addr)
+ .serve(shared)
+ .await
+ .map_err(CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From for TowerService
+where
+ T: tower::Service, Response = hyper::Response>
+ + Clone
+ + Send
+ + Sync
+ + 'static,
+ T::Error: std::error::Error + Send + Sync,
+ T::Future: std::future::Future + Send + Sync,
+{
+ fn from(service: T) -> Self {
+ Self(service)
+ }
+}
+
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleTower = Result, Error>;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index 19411d063..c7b902528 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -18,13 +18,11 @@ bincode = { version = "1.3.3", optional = true }
cargo = { version = "0.65.0", optional = true }
cargo_metadata = "0.15.2"
crossbeam-channel = "0.5.6"
-hyper = { version = "0.14.23", features = ["server", "tcp", "http1"], optional = true }
pipe = "0.4.0"
serde_json = { workspace = true }
thiserror = { workspace = true }
tide = { version = "0.16.0", optional = true }
tokio = { version = "1.22.0", features = ["sync"] }
-tower = { version = "0.4.13", features = ["make"], optional = true }
tracing = { workspace = true }
# Tide does not have tokio support. So make sure async-std is compatible with tokio
@@ -52,4 +50,3 @@ codegen = ["shuttle-codegen/frameworks"]
builder = ["cargo"]
web-tide = ["tide", "async-std"]
-web-tower = ["tower", "hyper"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 080ab9d99..7e1fbfe63 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -402,27 +402,4 @@ where
#[cfg(feature = "web-tide")]
pub type ShuttleTide = Result, Error>;
-#[cfg(feature = "web-tower")]
-#[async_trait]
-impl Service for T
-where
- T: tower::Service, Response = hyper::Response>
- + Clone
- + Send
- + Sync
- + 'static,
- T::Error: std::error::Error + Send + Sync,
- T::Future: std::future::Future + Send + Sync,
-{
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- let shared = tower::make::Shared::new(self);
- hyper::Server::bind(&addr)
- .serve(shared)
- .await
- .map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
pub const NEXT_NAME: &str = "shuttle-next";
From 3b664338f979632ae15f5748ddcf180c345657a2 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 15:49:29 +0100
Subject: [PATCH 16/26] feat: delete persist from service
---
service/src/persist.rs | 108 -----------------------------------------
1 file changed, 108 deletions(-)
delete mode 100644 service/src/persist.rs
diff --git a/service/src/persist.rs b/service/src/persist.rs
deleted file mode 100644
index adeebc263..000000000
--- a/service/src/persist.rs
+++ /dev/null
@@ -1,108 +0,0 @@
-use crate::{Factory, ResourceBuilder, ServiceName};
-use async_trait::async_trait;
-use bincode::{deserialize_from, serialize_into, Error as BincodeError};
-use serde::de::DeserializeOwned;
-use serde::Serialize;
-use std::fs;
-use std::fs::File;
-use std::io::BufReader;
-use std::io::BufWriter;
-use std::path::PathBuf;
-use thiserror::Error;
-
-#[derive(Error, Debug)]
-pub enum PersistError {
- #[error("failed to open file: {0}")]
- Open(std::io::Error),
- #[error("failed to create folder: {0}")]
- CreateFolder(std::io::Error),
- #[error("failed to serialize data: {0}")]
- Serialize(BincodeError),
- #[error("failed to deserialize data: {0}")]
- Deserialize(BincodeError),
-}
-
-pub struct Persist;
-
-pub struct PersistInstance {
- service_name: ServiceName,
-}
-
-impl PersistInstance {
- pub fn save(&self, key: &str, struc: T) -> Result<(), PersistError> {
- let storage_folder = self.get_storage_folder();
- fs::create_dir_all(storage_folder).map_err(PersistError::CreateFolder)?;
-
- let file_path = self.get_storage_file(key);
- let file = File::create(file_path).map_err(PersistError::Open)?;
- let mut writer = BufWriter::new(file);
- Ok(serialize_into(&mut writer, &struc).map_err(PersistError::Serialize))?
- }
-
- pub fn load(&self, key: &str) -> Result
- where
- T: DeserializeOwned,
- {
- let file_path = self.get_storage_file(key);
- let file = File::open(file_path).map_err(PersistError::Open)?;
- let reader = BufReader::new(file);
- Ok(deserialize_from(reader).map_err(PersistError::Deserialize))?
- }
-
- fn get_storage_folder(&self) -> PathBuf {
- ["shuttle_persist", &self.service_name.to_string()]
- .iter()
- .collect()
- }
-
- fn get_storage_file(&self, key: &str) -> PathBuf {
- let mut path = self.get_storage_folder();
- path.push(format!("{key}.bin"));
-
- path
- }
-}
-
-#[async_trait]
-impl ResourceBuilder for Persist {
- fn new() -> Self {
- Self {}
- }
-
- async fn build(self, factory: &mut dyn Factory) -> Result {
- Ok(PersistInstance {
- service_name: factory.get_service_name(),
- })
- }
-}
-
-#[cfg(test)]
-mod tests {
- use super::*;
- use std::str::FromStr;
-
- #[test]
- fn test_save_and_load() {
- let persist = PersistInstance {
- service_name: ServiceName::from_str("test").unwrap(),
- };
-
- persist.save("test", "test").unwrap();
- let result: String = persist.load("test").unwrap();
- assert_eq!(result, "test");
- }
-
- #[test]
- fn test_load_error() {
- let persist = PersistInstance {
- service_name: ServiceName::from_str("test").unwrap(),
- };
-
- // unwrapp error
- let result = persist.load::("error").unwrap_err();
- assert_eq!(
- result.to_string(),
- "failed to open file: No such file or directory (os error 2)"
- );
- }
-}
From a9128f85a12aa1b0849c355c3bc7d6874eebaf74 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 15:52:35 +0100
Subject: [PATCH 17/26] feat: extract tide service integration
---
integrations/shuttle-tide/Cargo.toml | 17 ++++++++++++
integrations/shuttle-tide/src/lib.rs | 40 ++++++++++++++++++++++++++++
service/Cargo.toml | 15 ++---------
service/src/lib.rs | 16 -----------
4 files changed, 59 insertions(+), 29 deletions(-)
create mode 100644 integrations/shuttle-tide/Cargo.toml
create mode 100644 integrations/shuttle-tide/src/lib.rs
diff --git a/integrations/shuttle-tide/Cargo.toml b/integrations/shuttle-tide/Cargo.toml
new file mode 100644
index 000000000..970271f2a
--- /dev/null
+++ b/integrations/shuttle-tide/Cargo.toml
@@ -0,0 +1,17 @@
+[package]
+name = "shuttle-tide"
+version = "0.1.0"
+edition = "2021"
+
+[workspace]
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
+tide = { version = "0.16.0" }
+shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+# Tide does not have tokio support. So make sure async-std is compatible with tokio
+# https://github.com/http-rs/tide/issues/791
+[dependencies.async-std]
+version = "1.12.0"
+features = ["tokio1"]
diff --git a/integrations/shuttle-tide/src/lib.rs b/integrations/shuttle-tide/src/lib.rs
new file mode 100644
index 000000000..c2ecb8807
--- /dev/null
+++ b/integrations/shuttle-tide/src/lib.rs
@@ -0,0 +1,40 @@
+//! Shuttle service integration for the Tide web framework.
+//! ## Example
+//! ```rust,no_run
+//! #[shuttle_runtime::main]
+//! async fn tide() -> shuttle_tide::ShuttleTide<()> {
+//! let mut app = tide::new();
+//! app.with(tide::log::LogMiddleware::new());
+//!
+//! app.at("/hello").get(|_| async { Ok("Hello, world!") });
+//!
+//! Ok(app.into())
+//! }
+//! ```
+use shuttle_runtime::{CustomError, Error};
+use std::net::SocketAddr;
+
+/// A wrapper type for [tide::Server(pub tide::Server);
+
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for TideService
+where
+ T: Clone + Send + Sync + 'static,
+{
+ /// Takes the router that is returned by the user in their [shuttle_runtime::main] function
+ /// and binds to an address passed in by shuttle.
+ async fn bind(mut self, addr: SocketAddr) -> Result<(), Error> {
+ self.0.listen(addr).await.map_err(CustomError::new)?;
+
+ Ok(())
+ }
+}
+
+impl From> for TideService {
+ fn from(router: tide::Server) -> Self {
+ Self(router)
+ }
+}
+/// The return type that should be returned from the [shuttle_runtime::main] function.
+pub type ShuttleTide = Result, Error>;
diff --git a/service/Cargo.toml b/service/Cargo.toml
index c7b902528..9207cc6a9 100644
--- a/service/Cargo.toml
+++ b/service/Cargo.toml
@@ -13,7 +13,6 @@ doctest = false
anyhow = { workspace = true }
async-trait = { workspace = true }
axum = { workspace = true, optional = true }
-bincode = { version = "1.3.3", optional = true }
# TODO: debug the libgit2-sys conflict with cargo-edit when upgrading cargo to 0.66
cargo = { version = "0.65.0", optional = true }
cargo_metadata = "0.15.2"
@@ -21,17 +20,9 @@ crossbeam-channel = "0.5.6"
pipe = "0.4.0"
serde_json = { workspace = true }
thiserror = { workspace = true }
-tide = { version = "0.16.0", optional = true }
-tokio = { version = "1.22.0", features = ["sync"] }
+tokio = { version = "1.26.0", features = ["sync"] }
tracing = { workspace = true }
-# Tide does not have tokio support. So make sure async-std is compatible with tokio
-# https://github.com/http-rs/tide/issues/791
-[dependencies.async-std]
-version = "1.12.0"
-optional = true
-features = ["tokio1"]
-
[dependencies.shuttle-codegen]
workspace = true
optional = true
@@ -41,12 +32,10 @@ workspace = true
features = ["tracing", "service"]
[dev-dependencies]
-tokio = { version = "1.22.0", features = ["macros", "rt"] }
+tokio = { version = "1.26.0", features = ["macros", "rt"] }
[features]
default = ["codegen"]
codegen = ["shuttle-codegen/frameworks"]
builder = ["cargo"]
-
-web-tide = ["tide", "async-std"]
diff --git a/service/src/lib.rs b/service/src/lib.rs
index 7e1fbfe63..b8b4d5c34 100644
--- a/service/src/lib.rs
+++ b/service/src/lib.rs
@@ -386,20 +386,4 @@ pub trait Service: Send {
async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error>;
}
-#[cfg(feature = "web-tide")]
-#[async_trait]
-impl Service for tide::Server
-where
- T: Clone + Send + Sync + 'static,
-{
- async fn bind(mut self, addr: SocketAddr) -> Result<(), error::Error> {
- self.listen(addr).await.map_err(error::CustomError::new)?;
-
- Ok(())
- }
-}
-
-#[cfg(feature = "web-tide")]
-pub type ShuttleTide = Result, Error>;
-
pub const NEXT_NAME: &str = "shuttle-next";
From f0aefe24ac7b087630e1fe2f6eb04e1a22a30a23 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 15:53:47 +0100
Subject: [PATCH 18/26] feat: update cargo.lock
---
Cargo.lock | 3044 +++++++---------------------------------------------
1 file changed, 401 insertions(+), 2643 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 5bfd7393d..452021e27 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8,7 +8,7 @@ version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "453e534d4f46dcdddd7aa8619e9a664e153f34383d14710db0b0d76c2964db89"
dependencies = [
- "base64 0.13.1",
+ "base64",
"hyper",
"openssl",
"reqwest",
@@ -20,185 +20,6 @@ dependencies = [
"tracing-futures",
]
-[[package]]
-name = "actix-codec"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57a7559404a7f3573127aab53c08ce37a6c6a315c374a31070f3c91cd1b4a7fe"
-dependencies = [
- "bitflags",
- "bytes 1.3.0",
- "futures-core",
- "futures-sink",
- "log",
- "memchr",
- "pin-project-lite 0.2.9",
- "tokio",
- "tokio-util 0.7.3",
-]
-
-[[package]]
-name = "actix-http"
-version = "3.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c83abf9903e1f0ad9973cc4f7b9767fd5a03a583f51a5b7a339e07987cd2724"
-dependencies = [
- "actix-codec",
- "actix-rt",
- "actix-service",
- "actix-utils",
- "ahash",
- "base64 0.13.1",
- "bitflags",
- "brotli",
- "bytes 1.3.0",
- "bytestring",
- "derive_more",
- "encoding_rs",
- "flate2",
- "futures-core",
- "h2",
- "http 0.2.8",
- "httparse",
- "httpdate",
- "itoa 1.0.2",
- "language-tags",
- "local-channel",
- "mime",
- "percent-encoding",
- "pin-project-lite 0.2.9",
- "rand 0.8.5",
- "sha1 0.10.4",
- "smallvec",
- "tracing",
- "zstd",
-]
-
-[[package]]
-name = "actix-macros"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "465a6172cf69b960917811022d8f29bc0b7fa1398bc4f78b3c466673db1213b6"
-dependencies = [
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "actix-router"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66ff4d247d2b160861fa2866457e85706833527840e4133f8f49aa423a38799"
-dependencies = [
- "bytestring",
- "http 0.2.8",
- "regex",
- "serde",
- "tracing",
-]
-
-[[package]]
-name = "actix-rt"
-version = "2.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ea16c295198e958ef31930a6ef37d0fb64e9ca3b6116e6b93a8bdae96ee1000"
-dependencies = [
- "futures-core",
- "tokio",
-]
-
-[[package]]
-name = "actix-server"
-version = "2.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0da34f8e659ea1b077bb4637948b815cd3768ad5a188fdcd74ff4d84240cd824"
-dependencies = [
- "actix-rt",
- "actix-service",
- "actix-utils",
- "futures-core",
- "futures-util",
- "mio",
- "num_cpus",
- "socket2",
- "tokio",
- "tracing",
-]
-
-[[package]]
-name = "actix-service"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a"
-dependencies = [
- "futures-core",
- "paste",
- "pin-project-lite 0.2.9",
-]
-
-[[package]]
-name = "actix-utils"
-version = "3.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88a1dcdff1466e3c2488e1cb5c36a71822750ad43839937f85d2f4d9f8b705d8"
-dependencies = [
- "local-waker",
- "pin-project-lite 0.2.9",
-]
-
-[[package]]
-name = "actix-web"
-version = "4.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d48f7b6534e06c7bfc72ee91db7917d4af6afe23e7d223b51e68fffbb21e96b9"
-dependencies = [
- "actix-codec",
- "actix-http",
- "actix-macros",
- "actix-router",
- "actix-rt",
- "actix-server",
- "actix-service",
- "actix-utils",
- "actix-web-codegen",
- "ahash",
- "bytes 1.3.0",
- "bytestring",
- "cfg-if 1.0.0",
- "cookie 0.16.0",
- "derive_more",
- "encoding_rs",
- "futures-core",
- "futures-util",
- "http 0.2.8",
- "itoa 1.0.2",
- "language-tags",
- "log",
- "mime",
- "once_cell",
- "pin-project-lite 0.2.9",
- "regex",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "smallvec",
- "socket2",
- "time 0.3.11",
- "url",
-]
-
-[[package]]
-name = "actix-web-codegen"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fa9362663c8643d67b2d5eafba49e4cb2c8a053a29ed00a0bea121f17c76b13"
-dependencies = [
- "actix-router",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
[[package]]
name = "addr2line"
version = "0.17.0"
@@ -214,102 +35,13 @@ version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
-[[package]]
-name = "aead"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "aead"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "aes"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561"
-dependencies = [
- "aes-soft",
- "aesni",
- "cipher 0.2.5",
-]
-
-[[package]]
-name = "aes"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8"
-dependencies = [
- "cfg-if 1.0.0",
- "cipher 0.3.0",
- "cpufeatures",
- "opaque-debug",
-]
-
-[[package]]
-name = "aes-gcm"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da"
-dependencies = [
- "aead 0.3.2",
- "aes 0.6.0",
- "cipher 0.2.5",
- "ctr 0.6.0",
- "ghash 0.3.1",
- "subtle",
-]
-
-[[package]]
-name = "aes-gcm"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6"
-dependencies = [
- "aead 0.4.3",
- "aes 0.7.5",
- "cipher 0.3.0",
- "ctr 0.8.0",
- "ghash 0.4.4",
- "subtle",
-]
-
-[[package]]
-name = "aes-soft"
-version = "0.6.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072"
-dependencies = [
- "cipher 0.2.5",
- "opaque-debug",
-]
-
-[[package]]
-name = "aesni"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce"
-dependencies = [
- "cipher 0.2.5",
- "opaque-debug",
-]
-
[[package]]
name = "ahash"
version = "0.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
dependencies = [
- "getrandom 0.2.7",
+ "getrandom",
"once_cell",
"version_check",
]
@@ -323,21 +55,6 @@ dependencies = [
"memchr",
]
-[[package]]
-name = "alloc-no-stdlib"
-version = "2.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
-
-[[package]]
-name = "alloc-stdlib"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
-dependencies = [
- "alloc-no-stdlib",
-]
-
[[package]]
name = "ambient-authority"
version = "0.0.1"
@@ -365,12 +82,6 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164"
-[[package]]
-name = "arrayref"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-
[[package]]
name = "arrayvec"
version = "0.5.2"
@@ -397,272 +108,46 @@ dependencies = [
"wait-timeout",
]
-[[package]]
-name = "async-channel"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-compression"
-version = "0.3.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695"
-dependencies = [
- "brotli",
- "flate2",
- "futures-core",
- "memchr",
- "pin-project-lite 0.2.9",
- "tokio",
-]
-
-[[package]]
-name = "async-dup"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c"
-dependencies = [
- "futures-io",
- "simple-mutex",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "once_cell",
- "slab",
-]
-
-[[package]]
-name = "async-global-executor"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-io",
- "async-lock",
- "blocking",
- "futures-lite",
- "num_cpus",
- "once_cell",
- "tokio",
-]
-
-[[package]]
-name = "async-h1"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8101020758a4fc3a7c326cb42aa99e9fa77cbfb76987c128ad956406fe1f70a7"
-dependencies = [
- "async-channel",
- "async-dup",
- "async-std",
- "futures-core",
- "http-types",
- "httparse",
- "log",
- "pin-project",
-]
-
-[[package]]
-name = "async-io"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07"
-dependencies = [
- "concurrent-queue",
- "futures-lite",
- "libc",
- "log",
- "once_cell",
- "parking",
- "polling",
- "slab",
- "socket2",
- "waker-fn",
- "winapi",
-]
-
-[[package]]
-name = "async-lock"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e97a171d191782fba31bb902b14ad94e24a68145032b7eedf871ab0bc0d077b6"
-dependencies = [
- "event-listener",
-]
-
-[[package]]
-name = "async-process"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c"
-dependencies = [
- "async-io",
- "blocking",
- "cfg-if 1.0.0",
- "event-listener",
- "futures-lite",
- "libc",
- "once_cell",
- "signal-hook",
- "winapi",
-]
-
-[[package]]
-name = "async-session"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345022a2eed092cd105cc1b26fd61c341e100bd5fcbbd792df4baf31c2cc631f"
-dependencies = [
- "anyhow",
- "async-std",
- "async-trait",
- "base64 0.12.3",
- "bincode",
- "blake3",
- "chrono",
- "hmac 0.8.1",
- "kv-log-macro",
- "rand 0.7.3",
- "serde",
- "serde_json",
- "sha2 0.9.9",
-]
-
-[[package]]
-name = "async-sse"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53bba003996b8fd22245cd0c59b869ba764188ed435392cf2796d03b805ade10"
-dependencies = [
- "async-channel",
- "async-std",
- "http-types",
- "log",
- "memchr",
- "pin-project-lite 0.1.12",
-]
-
-[[package]]
-name = "async-std"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
-dependencies = [
- "async-channel",
- "async-global-executor",
- "async-io",
- "async-lock",
- "async-process",
- "crossbeam-utils",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-lite",
- "gloo-timers",
- "kv-log-macro",
- "log",
- "memchr",
- "once_cell",
- "pin-project-lite 0.2.9",
- "pin-utils",
- "slab",
- "wasm-bindgen-futures",
-]
-
[[package]]
name = "async-stream"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dad5c83079eae9969be7fadefe640a1c566901f05ff91ab221de4b6f68d9507e"
-dependencies = [
- "async-stream-impl",
- "futures-core",
-]
-
-[[package]]
-name = "async-stream-impl"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27"
-dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "async-task"
-version = "4.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
-
-[[package]]
-name = "async-trait"
-version = "0.1.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c"
-dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "async-tungstenite"
-version = "0.17.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1b71b31561643aa8e7df3effe284fa83ab1a840e52294c5f4bd7bfd8b2becbb"
-dependencies = [
- "futures-io",
- "futures-util",
- "log",
- "pin-project-lite 0.2.9",
- "tokio",
- "tokio-rustls",
- "tungstenite",
- "webpki-roots",
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
]
[[package]]
-name = "atoi"
-version = "1.0.0"
+name = "async-stream-impl"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e"
+checksum = "10f203db73a71dfa2fb6dd22763990fa26f3d2625a6da2da900d23b87d26be27"
dependencies = [
- "num-traits",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
-name = "atomic"
-version = "0.5.1"
+name = "async-trait"
+version = "0.1.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c"
+checksum = "1e805d94e6b5001b651426cf4cd446b1ab5f319d27bab5c644f61de0a804360c"
dependencies = [
- "autocfg 1.1.0",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
-name = "atomic-waker"
+name = "atoi"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a"
+checksum = "d7c57d12312ff59c811c0643f4d80830505833c9ffaebd193d819392b265be8e"
+dependencies = [
+ "num-traits",
+]
[[package]]
name = "atty"
@@ -675,15 +160,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "autocfg"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
-dependencies = [
- "autocfg 1.1.0",
-]
-
[[package]]
name = "autocfg"
version = "1.1.0"
@@ -706,9 +182,9 @@ dependencies = [
"aws-smithy-json",
"aws-smithy-types",
"aws-types",
- "bytes 1.3.0",
+ "bytes",
"hex 0.4.3",
- "http 0.2.8",
+ "http",
"hyper",
"ring",
"time 0.3.11",
@@ -727,7 +203,7 @@ dependencies = [
"aws-smithy-http",
"aws-smithy-types",
"aws-types",
- "http 0.2.8",
+ "http",
"regex",
"tracing",
]
@@ -741,12 +217,12 @@ dependencies = [
"aws-smithy-http",
"aws-smithy-types",
"aws-types",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"http-body",
"lazy_static",
"percent-encoding",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tracing",
]
@@ -767,8 +243,8 @@ dependencies = [
"aws-smithy-types",
"aws-smithy-xml",
"aws-types",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"tokio-stream",
"tower",
]
@@ -789,8 +265,8 @@ dependencies = [
"aws-smithy-json",
"aws-smithy-types",
"aws-types",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"tokio-stream",
"tower",
]
@@ -812,8 +288,8 @@ dependencies = [
"aws-smithy-types",
"aws-smithy-xml",
"aws-types",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"tower",
]
@@ -826,7 +302,7 @@ dependencies = [
"aws-sigv4",
"aws-smithy-http",
"aws-types",
- "http 0.2.8",
+ "http",
"tracing",
]
@@ -839,7 +315,7 @@ dependencies = [
"aws-smithy-http",
"form_urlencoded",
"hex 0.4.3",
- "http 0.2.8",
+ "http",
"once_cell",
"percent-encoding",
"regex",
@@ -855,7 +331,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b3442b4c5d3fc39891a2e5e625735fba6b24694887d49c6518460fde98247a9"
dependencies = [
"futures-util",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
"tokio-stream",
]
@@ -870,14 +346,14 @@ dependencies = [
"aws-smithy-http",
"aws-smithy-http-tower",
"aws-smithy-types",
- "bytes 1.3.0",
+ "bytes",
"fastrand",
- "http 0.2.8",
+ "http",
"http-body",
"hyper",
"hyper-rustls",
"lazy_static",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
"tower",
"tracing",
@@ -890,18 +366,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf58ed4fefa61dbf038e5421a521cbc2c448ef69deff0ab1d915d8a10eda5664"
dependencies = [
"aws-smithy-types",
- "bytes 1.3.0",
+ "bytes",
"bytes-utils",
"futures-core",
- "http 0.2.8",
+ "http",
"http-body",
"hyper",
"once_cell",
"percent-encoding",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"pin-utils",
"tokio",
- "tokio-util 0.7.3",
+ "tokio-util",
"tracing",
]
@@ -912,10 +388,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "20c96d7bd35e7cf96aca1134b2f81b1b59ffe493f7c6539c051791cbbf7a42d3"
dependencies = [
"aws-smithy-http",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"http-body",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tower",
"tracing",
]
@@ -945,7 +421,7 @@ version = "0.51.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8b02e06ea63498c43bc0217ea4d16605d4e58d85c12fc23f6572ff6d0a840c61"
dependencies = [
- "itoa 1.0.2",
+ "itoa",
"num-integer",
"ryu",
"time 0.3.11",
@@ -970,7 +446,7 @@ dependencies = [
"aws-smithy-client",
"aws-smithy-http",
"aws-smithy-types",
- "http 0.2.8",
+ "http",
"rustc_version 0.4.0",
"tracing",
"zeroize",
@@ -984,20 +460,20 @@ checksum = "744864363a200a5e724a7e61bc8c11b6628cf2e3ec519c8a1a48e609a8156b40"
dependencies = [
"async-trait",
"axum-core",
- "base64 0.13.1",
+ "base64",
"bitflags",
- "bytes 1.3.0",
+ "bytes",
"futures-util",
"headers",
- "http 0.2.8",
+ "http",
"http-body",
"hyper",
- "itoa 1.0.2",
+ "itoa",
"matchit",
"memchr",
"mime",
"percent-encoding",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"rustversion",
"serde",
"serde_json",
@@ -1020,9 +496,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79b8558f5a0581152dc94dcd289132a1d377494bdeafcd41869b3258e3e2ad92"
dependencies = [
"async-trait",
- "bytes 1.3.0",
+ "bytes",
"futures-util",
- "http 0.2.8",
+ "http",
"http-body",
"mime",
"rustversion",
@@ -1037,12 +513,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8456dab8f11484979a86651da8e619b355ede5d61a160755155f6c344bd18c47"
dependencies = [
"arc-swap",
- "bytes 1.3.0",
+ "bytes",
"futures-util",
- "http 0.2.8",
+ "http",
"http-body",
"hyper",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"rustls",
"rustls-pemfile 1.0.1",
"tokio",
@@ -1050,30 +526,12 @@ dependencies = [
"tower-service",
]
-[[package]]
-name = "base-x"
-version = "0.2.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270"
-
-[[package]]
-name = "base64"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-
[[package]]
name = "base64"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
-[[package]]
-name = "binascii"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "383d29d513d8764dcdc42ea295d979eb99c3c9f00607b3692cf68a431f7dca72"
-
[[package]]
name = "bincode"
version = "1.3.3"
@@ -1098,30 +556,6 @@ dependencies = [
"typenum",
]
-[[package]]
-name = "blake3"
-version = "0.3.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3"
-dependencies = [
- "arrayref",
- "arrayvec 0.5.2",
- "cc",
- "cfg-if 0.1.10",
- "constant_time_eq",
- "crypto-mac 0.8.0",
- "digest 0.9.0",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "block-buffer"
version = "0.10.2"
@@ -1131,44 +565,30 @@ dependencies = [
"generic-array",
]
-[[package]]
-name = "blocking"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6ccb65d468978a086b69884437ded69a90faab3bbe6e67f242173ea728acccc"
-dependencies = [
- "async-channel",
- "async-task",
- "atomic-waker",
- "fastrand",
- "futures-lite",
- "once_cell",
-]
-
[[package]]
name = "bollard"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d82e7850583ead5f8bbef247e2a3c37a19bd576e8420cd262a6711921827e1e5"
dependencies = [
- "base64 0.13.1",
+ "base64",
"bollard-stubs",
- "bytes 1.3.0",
+ "bytes",
"futures-core",
"futures-util",
"hex 0.4.3",
- "http 0.2.8",
+ "http",
"hyper",
"hyperlocal",
"log",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"serde",
"serde_derive",
"serde_json",
"serde_urlencoded",
"thiserror",
"tokio",
- "tokio-util 0.7.3",
+ "tokio-util",
"url",
"winapi",
]
@@ -1183,27 +603,6 @@ dependencies = [
"serde_with",
]
-[[package]]
-name = "brotli"
-version = "3.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
- "brotli-decompressor",
-]
-
-[[package]]
-name = "brotli-decompressor"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59ad2d4653bf5ca36ae797b1f4bb4dbddb60ce49ca4aed8a2ce4829f60425b80"
-dependencies = [
- "alloc-no-stdlib",
- "alloc-stdlib",
-]
-
[[package]]
name = "bson"
version = "2.4.0"
@@ -1211,7 +610,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d76085681585d39016f4d3841eb019201fc54d2dd0d92ad1e4fab3bfb32754"
dependencies = [
"ahash",
- "base64 0.13.1",
+ "base64",
"hex 0.4.3",
"indexmap",
"lazy_static",
@@ -1246,16 +645,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "buf_redux"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
-dependencies = [
- "memchr",
- "safemem",
-]
-
[[package]]
name = "bumpalo"
version = "3.10.0"
@@ -1268,22 +657,6 @@ version = "1.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-[[package]]
-name = "bytes"
-version = "0.4.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-dependencies = [
- "byteorder",
- "iovec",
-]
-
-[[package]]
-name = "bytes"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
-
[[package]]
name = "bytes"
version = "1.3.0"
@@ -1296,7 +669,7 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1934a3ef9cac8efde4966a92781e77713e1ba329f1d42e446c7d7eba340d8ef1"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"either",
]
@@ -1306,21 +679,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c58ec36aac5066d5ca17df51b3e70279f5670a72102f5752cb7e7c856adfc70"
-[[package]]
-name = "bytestring"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7f83e57d9154148e355404702e2694463241880b939570d7c97c014da7a69a1"
-dependencies = [
- "bytes 1.3.0",
-]
-
-[[package]]
-name = "cache-padded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-
[[package]]
name = "camino"
version = "1.0.9"
@@ -1449,7 +807,7 @@ dependencies = [
"termcolor",
"toml_edit 0.14.4",
"unicode-width",
- "unicode-xid 0.2.3",
+ "unicode-xid",
"url",
"walkdir",
"winapi",
@@ -1603,12 +961,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
[[package]]
name = "cfg-if"
version = "1.0.0"
@@ -1637,24 +989,6 @@ version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fff857943da45f546682664a79488be82e69e43c1a7a2307679ab9afb3a66d2e"
-[[package]]
-name = "cipher"
-version = "0.2.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "cipher"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "clap"
version = "3.2.23"
@@ -1705,9 +1039,9 @@ checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65"
dependencies = [
"heck",
"proc-macro-error",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -1718,9 +1052,9 @@ checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
dependencies = [
"heck",
"proc-macro-error",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -1741,15 +1075,6 @@ dependencies = [
"os_str_bytes",
]
-[[package]]
-name = "cloudabi"
-version = "0.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-dependencies = [
- "bitflags",
-]
-
[[package]]
name = "colored"
version = "2.0.0"
@@ -1767,7 +1092,7 @@ version = "4.6.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"memchr",
]
@@ -1824,15 +1149,6 @@ version = "0.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ad159cc964ac8f9d407cbc0aa44b02436c054b541f2b4b5f06972e1efdc54bc7"
-[[package]]
-name = "concurrent-queue"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
-dependencies = [
- "cache-padded",
-]
-
[[package]]
name = "console"
version = "0.15.2"
@@ -1847,59 +1163,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "const_fn"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
-
-[[package]]
-name = "constant_time_eq"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-
-[[package]]
-name = "convert_case"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-
-[[package]]
-name = "cookie"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
-dependencies = [
- "aes-gcm 0.8.0",
- "base64 0.13.1",
- "hkdf 0.10.0",
- "hmac 0.10.1",
- "percent-encoding",
- "rand 0.8.5",
- "sha2 0.9.9",
- "time 0.2.27",
- "version_check",
-]
-
-[[package]]
-name = "cookie"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94d4706de1b0fa5b132270cddffa8585166037822e260a944fe161acd137ca05"
-dependencies = [
- "aes-gcm 0.9.4",
- "base64 0.13.1",
- "hkdf 0.12.3",
- "hmac 0.12.1",
- "percent-encoding",
- "rand 0.8.5",
- "sha2 0.10.2",
- "subtle",
- "time 0.3.11",
- "version_check",
-]
-
[[package]]
name = "core-foundation"
version = "0.9.3"
@@ -1922,7 +1185,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
@@ -1934,12 +1197,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "cpuid-bool"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba"
-
[[package]]
name = "cranelift-bforest"
version = "0.91.0"
@@ -2109,7 +1366,7 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
@@ -2118,7 +1375,7 @@ version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"crossbeam-utils",
]
@@ -2128,7 +1385,7 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
@@ -2139,8 +1396,8 @@ version = "0.9.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
dependencies = [
- "autocfg 1.1.0",
- "cfg-if 1.0.0",
+ "autocfg",
+ "cfg-if",
"crossbeam-utils",
"memoffset 0.7.1",
"scopeguard",
@@ -2152,7 +1409,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"crossbeam-utils",
]
@@ -2162,7 +1419,7 @@ version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"once_cell",
]
@@ -2191,16 +1448,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "cruet"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e0d174765c7d11eb16f70a4213583aac2ca5ae1ebd1e233c6d5104bfb70fce3"
-dependencies = [
- "once_cell",
- "regex",
-]
-
[[package]]
name = "crypto-common"
version = "0.1.3"
@@ -2223,52 +1470,14 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "crypto-mac"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
-[[package]]
-name = "crypto-mac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
[[package]]
name = "ctor"
version = "0.1.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
dependencies = [
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "ctr"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f"
-dependencies = [
- "cipher 0.2.5",
-]
-
-[[package]]
-name = "ctr"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea"
-dependencies = [
- "cipher 0.3.0",
+ "quote",
+ "syn",
]
[[package]]
@@ -2314,18 +1523,8 @@ version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
dependencies = [
- "darling_core 0.13.4",
- "darling_macro 0.13.4",
-]
-
-[[package]]
-name = "darling"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02"
-dependencies = [
- "darling_core 0.14.1",
- "darling_macro 0.14.1",
+ "darling_core",
+ "darling_macro",
]
[[package]]
@@ -2336,24 +1535,10 @@ checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
dependencies = [
"fnv",
"ident_case",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "strsim",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
+ "proc-macro2",
+ "quote",
"strsim",
- "syn 1.0.104",
+ "syn",
]
[[package]]
@@ -2362,96 +1547,38 @@ version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
dependencies = [
- "darling_core 0.13.4",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.14.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5"
-dependencies = [
- "darling_core 0.14.1",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "dashmap"
-version = "5.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f"
-dependencies = [
- "cfg-if 1.0.0",
- "hashbrown",
- "lock_api",
- "parking_lot_core 0.9.3",
- "serde",
-]
-
-[[package]]
-name = "data-encoding"
-version = "2.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
-
-[[package]]
-name = "derivative"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
-dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "derive_more"
-version = "0.99.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
-dependencies = [
- "convert_case",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "rustc_version 0.4.0",
- "syn 1.0.104",
+ "darling_core",
+ "quote",
+ "syn",
]
[[package]]
-name = "devise"
-version = "0.3.1"
+name = "dashmap"
+version = "5.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50c7580b072f1c8476148f16e0a0d5dedddab787da98d86c5082c5e9ed8ab595"
+checksum = "3495912c9c1ccf2e18976439f4443f3fee0fd61f424ff99fde6a66b15ecb448f"
dependencies = [
- "devise_codegen",
- "devise_core",
+ "cfg-if",
+ "hashbrown",
+ "lock_api",
+ "parking_lot_core 0.9.3",
]
[[package]]
-name = "devise_codegen"
-version = "0.3.1"
+name = "data-encoding"
+version = "2.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "123c73e7a6e51b05c75fe1a1b2f4e241399ea5740ed810b0e3e6cacd9db5e7b2"
-dependencies = [
- "devise_core",
- "quote 1.0.21",
-]
+checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
[[package]]
-name = "devise_core"
-version = "0.3.1"
+name = "derivative"
+version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "841ef46f4787d9097405cac4e70fb8644fc037b526e8c14054247c0263c400d0"
+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
dependencies = [
- "bitflags",
- "proc-macro2 1.0.47",
- "proc-macro2-diagnostics",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -2478,22 +1605,13 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
-[[package]]
-name = "digest"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-dependencies = [
- "generic-array",
-]
-
[[package]]
name = "digest"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
dependencies = [
- "block-buffer 0.10.2",
+ "block-buffer",
"crypto-common",
"subtle",
]
@@ -2504,7 +1622,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"dirs-sys-next",
]
@@ -2523,7 +1641,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"dirs-sys-next",
]
@@ -2549,12 +1667,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "discard"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "212d0f5754cb6769937f4501cc0e67f4f4483c8d2c3e1e922ee9edbe4ab4c7c0"
-
[[package]]
name = "doc-comment"
version = "0.3.3"
@@ -2594,7 +1706,7 @@ version = "0.8.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
@@ -2604,29 +1716,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "21cdad81446a7f7dc43f6a77409efeb9733d2fa65553efef6018ef257c959b73"
dependencies = [
"heck",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "enumflags2"
-version = "0.7.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb"
-dependencies = [
- "enumflags2_derive",
-]
-
-[[package]]
-name = "enumflags2_derive"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae"
-dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -2652,15 +1744,6 @@ dependencies = [
"url",
]
-[[package]]
-name = "erased-serde"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81d013529d5574a60caeda29e179e695125448e5de52e3874f7b4c1d7360e18e"
-dependencies = [
- "serde",
-]
-
[[package]]
name = "errno"
version = "0.2.8"
@@ -2703,36 +1786,6 @@ dependencies = [
"instant",
]
-[[package]]
-name = "femme"
-version = "2.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc04871e5ae3aa2952d552dae6b291b3099723bf779a8054281c1366a54613ef"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "log",
- "serde",
- "serde_derive",
- "serde_json",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "figment"
-version = "0.10.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "790b4292c72618abbab50f787a477014fe15634f96291de45672ce46afe122df"
-dependencies = [
- "atomic",
- "pear",
- "serde",
- "toml",
- "uncased",
- "version_check",
-]
-
[[package]]
name = "file-per-thread-logger"
version = "0.1.5"
@@ -2749,7 +1802,7 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"libc",
"redox_syscall",
"winapi",
@@ -2896,30 +1949,15 @@ version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
-[[package]]
-name = "futures-lite"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
-dependencies = [
- "fastrand",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite 0.2.9",
- "waker-fn",
-]
-
[[package]]
name = "futures-macro"
version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -2947,7 +1985,7 @@ dependencies = [
"futures-sink",
"futures-task",
"memchr",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"pin-utils",
"slab",
]
@@ -2980,19 +2018,6 @@ dependencies = [
"byteorder",
]
-[[package]]
-name = "generator"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1d9279ca822891c1a4dae06d185612cf8fc6acfe5dff37781b41297811b12ee"
-dependencies = [
- "cc",
- "libc",
- "log",
- "rustversion",
- "winapi",
-]
-
[[package]]
name = "generic-array"
version = "0.14.5"
@@ -3003,48 +2028,17 @@ dependencies = [
"version_check",
]
-[[package]]
-name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
[[package]]
name = "getrandom"
version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"libc",
"wasi 0.11.0+wasi-snapshot-preview1",
]
-[[package]]
-name = "ghash"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97304e4cd182c3846f7575ced3890c53012ce534ad9114046b0a9e00bb30a375"
-dependencies = [
- "opaque-debug",
- "polyval 0.4.5",
-]
-
-[[package]]
-name = "ghash"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99"
-dependencies = [
- "opaque-debug",
- "polyval 0.5.3",
-]
-
[[package]]
name = "gimli"
version = "0.26.2"
@@ -3102,34 +2096,22 @@ dependencies = [
"regex",
]
-[[package]]
-name = "gloo-timers"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9"
-dependencies = [
- "futures-channel",
- "futures-core",
- "js-sys",
- "wasm-bindgen",
-]
-
[[package]]
name = "h2"
version = "0.3.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "37a82c6d637fc9515a4694bbf1cb2457b79d81ce52b3108bdeea58b07dd34a57"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"fnv",
"futures-core",
"futures-sink",
"futures-util",
- "http 0.2.8",
+ "http",
"indexmap",
"slab",
"tokio",
- "tokio-util 0.7.3",
+ "tokio-util",
"tracing",
]
@@ -3157,14 +2139,14 @@ version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
dependencies = [
- "base64 0.13.1",
+ "base64",
"bitflags",
- "bytes 1.3.0",
+ "bytes",
"headers-core",
- "http 0.2.8",
+ "http",
"httpdate",
"mime",
- "sha1 0.10.4",
+ "sha1",
]
[[package]]
@@ -3173,7 +2155,7 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
dependencies = [
- "http 0.2.8",
+ "http",
]
[[package]]
@@ -3218,43 +2200,13 @@ dependencies = [
"serde",
]
-[[package]]
-name = "hkdf"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51ab2f639c231793c5f6114bdb9bbe50a7dbbfcd7c7c6bd8475dec2d991e964f"
-dependencies = [
- "digest 0.9.0",
- "hmac 0.10.1",
-]
-
[[package]]
name = "hkdf"
version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
dependencies = [
- "hmac 0.12.1",
-]
-
-[[package]]
-name = "hmac"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
-dependencies = [
- "crypto-mac 0.8.0",
- "digest 0.9.0",
-]
-
-[[package]]
-name = "hmac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
-dependencies = [
- "crypto-mac 0.10.1",
- "digest 0.9.0",
+ "hmac",
]
[[package]]
@@ -3263,7 +2215,7 @@ version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
- "digest 0.10.3",
+ "digest",
]
[[package]]
@@ -3286,26 +2238,15 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "http"
-version = "0.1.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
-dependencies = [
- "bytes 0.4.12",
- "fnv",
- "itoa 0.4.8",
-]
-
[[package]]
name = "http"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"fnv",
- "itoa 1.0.2",
+ "itoa",
]
[[package]]
@@ -3314,21 +2255,9 @@ version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
dependencies = [
- "bytes 1.3.0",
- "http 0.2.8",
- "pin-project-lite 0.2.9",
-]
-
-[[package]]
-name = "http-client"
-version = "6.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1947510dc91e2bf586ea5ffb412caad7673264e14bb39fb9078da114a94ce1a5"
-dependencies = [
- "async-trait",
- "cfg-if 1.0.0",
- "http-types",
- "log",
+ "bytes",
+ "http",
+ "pin-project-lite",
]
[[package]]
@@ -3343,32 +2272,10 @@ version = "1.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e272971f774ba29341db2f686255ff8a979365a26fb9e4277f6b6d9ec0cdd5e"
dependencies = [
- "http 0.2.8",
+ "http",
"serde",
]
-[[package]]
-name = "http-types"
-version = "2.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad"
-dependencies = [
- "anyhow",
- "async-channel",
- "async-std",
- "base64 0.13.1",
- "cookie 0.14.4",
- "futures-lite",
- "infer",
- "pin-project-lite 0.2.9",
- "rand 0.7.3",
- "serde",
- "serde_json",
- "serde_qs",
- "serde_urlencoded",
- "url",
-]
-
[[package]]
name = "httparse"
version = "1.8.0"
@@ -3393,17 +2300,17 @@ version = "0.14.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"futures-channel",
"futures-core",
"futures-util",
"h2",
- "http 0.2.8",
+ "http",
"http-body",
"httparse",
"httpdate",
- "itoa 1.0.2",
- "pin-project-lite 0.2.9",
+ "itoa",
+ "pin-project-lite",
"socket2",
"tokio",
"tower-service",
@@ -3439,7 +2346,7 @@ version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d87c48c02e0dc5e3b849a2041db3029fd066650f8f717c07bf8ed78ccb895cac"
dependencies = [
- "http 0.2.8",
+ "http",
"hyper",
"log",
"rustls",
@@ -3455,7 +2362,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
dependencies = [
"hyper",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
"tokio-io-timeout",
]
@@ -3466,7 +2373,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"hyper",
"native-tls",
"tokio",
@@ -3564,7 +2471,7 @@ version = "1.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"hashbrown",
"serde",
]
@@ -3587,25 +2494,13 @@ version = "1.0.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adab1eaa3408fb7f0c777a73e7465fd5656136fc93b670eb6df3c88c2c1344e3"
-[[package]]
-name = "infer"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac"
-
-[[package]]
-name = "inlinable_string"
-version = "0.1.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
-
[[package]]
name = "instant"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
@@ -3614,7 +2509,7 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4c6a5dc426fcc25b99d91e4a283a8f5518339a0f63bf28588a6c5f31e089f8a"
dependencies = [
- "base64 0.13.1",
+ "base64",
"hyper",
"hyper-rustls",
"ring",
@@ -3643,15 +2538,6 @@ dependencies = [
"windows-sys 0.42.0",
]
-[[package]]
-name = "iovec"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-dependencies = [
- "libc",
-]
-
[[package]]
name = "ipconfig"
version = "0.3.0"
@@ -3691,12 +2577,6 @@ dependencies = [
"either",
]
-[[package]]
-name = "itoa"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4"
-
[[package]]
name = "itoa"
version = "1.0.2"
@@ -3770,21 +2650,6 @@ dependencies = [
"static_assertions",
]
-[[package]]
-name = "kv-log-macro"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "language-tags"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4345964bb142484797b161f473a503a434de77149dd8c7427788c6e13379388"
-
[[package]]
name = "lazy_static"
version = "1.4.0"
@@ -3882,31 +2747,13 @@ version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f9f08d8963a6c613f4b1a78f4f4a4dbfadf8e6545b2d72861731e4858b8b47f"
-[[package]]
-name = "local-channel"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f303ec0e94c6c54447f84f3b0ef7af769858a9c4ef56ef2a986d3dcd4c3fc9c"
-dependencies = [
- "futures-core",
- "futures-sink",
- "futures-util",
- "local-waker",
-]
-
-[[package]]
-name = "local-waker"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e34f76eb3611940e0e7d53a9aaa4e6a3151f69541a282fd0dad5571420c53ff1"
-
[[package]]
name = "lock_api"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"scopeguard",
]
@@ -3916,24 +2763,7 @@ version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
- "cfg-if 1.0.0",
- "serde",
- "value-bag",
-]
-
-[[package]]
-name = "loom"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff50ecb28bb86013e935fb6683ab1f6d3a20016f123c76fd4c27470076ac30f5"
-dependencies = [
- "cfg-if 1.0.0",
- "generator",
- "scoped-tls",
- "serde",
- "serde_json",
- "tracing",
- "tracing-subscriber",
+ "cfg-if",
]
[[package]]
@@ -4002,7 +2832,7 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582"
dependencies = [
- "digest 0.10.3",
+ "digest",
]
[[package]]
@@ -4026,7 +2856,7 @@ version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
]
[[package]]
@@ -4035,7 +2865,7 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
]
[[package]]
@@ -4097,7 +2927,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5a1df476ac9541b0e4fdc8e2cc48884e66c92c933cd17a1fd75e68caf75752e"
dependencies = [
"async-trait",
- "base64 0.13.1",
+ "base64",
"bitflags",
"bson",
"chrono",
@@ -4106,7 +2936,7 @@ dependencies = [
"futures-executor",
"futures-util",
"hex 0.4.3",
- "hmac 0.12.1",
+ "hmac",
"lazy_static",
"md-5",
"os_info",
@@ -4120,7 +2950,7 @@ dependencies = [
"serde_bytes",
"serde_with",
"sha-1",
- "sha2 0.10.2",
+ "sha2",
"socket2",
"stringprep",
"strsim",
@@ -4128,7 +2958,7 @@ dependencies = [
"thiserror",
"tokio",
"tokio-rustls",
- "tokio-util 0.7.3",
+ "tokio-util",
"trust-dns-proto",
"trust-dns-resolver",
"typed-builder",
@@ -4136,52 +2966,11 @@ dependencies = [
"webpki-roots",
]
-[[package]]
-name = "multer"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f8f35e687561d5c1667590911e6698a8cb714a134a7505718a182e7bc9d3836"
-dependencies = [
- "bytes 1.3.0",
- "encoding_rs",
- "futures-util",
- "http 0.2.8",
- "httparse",
- "log",
- "memchr",
- "mime",
- "spin 0.9.3",
- "tokio",
- "tokio-util 0.6.10",
- "version_check",
-]
-
[[package]]
name = "multimap"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "multipart"
-version = "0.18.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00dec633863867f29cb39df64a397cdf4a6354708ddd7759f70c7fb51c5f9182"
-dependencies = [
- "buf_redux",
- "httparse",
- "log",
- "mime",
- "mime_guess",
- "quick-error",
- "rand 0.8.5",
- "safemem",
- "tempfile",
- "twoway",
-]
[[package]]
name = "native-tls"
@@ -4203,20 +2992,9 @@ dependencies = [
[[package]]
name = "ndk-context"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
-
-[[package]]
-name = "net2"
-version = "0.2.37"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "391630d12b68002ae1e25e8f974306474966550ad82dac6886fb8910c19568ae"
-dependencies = [
- "cfg-if 0.1.10",
- "libc",
- "winapi",
-]
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
[[package]]
name = "nix"
@@ -4224,9 +3002,9 @@ version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"bitflags",
- "cfg-if 1.0.0",
+ "cfg-if",
"libc",
"memoffset 0.6.5",
"pin-utils",
@@ -4242,23 +3020,13 @@ dependencies = [
"minimal-lexical",
]
-[[package]]
-name = "nu-ansi-term"
-version = "0.46.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
-dependencies = [
- "overload",
- "winapi",
-]
-
[[package]]
name = "num-integer"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"num-traits",
]
@@ -4268,7 +3036,7 @@ version = "0.2.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
]
[[package]]
@@ -4323,12 +3091,6 @@ version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
-[[package]]
-name = "opaque-debug"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-
[[package]]
name = "opener"
version = "0.5.0"
@@ -4346,7 +3108,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e"
dependencies = [
"bitflags",
- "cfg-if 1.0.0",
+ "cfg-if",
"foreign-types",
"libc",
"once_cell",
@@ -4360,9 +3122,9 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -4386,7 +3148,7 @@ version = "0.9.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"cc",
"libc",
"openssl-src",
@@ -4412,7 +3174,7 @@ checksum = "171770efa142d2a19455b7e985037f560b2e75461f822dd1688bfd83c14856f6"
dependencies = [
"async-trait",
"futures-core",
- "http 0.2.8",
+ "http",
"indexmap",
"itertools",
"once_cell",
@@ -4432,8 +3194,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1edc79add46364183ece1a4542592ca593e6421c60807232f5b8f7a31703825d"
dependencies = [
"async-trait",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"opentelemetry_api",
"reqwest",
]
@@ -4459,7 +3221,7 @@ dependencies = [
"indexmap",
"js-sys",
"once_cell",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"thiserror",
]
@@ -4485,15 +3247,6 @@ dependencies = [
"tokio-stream",
]
-[[package]]
-name = "ordered-float"
-version = "2.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87"
-dependencies = [
- "num-traits",
-]
-
[[package]]
name = "os_info"
version = "3.5.1"
@@ -4520,18 +3273,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "overload"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
-
-[[package]]
-name = "parking"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
-
[[package]]
name = "parking_lot"
version = "0.11.2"
@@ -4559,7 +3300,7 @@ version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"instant",
"libc",
"redox_syscall",
@@ -4573,7 +3314,7 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"libc",
"redox_syscall",
"smallvec",
@@ -4598,30 +3339,7 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7"
dependencies = [
- "digest 0.10.3",
-]
-
-[[package]]
-name = "pear"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e44241c5e4c868e3eaa78b7c1848cadd6344ed4f54d029832d32b415a58702"
-dependencies = [
- "inlinable_string",
- "pear_codegen",
- "yansi",
-]
-
-[[package]]
-name = "pear_codegen"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82a5ca643c2303ecb740d506539deba189e16f2754040a42901cd8105d0282d0"
-dependencies = [
- "proc-macro2 1.0.47",
- "proc-macro2-diagnostics",
- "quote 1.0.21",
- "syn 1.0.104",
+ "digest",
]
[[package]]
@@ -4630,7 +3348,7 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03c64931a1a212348ec4f3b4362585eca7159d0d09cbdf4a7f74f02173596fd4"
dependencies = [
- "base64 0.13.1",
+ "base64",
]
[[package]]
@@ -4664,17 +3382,11 @@ version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
-[[package]]
-name = "pin-project-lite"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
-
[[package]]
name = "pin-project-lite"
version = "0.2.9"
@@ -4702,115 +3414,6 @@ version = "0.3.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
-[[package]]
-name = "poem"
-version = "1.3.49"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc88a96f338947991534ac756e28bd05665a7dd40ad9c0c143cc5503ef5635e8"
-dependencies = [
- "async-trait",
- "bytes 1.3.0",
- "futures-util",
- "headers",
- "http 0.2.8",
- "hyper",
- "mime",
- "parking_lot 0.12.1",
- "percent-encoding",
- "pin-project-lite 0.2.9",
- "poem-derive",
- "regex",
- "rfc7239",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "smallvec",
- "thiserror",
- "tokio",
- "tokio-stream",
- "tokio-util 0.7.3",
- "tracing",
-]
-
-[[package]]
-name = "poem-derive"
-version = "1.3.49"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9bfb3ddf3eb162c2a2dc4dbdc610eaf56417cd4000fcda2686ccb354e2a1b2b"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "poise"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ca787e4e516076de1995a83ee05fbdfed71d072ea0da3df018318db42a87803"
-dependencies = [
- "async-trait",
- "derivative",
- "futures-core",
- "futures-util",
- "log",
- "once_cell",
- "parking_lot 0.12.1",
- "poise_macros",
- "regex",
- "serenity",
- "tokio",
-]
-
-[[package]]
-name = "poise_macros"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b80c1f4e04114527f9d41ed6bb31707a095276f51bb0aef3ca11f062b25a67c4"
-dependencies = [
- "darling 0.14.1",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "polling"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "log",
- "wepoll-ffi",
- "winapi",
-]
-
-[[package]]
-name = "polyval"
-version = "0.4.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eebcc4aa140b9abd2bc40d9c3f7ccec842679cd79045ac3a7ac698c1a064b7cd"
-dependencies = [
- "cpuid-bool",
- "opaque-debug",
- "universal-hash",
-]
-
-[[package]]
-name = "polyval"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8419d2b623c7c0896ff2d5d96e2cb4ede590fed28fcc34934f4c33c036e620a1"
-dependencies = [
- "cfg-if 1.0.0",
- "cpufeatures",
- "opaque-debug",
- "universal-hash",
-]
-
[[package]]
name = "portable-atomic"
version = "0.3.15"
@@ -4877,18 +3480,8 @@ version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9e1516508b396cefe095485fdce673007422f5e48e82934b7b423dc26aa5e6a4"
dependencies = [
- "proc-macro2 1.0.47",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "proc-macro-crate"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
-dependencies = [
- "thiserror",
- "toml",
+ "proc-macro2",
+ "syn",
]
[[package]]
@@ -4898,9 +3491,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
dependencies = [
"proc-macro-error-attr",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
"version_check",
]
@@ -4910,26 +3503,11 @@ version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
+ "proc-macro2",
+ "quote",
"version_check",
]
-[[package]]
-name = "proc-macro-hack"
-version = "0.5.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
-
-[[package]]
-name = "proc-macro2"
-version = "0.4.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-dependencies = [
- "unicode-xid 0.1.0",
-]
-
[[package]]
name = "proc-macro2"
version = "1.0.47"
@@ -4939,26 +3517,13 @@ dependencies = [
"unicode-ident",
]
-[[package]]
-name = "proc-macro2-diagnostics"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada"
-dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
- "version_check",
- "yansi",
-]
-
[[package]]
name = "prost"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0841812012b2d4a6145fae9a6af1534873c32aa67fff26bd09f8fa42c83f95a"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"prost-derive",
]
@@ -4968,7 +3533,7 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1d8b442418ea0822409d9e7d047cbf1e7e9e1760b172bf9982cf29d517c93511"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"heck",
"itertools",
"lazy_static",
@@ -4979,7 +3544,7 @@ dependencies = [
"prost",
"prost-types",
"regex",
- "syn 1.0.104",
+ "syn",
"tempfile",
"which",
]
@@ -4992,9 +3557,9 @@ checksum = "7345d5f0e08c0536d7ac7229952590239e77abf0a0100a1b1d890add6ea96364"
dependencies = [
"anyhow",
"itertools",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -5003,7 +3568,7 @@ version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dfaa718ad76a44b3415e6c4d53b17c8f99160dcb3a99b10470fce8ad43f6e3e"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"prost",
]
@@ -5028,22 +3593,13 @@ version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-[[package]]
-name = "quote"
-version = "0.6.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-dependencies = [
- "proc-macro2 0.4.30",
-]
-
[[package]]
name = "quote"
version = "1.0.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbe448f377a7d6961e30f5955f9b8d106c3f5e449d493ee1b125c1d43c2b5179"
dependencies = [
- "proc-macro2 1.0.47",
+ "proc-macro2",
]
[[package]]
@@ -5059,38 +3615,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "rand"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-dependencies = [
- "autocfg 0.1.8",
- "libc",
- "rand_chacha 0.1.1",
- "rand_core 0.4.2",
- "rand_hc 0.1.0",
- "rand_isaac",
- "rand_jitter",
- "rand_os",
- "rand_pcg",
- "rand_xorshift",
- "winapi",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc 0.2.0",
-]
-
[[package]]
name = "rand"
version = "0.8.5"
@@ -5098,30 +3622,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
- "rand_chacha 0.3.1",
+ "rand_chacha",
"rand_core 0.6.3",
]
-[[package]]
-name = "rand_chacha"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
[[package]]
name = "rand_chacha"
version = "0.3.1"
@@ -5147,93 +3651,13 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
[[package]]
name = "rand_core"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
dependencies = [
- "getrandom 0.2.7",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_isaac"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-dependencies = [
- "rand_core 0.3.1",
-]
-
-[[package]]
-name = "rand_jitter"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-dependencies = [
- "libc",
- "rand_core 0.4.2",
- "winapi",
-]
-
-[[package]]
-name = "rand_os"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-dependencies = [
- "cloudabi",
- "fuchsia-cprng",
- "libc",
- "rand_core 0.4.2",
- "rdrand",
- "winapi",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-dependencies = [
- "autocfg 0.1.8",
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_xorshift"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-dependencies = [
- "rand_core 0.3.1",
+ "getrandom",
]
[[package]]
@@ -5308,34 +3732,14 @@ dependencies = [
]
[[package]]
-name = "redox_users"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
-dependencies = [
- "getrandom 0.2.7",
- "redox_syscall",
- "thiserror",
-]
-
-[[package]]
-name = "ref-cast"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "685d58625b6c2b83e4cc88a27c4bf65adb7b6b16dbdc413e515c9405b47432ab"
-dependencies = [
- "ref-cast-impl",
-]
-
-[[package]]
-name = "ref-cast-impl"
-version = "1.0.7"
+name = "redox_users"
+version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a043824e29c94169374ac5183ac0ed43f5724dc4556b19568007486bd840fa1f"
+checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "getrandom",
+ "redox_syscall",
+ "thiserror",
]
[[package]]
@@ -5391,13 +3795,13 @@ version = "0.11.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68cc60575865c7831548863cc02356512e3f1dc2f3f82cb837d7fc4cc8f3c97c"
dependencies = [
- "base64 0.13.1",
- "bytes 1.3.0",
+ "base64",
+ "bytes",
"encoding_rs",
"futures-core",
"futures-util",
"h2",
- "http 0.2.8",
+ "http",
"http-body",
"hyper",
"hyper-rustls",
@@ -5410,7 +3814,7 @@ dependencies = [
"native-tls",
"once_cell",
"percent-encoding",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"rustls",
"rustls-pemfile 1.0.1",
"serde",
@@ -5419,7 +3823,6 @@ dependencies = [
"tokio",
"tokio-native-tls",
"tokio-rustls",
- "tokio-util 0.7.3",
"tower-service",
"url",
"wasm-bindgen",
@@ -5437,7 +3840,7 @@ checksum = "4a1c03e9011a8c59716ad13115550469e081e2e9892656b0ba6a47c907921894"
dependencies = [
"anyhow",
"async-trait",
- "http 0.2.8",
+ "http",
"reqwest",
"serde",
"task-local-extensions",
@@ -5454,7 +3857,7 @@ dependencies = [
"async-trait",
"chrono",
"futures",
- "http 0.2.8",
+ "http",
"hyper",
"reqwest",
"reqwest-middleware",
@@ -5498,15 +3901,6 @@ dependencies = [
"thiserror",
]
-[[package]]
-name = "rfc7239"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "087317b3cf7eb481f13bd9025d729324b7cd068d6f470e2d76d049e191f5ba47"
-dependencies = [
- "uncased",
-]
-
[[package]]
name = "ring"
version = "0.16.20"
@@ -5544,93 +3938,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "rocket"
-version = "0.5.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98ead083fce4a405feb349cf09abdf64471c6077f14e0ce59364aa90d4b99317"
-dependencies = [
- "async-stream",
- "async-trait",
- "atomic",
- "atty",
- "binascii",
- "bytes 1.3.0",
- "either",
- "figment",
- "futures",
- "indexmap",
- "log",
- "memchr",
- "multer",
- "num_cpus",
- "parking_lot 0.12.1",
- "pin-project-lite 0.2.9",
- "rand 0.8.5",
- "ref-cast",
- "rocket_codegen",
- "rocket_http",
- "serde",
- "state",
- "tempfile",
- "time 0.3.11",
- "tokio",
- "tokio-stream",
- "tokio-util 0.7.3",
- "ubyte",
- "version_check",
- "yansi",
-]
-
-[[package]]
-name = "rocket_codegen"
-version = "0.5.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d6aeb6bb9c61e9cd2c00d70ea267bf36f76a4cc615e5908b349c2f9d93999b47"
-dependencies = [
- "devise",
- "glob",
- "indexmap",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "rocket_http",
- "syn 1.0.104",
- "unicode-xid 0.2.3",
-]
-
-[[package]]
-name = "rocket_http"
-version = "0.5.0-rc.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ded65d127954de3c12471630bf4b81a2792f065984461e65b91d0fdaafc17a2"
-dependencies = [
- "cookie 0.16.0",
- "either",
- "futures",
- "http 0.2.8",
- "hyper",
- "indexmap",
- "log",
- "memchr",
- "pear",
- "percent-encoding",
- "pin-project-lite 0.2.9",
- "ref-cast",
- "serde",
- "smallvec",
- "stable-pattern",
- "state",
- "time 0.3.11",
- "tokio",
- "uncased",
-]
-
-[[package]]
-name = "route-recognizer"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56770675ebc04927ded3e60633437841581c285dc6236109ea25fbf3beb7b59e"
-
[[package]]
name = "rustc-demangle"
version = "0.1.21"
@@ -5698,7 +4005,7 @@ dependencies = [
"bitflags",
"errno",
"io-lifetimes",
- "itoa 1.0.2",
+ "itoa",
"libc",
"linux-raw-sys",
"once_cell",
@@ -5729,22 +4036,13 @@ dependencies = [
"security-framework",
]
-[[package]]
-name = "rustls-pemfile"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9"
-dependencies = [
- "base64 0.13.1",
-]
-
[[package]]
name = "rustls-pemfile"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360"
dependencies = [
- "base64 0.13.1",
+ "base64",
]
[[package]]
@@ -5753,7 +4051,7 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55"
dependencies = [
- "base64 0.13.1",
+ "base64",
]
[[package]]
@@ -5784,77 +4082,6 @@ version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
-[[package]]
-name = "safemem"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-
-[[package]]
-name = "salvo"
-version = "0.37.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b290f01b3b881afd34408b5823cb44f6717ed6b93a6e16a0113e9a49645ea8a7"
-dependencies = [
- "salvo_core",
-]
-
-[[package]]
-name = "salvo_core"
-version = "0.37.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fea63014bacaaaef1eaa1f28d90921cfbbee73a379974fca30fc698f64a8853"
-dependencies = [
- "async-compression",
- "async-trait",
- "base64 0.13.1",
- "bytes 1.3.0",
- "cookie 0.16.0",
- "cruet",
- "encoding_rs",
- "enumflags2",
- "fastrand",
- "form_urlencoded",
- "futures-util",
- "headers",
- "http 0.2.8",
- "hyper",
- "mime",
- "mime_guess",
- "multer",
- "multimap",
- "once_cell",
- "parking_lot 0.12.1",
- "percent-encoding",
- "regex",
- "salvo_macros",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tempfile",
- "textnonce",
- "thiserror",
- "tokio",
- "tokio-stream",
- "tracing",
- "url",
-]
-
-[[package]]
-name = "salvo_macros"
-version = "0.37.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b305a54f28b92483eabbfc91dd39bba62c840095b5513e83d31582c7e6bd8d44"
-dependencies = [
- "cruet",
- "darling 0.14.1",
- "proc-macro-crate",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "regex",
- "syn 1.0.104",
-]
-
[[package]]
name = "same-file"
version = "1.0.6"
@@ -5874,12 +4101,6 @@ dependencies = [
"windows-sys 0.36.1",
]
-[[package]]
-name = "scoped-tls"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-
[[package]]
name = "scopeguard"
version = "1.1.0"
@@ -5952,16 +4173,6 @@ dependencies = [
"serde_derive",
]
-[[package]]
-name = "serde-value"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
-dependencies = [
- "ordered-float",
- "serde",
-]
-
[[package]]
name = "serde_bytes"
version = "0.11.7"
@@ -5977,18 +4188,9 @@ version = "1.0.148"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a55492425aa53521babf6137309e7d34c20bbfbbfcfe2c7f3a047fd1f6b92c0c"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "serde_fmt"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2963a69a2b3918c1dc75a45a18bd3fcd1120e31d3f59deb1b2f9b5d5ffb8baa4"
-dependencies = [
- "serde",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -6007,7 +4209,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "020ff22c755c2ed3f8cf162dbb41a7268d934702f3ed3631656ea597e08fc3db"
dependencies = [
"indexmap",
- "itoa 1.0.2",
+ "itoa",
"ryu",
"serde",
]
@@ -6021,17 +4223,6 @@ dependencies = [
"serde",
]
-[[package]]
-name = "serde_qs"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6"
-dependencies = [
- "percent-encoding",
- "serde",
- "thiserror",
-]
-
[[package]]
name = "serde_urlencoded"
version = "0.7.1"
@@ -6039,7 +4230,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
dependencies = [
"form_urlencoded",
- "itoa 1.0.2",
+ "itoa",
"ryu",
"serde",
]
@@ -6060,42 +4251,10 @@ version = "1.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082"
dependencies = [
- "darling 0.13.4",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "serenity"
-version = "0.11.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82fd5e7b5858ad96e99d440138f34f5b98e1b959ebcd3a1036203b30e78eb788"
-dependencies = [
- "async-trait",
- "async-tungstenite",
- "base64 0.13.1",
- "bitflags",
- "bytes 1.3.0",
- "cfg-if 1.0.0",
- "chrono",
- "dashmap",
- "flate2",
- "futures",
- "mime",
- "mime_guess",
- "parking_lot 0.12.1",
- "percent-encoding",
- "reqwest",
- "rustversion",
- "serde",
- "serde-value",
- "serde_json",
- "time 0.3.11",
- "tokio",
- "tracing",
- "typemap_rev",
- "url",
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -6104,18 +4263,9 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"cpufeatures",
- "digest 0.10.3",
-]
-
-[[package]]
-name = "sha1"
-version = "0.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770"
-dependencies = [
- "sha1_smol",
+ "digest",
]
[[package]]
@@ -6124,28 +4274,9 @@ version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "006769ba83e921b3085caa8334186b00cf92b4cb1a6cf4632fbccc8eff5c7549"
dependencies = [
- "cfg-if 1.0.0",
- "cpufeatures",
- "digest 0.10.3",
-]
-
-[[package]]
-name = "sha1_smol"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
-
-[[package]]
-name = "sha2"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if 1.0.0",
+ "cfg-if",
"cpufeatures",
- "digest 0.9.0",
- "opaque-debug",
+ "digest",
]
[[package]]
@@ -6154,9 +4285,9 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"cpufeatures",
- "digest 0.10.3",
+ "digest",
]
[[package]]
@@ -6206,9 +4337,9 @@ version = "0.8.0"
dependencies = [
"pretty_assertions",
"proc-macro-error",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
"trybuild",
]
@@ -6223,7 +4354,7 @@ dependencies = [
"chrono",
"comfy-table",
"crossterm",
- "http 0.2.8",
+ "http",
"http-serde",
"hyper",
"once_cell",
@@ -6247,7 +4378,7 @@ dependencies = [
"anyhow",
"async-trait",
"axum",
- "bytes 1.3.0",
+ "bytes",
"cargo",
"cargo_metadata",
"chrono",
@@ -6298,14 +4429,14 @@ dependencies = [
"async-trait",
"axum",
"axum-server",
- "base64 0.13.1",
+ "base64",
"bollard",
"chrono",
"clap 4.0.27",
"colored",
"fqdn",
"futures",
- "http 0.2.8",
+ "http",
"hyper",
"hyper-reverse-proxy 0.5.2-dev (git+https://github.com/chesedo/hyper-reverse-proxy?branch=bug/host_header)",
"instant-acme",
@@ -6344,7 +4475,7 @@ version = "0.8.0"
dependencies = [
"axum",
"futures-executor",
- "http 0.2.8",
+ "http",
"rmp-serde",
"shuttle-codegen",
"shuttle-common",
@@ -6408,11 +4539,9 @@ dependencies = [
"hyper",
"portpicker",
"rmp-serde",
- "rocket",
"serde_json",
"shuttle-common",
"shuttle-proto",
- "shuttle-secrets",
"shuttle-service",
"thiserror",
"tokio",
@@ -6438,34 +4567,19 @@ dependencies = [
name = "shuttle-service"
version = "0.8.0"
dependencies = [
- "actix-web",
"anyhow",
- "async-std",
"async-trait",
"axum",
- "bincode",
"cargo",
"cargo_metadata",
"crossbeam-channel",
- "hyper",
- "num_cpus",
"pipe",
- "poem",
- "poise",
- "rocket",
- "salvo",
"serde_json",
- "serenity",
"shuttle-codegen",
"shuttle-common",
"thiserror",
- "thruster",
- "tide",
"tokio",
- "tower",
"tracing",
- "tracing-subscriber",
- "warp",
]
[[package]]
@@ -6498,15 +4612,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "simple-mutex"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6"
-dependencies = [
- "event-listener",
-]
-
[[package]]
name = "sized-chunks"
version = "0.6.5"
@@ -6541,7 +4646,7 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"serde",
"static_assertions",
"version_check",
@@ -6622,10 +4727,10 @@ checksum = "dcbc16ddba161afc99e14d1713a453747a2b07fc097d2009f4c300ec99286105"
dependencies = [
"ahash",
"atoi",
- "base64 0.13.1",
+ "base64",
"bitflags",
"byteorder",
- "bytes 1.3.0",
+ "bytes",
"chrono",
"crc",
"crossbeam-queue",
@@ -6641,10 +4746,10 @@ dependencies = [
"futures-util",
"hashlink",
"hex 0.4.3",
- "hkdf 0.12.3",
- "hmac 0.12.1",
+ "hkdf",
+ "hmac",
"indexmap",
- "itoa 1.0.2",
+ "itoa",
"libc",
"libsqlite3-sys",
"log",
@@ -6656,138 +4761,62 @@ dependencies = [
"rand 0.8.5",
"serde",
"serde_json",
- "sha1 0.10.4",
- "sha2 0.10.2",
+ "sha1",
+ "sha2",
"smallvec",
"sqlformat",
"sqlx-rt",
"stringprep",
"thiserror",
"tokio-stream",
- "url",
- "uuid 1.2.2",
- "whoami",
-]
-
-[[package]]
-name = "sqlx-macros"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9"
-dependencies = [
- "dotenvy",
- "either",
- "heck",
- "once_cell",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "serde_json",
- "sha2 0.10.2",
- "sqlx-core",
- "sqlx-rt",
- "syn 1.0.104",
- "url",
-]
-
-[[package]]
-name = "sqlx-rt"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396"
-dependencies = [
- "native-tls",
- "once_cell",
- "tokio",
- "tokio-native-tls",
-]
-
-[[package]]
-name = "stable-pattern"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4564168c00635f88eaed410d5efa8131afa8d8699a612c80c455a0ba05c21045"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "stable_deref_trait"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
-
-[[package]]
-name = "standback"
-version = "0.2.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "state"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbe866e1e51e8260c9eed836a042a5e7f6726bb2b411dffeaa712e19c388f23b"
-dependencies = [
- "loom",
-]
-
-[[package]]
-name = "static_assertions"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+ "url",
+ "uuid 1.2.2",
+ "whoami",
+]
[[package]]
-name = "stdweb"
-version = "0.4.20"
+name = "sqlx-macros"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
+checksum = "b850fa514dc11f2ee85be9d055c512aa866746adfacd1cb42d867d68e6a5b0d9"
dependencies = [
- "discard",
- "rustc_version 0.2.3",
- "stdweb-derive",
- "stdweb-internal-macros",
- "stdweb-internal-runtime",
- "wasm-bindgen",
+ "dotenvy",
+ "either",
+ "heck",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "serde_json",
+ "sha2",
+ "sqlx-core",
+ "sqlx-rt",
+ "syn",
+ "url",
]
[[package]]
-name = "stdweb-derive"
-version = "0.5.3"
+name = "sqlx-rt"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
+checksum = "24c5b2d25fa654cc5f841750b8e1cdedbe21189bf9a9382ee90bfa9dd3562396"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "serde",
- "serde_derive",
- "syn 1.0.104",
+ "native-tls",
+ "once_cell",
+ "tokio",
+ "tokio-native-tls",
]
[[package]]
-name = "stdweb-internal-macros"
-version = "0.2.9"
+name = "stable_deref_trait"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
-dependencies = [
- "base-x",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "serde",
- "serde_derive",
- "serde_json",
- "sha1 0.6.1",
- "syn 1.0.104",
-]
+checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
[[package]]
-name = "stdweb-internal-runtime"
-version = "0.1.5"
+name = "static_assertions"
+version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
[[package]]
name = "stringprep"
@@ -6830,10 +4859,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b"
dependencies = [
"heck",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
+ "proc-macro2",
+ "quote",
"rustversion",
- "syn 1.0.104",
+ "syn",
]
[[package]]
@@ -6852,34 +4881,14 @@ version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
-[[package]]
-name = "sval"
-version = "1.0.0-alpha.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45f6ee7c7b87caf59549e9fe45d6a69c75c8019e79e212a835c5da0e92f0ba08"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "syn"
-version = "0.15.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-dependencies = [
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "unicode-xid 0.1.0",
-]
-
[[package]]
name = "syn"
version = "1.0.104"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ae548ec36cf198c0ef7710d3c230987c2d6d7bd98ad6edc0274462724c585ce"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
+ "proc-macro2",
+ "quote",
"unicode-ident",
]
@@ -6952,7 +4961,7 @@ version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"fastrand",
"libc",
"redox_syscall",
@@ -6960,15 +4969,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "templatify"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a528032d6917c9a80cf894d9feeffe34056e8d62d3492bbfc15abfdcfa8a8fe1"
-dependencies = [
- "bytes 0.4.12",
-]
-
[[package]]
name = "termcolor"
version = "1.1.3"
@@ -7021,18 +5021,8 @@ version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8901a55b0a7a06ebc4a674dcca925170da8e613fa3b163a1df804ed10afb154d"
dependencies = [
- "quote 1.0.21",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "textnonce"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7743f8d70cd784ed1dc33106a18998d77758d281dc40dc3e6d050cf0f5286683"
-dependencies = [
- "base64 0.12.3",
- "rand 0.7.3",
+ "quote",
+ "syn",
]
[[package]]
@@ -7056,9 +5046,9 @@ version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -7070,74 +5060,6 @@ dependencies = [
"once_cell",
]
-[[package]]
-name = "thruster"
-version = "1.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "910effe6fa8063f44f9f2f4d15d758270a679562414235c6781bf3b606b72682"
-dependencies = [
- "async-trait",
- "bytes 0.5.6",
- "bytes 1.3.0",
- "fnv",
- "futures",
- "http 0.1.21",
- "http 0.2.8",
- "httparse",
- "lazy_static",
- "log",
- "net2",
- "num_cpus",
- "paste",
- "serde",
- "serde_derive",
- "serde_json",
- "smallvec",
- "socket2",
- "templatify",
- "thruster-proc",
- "time 0.1.44",
- "tokio",
- "tokio-stream",
- "tokio-util 0.6.10",
-]
-
-[[package]]
-name = "thruster-proc"
-version = "1.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfac33b0a1b0be1aae8e3ca87005671eb2e33617661c20052c98709410d364f"
-dependencies = [
- "lazy_static",
- "proc-macro2 0.4.30",
- "quote 0.6.13",
- "syn 0.15.44",
- "uuid 0.7.4",
-]
-
-[[package]]
-name = "tide"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c459573f0dd2cc734b539047f57489ea875af8ee950860ded20cf93a79a1dee0"
-dependencies = [
- "async-h1",
- "async-session",
- "async-sse",
- "async-std",
- "async-trait",
- "femme",
- "futures-util",
- "http-client",
- "http-types",
- "kv-log-macro",
- "log",
- "pin-project-lite 0.2.9",
- "route-recognizer",
- "serde",
- "serde_json",
-]
-
[[package]]
name = "time"
version = "0.1.44"
@@ -7149,42 +5071,16 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "time"
-version = "0.2.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4752a97f8eebd6854ff91f1c1824cd6160626ac4bd44287f7f4ea2035a02a242"
-dependencies = [
- "const_fn",
- "libc",
- "standback",
- "stdweb",
- "time-macros 0.1.1",
- "version_check",
- "winapi",
-]
-
[[package]]
name = "time"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72c91f41dcb2f096c05f0873d667dceec1087ce5bcf984ec8ffb19acddbb3217"
dependencies = [
- "itoa 1.0.2",
+ "itoa",
"libc",
"num_threads",
- "serde",
- "time-macros 0.2.4",
-]
-
-[[package]]
-name = "time-macros"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e9c6e26f12cb6d0dd7fc776bb67a706312e7299aed74c8dd5b17ebb27e2f1"
-dependencies = [
- "proc-macro-hack",
- "time-macros-impl",
+ "time-macros",
]
[[package]]
@@ -7193,19 +5089,6 @@ version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42657b1a6f4d817cda8e7a0ace261fe0cc946cf3a80314390b22cc61ae080792"
-[[package]]
-name = "time-macros-impl"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd3c141a1b43194f3f56a1411225df8646c55781d5f26db825b3d98507eb482f"
-dependencies = [
- "proc-macro-hack",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "standback",
- "syn 1.0.104",
-]
-
[[package]]
name = "tinyvec"
version = "1.6.0"
@@ -7223,22 +5106,22 @@ checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c"
[[package]]
name = "tokio"
-version = "1.22.0"
+version = "1.26.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76ce4a75fb488c605c54bf610f221cea8b0dafb53333c1a67e8ee199dcd2ae3"
+checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64"
dependencies = [
- "autocfg 1.1.0",
- "bytes 1.3.0",
+ "autocfg",
+ "bytes",
"libc",
"memchr",
"mio",
"num_cpus",
"parking_lot 0.12.1",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"signal-hook-registry",
"socket2",
"tokio-macros",
- "winapi",
+ "windows-sys 0.45.0",
]
[[package]]
@@ -7247,7 +5130,7 @@ version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
dependencies = [
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
]
@@ -7257,9 +5140,9 @@ version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9724f9a975fb987ef7a3cd9be0350edcbe130698af5b8f7a631e23d42d052484"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -7290,7 +5173,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce"
dependencies = [
"futures-core",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
]
@@ -7301,7 +5184,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53474327ae5e166530d17f2d956afcb4f8a004de581b3cae10f12006bc8163e3"
dependencies = [
"async-stream",
- "bytes 1.3.0",
+ "bytes",
"futures-core",
"tokio",
"tokio-stream",
@@ -7321,32 +5204,16 @@ dependencies = [
"tungstenite",
]
-[[package]]
-name = "tokio-util"
-version = "0.6.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507"
-dependencies = [
- "bytes 1.3.0",
- "futures-core",
- "futures-io",
- "futures-sink",
- "log",
- "pin-project-lite 0.2.9",
- "slab",
- "tokio",
-]
-
[[package]]
name = "tokio-util"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cc463cd8deddc3770d20f9852143d50bf6094e640b485cb2e189a2099085ff45"
dependencies = [
- "bytes 1.3.0",
+ "bytes",
"futures-core",
"futures-sink",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
"tracing",
]
@@ -7417,12 +5284,12 @@ dependencies = [
"async-stream",
"async-trait",
"axum",
- "base64 0.13.1",
- "bytes 1.3.0",
+ "base64",
+ "bytes",
"futures-core",
"futures-util",
"h2",
- "http 0.2.8",
+ "http",
"http-body",
"hyper",
"hyper-timeout",
@@ -7432,7 +5299,7 @@ dependencies = [
"prost-derive",
"tokio",
"tokio-stream",
- "tokio-util 0.7.3",
+ "tokio-util",
"tower",
"tower-layer",
"tower-service",
@@ -7447,10 +5314,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "31fa2c5e870bdce133847d15e075333e6e1ca3fff913001fede6754f3060e367"
dependencies = [
"prettyplease",
- "proc-macro2 1.0.47",
+ "proc-macro2",
"prost-build",
- "quote 1.0.21",
- "syn 1.0.104",
+ "quote",
+ "syn",
]
[[package]]
@@ -7463,11 +5330,11 @@ dependencies = [
"futures-util",
"indexmap",
"pin-project",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"rand 0.8.5",
"slab",
"tokio",
- "tokio-util 0.7.3",
+ "tokio-util",
"tower-layer",
"tower-service",
"tracing",
@@ -7480,13 +5347,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8"
dependencies = [
"bitflags",
- "bytes 1.3.0",
+ "bytes",
"futures-core",
"futures-util",
- "http 0.2.8",
+ "http",
"http-body",
"http-range-header",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tower-layer",
"tower-service",
]
@@ -7497,15 +5364,15 @@ version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c530c8675c1dbf98facee631536fa116b5fb6382d7dd6dc1b118d970eafe3ba"
dependencies = [
- "base64 0.13.1",
+ "base64",
"bitflags",
- "bytes 1.3.0",
+ "bytes",
"futures-core",
"futures-util",
- "http 0.2.8",
+ "http",
"http-body",
"http-range-header",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tower",
"tower-layer",
"tower-service",
@@ -7530,9 +5397,9 @@ version = "0.1.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"log",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tracing-attributes",
"tracing-core",
]
@@ -7543,9 +5410,9 @@ version = "0.1.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -7600,15 +5467,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
dependencies = [
"matchers",
- "nu-ansi-term",
"once_cell",
"regex",
"sharded-slab",
- "smallvec",
"thread_local",
"tracing",
"tracing-core",
- "tracing-log",
]
[[package]]
@@ -7618,7 +5482,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d"
dependencies = [
"async-trait",
- "cfg-if 1.0.0",
+ "cfg-if",
"data-encoding",
"enum-as-inner",
"futures-channel",
@@ -7642,7 +5506,7 @@ version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"futures-util",
"ipconfig",
"lazy_static",
@@ -7692,29 +5556,18 @@ version = "0.17.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e27992fd6a8c29ee7eef28fc78349aa244134e10ad447ce3b9f0ac0ed0fa4ce0"
dependencies = [
- "base64 0.13.1",
+ "base64",
"byteorder",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"httparse",
"log",
"native-tls",
"rand 0.8.5",
- "rustls",
"sha-1",
"thiserror",
"url",
"utf-8",
- "webpki",
-]
-
-[[package]]
-name = "twoway"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
-dependencies = [
- "memchr",
]
[[package]]
@@ -7723,42 +5576,17 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "89851716b67b937e393b3daa8423e67ddfc4bbbf1654bcf05488e95e0828db0c"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
]
-[[package]]
-name = "typemap_rev"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed5b74f0a24b5454580a79abb6994393b09adf0ab8070f15827cb666255de155"
-
[[package]]
name = "typenum"
version = "1.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-[[package]]
-name = "ubyte"
-version = "0.10.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a58e29f263341a29bb79e14ad7fda5f63b1c7e48929bad4c685d7876b1d04e94"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "uncased"
-version = "0.9.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622"
-dependencies = [
- "serde",
- "version_check",
-]
-
[[package]]
name = "unicase"
version = "2.6.0"
@@ -7801,12 +5629,6 @@ version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-[[package]]
-name = "unicode-xid"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-
[[package]]
name = "unicode-xid"
version = "0.2.3"
@@ -7819,16 +5641,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
-[[package]]
-name = "universal-hash"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
[[package]]
name = "untrusted"
version = "0.7.1"
@@ -7841,7 +5653,7 @@ version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b97acb4c28a254fd7a4aeec976c46a7fa404eac4d7c134b30c75144846d7cb8f"
dependencies = [
- "base64 0.13.1",
+ "base64",
"chunked_transfer",
"log",
"native-tls",
@@ -7864,7 +5676,6 @@ dependencies = [
"form_urlencoded",
"idna 0.3.0",
"percent-encoding",
- "serde",
]
[[package]]
@@ -7885,22 +5696,13 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
-[[package]]
-name = "uuid"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
-dependencies = [
- "rand 0.6.5",
-]
-
[[package]]
name = "uuid"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
dependencies = [
- "getrandom 0.2.7",
+ "getrandom",
]
[[package]]
@@ -7909,7 +5711,7 @@ version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
dependencies = [
- "getrandom 0.2.7",
+ "getrandom",
"serde",
]
@@ -7919,20 +5721,6 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-[[package]]
-name = "value-bag"
-version = "1.0.0-alpha.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55"
-dependencies = [
- "ctor",
- "erased-serde",
- "serde",
- "serde_fmt",
- "sval",
- "version_check",
-]
-
[[package]]
name = "vcpkg"
version = "0.2.15"
@@ -7962,8 +5750,8 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
+ "proc-macro2",
+ "quote",
]
[[package]]
@@ -7975,12 +5763,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "waker-fn"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-
[[package]]
name = "walkdir"
version = "2.3.2"
@@ -8002,43 +5784,6 @@ dependencies = [
"try-lock",
]
-[[package]]
-name = "warp"
-version = "0.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed7b8be92646fc3d18b06147664ebc5f48d222686cb11a8755e561a735aacc6d"
-dependencies = [
- "bytes 1.3.0",
- "futures-channel",
- "futures-util",
- "headers",
- "http 0.2.8",
- "hyper",
- "log",
- "mime",
- "mime_guess",
- "multipart",
- "percent-encoding",
- "pin-project",
- "rustls-pemfile 0.2.1",
- "scoped-tls",
- "serde",
- "serde_json",
- "serde_urlencoded",
- "tokio",
- "tokio-stream",
- "tokio-tungstenite",
- "tokio-util 0.7.3",
- "tower-service",
- "tracing",
-]
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
[[package]]
name = "wasi"
version = "0.10.0+wasi-snapshot-preview1"
@@ -8100,9 +5845,7 @@ version = "0.2.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994"
dependencies = [
- "cfg-if 1.0.0",
- "serde",
- "serde_json",
+ "cfg-if",
"wasm-bindgen-macro",
]
@@ -8115,9 +5858,9 @@ dependencies = [
"bumpalo",
"lazy_static",
"log",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
"wasm-bindgen-shared",
]
@@ -8127,7 +5870,7 @@ version = "0.4.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"js-sys",
"wasm-bindgen",
"web-sys",
@@ -8139,7 +5882,7 @@ version = "0.2.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa"
dependencies = [
- "quote 1.0.21",
+ "quote",
"wasm-bindgen-macro-support",
]
@@ -8149,9 +5892,9 @@ version = "0.2.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -8190,7 +5933,7 @@ dependencies = [
"anyhow",
"async-trait",
"bincode",
- "cfg-if 1.0.0",
+ "cfg-if",
"indexmap",
"libc",
"log",
@@ -8218,7 +5961,7 @@ version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1f5206486f0467ba86e84d35996c4048b077cec2c9e5b322e7b853bdbe79334"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
]
[[package]]
@@ -8228,14 +5971,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d1e77abcf538af42517e188c109e4b50ecf6c0ee4d77ede76a438e0306b934dc"
dependencies = [
"anyhow",
- "base64 0.13.1",
+ "base64",
"bincode",
"directories-next",
"file-per-thread-logger",
"log",
"rustix",
"serde",
- "sha2 0.10.2",
+ "sha2",
"toml",
"windows-sys 0.42.0",
"zstd",
@@ -8288,7 +6031,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fb38af221b780f2c03764d763fe7f7bc414ea9db744d66dac98f9b694892561"
dependencies = [
"cc",
- "cfg-if 1.0.0",
+ "cfg-if",
"rustix",
"wasmtime-asm-macros",
"windows-sys 0.42.0",
@@ -8303,7 +6046,7 @@ dependencies = [
"addr2line",
"anyhow",
"bincode",
- "cfg-if 1.0.0",
+ "cfg-if",
"cpp_demangle",
"gimli",
"ittapi",
@@ -8336,7 +6079,7 @@ version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22d9c2e92b0fc124d2cad6cb497a4c840580a7dd2414a37109e8c7cfe699c0ea"
dependencies = [
- "cfg-if 1.0.0",
+ "cfg-if",
"libc",
"windows-sys 0.42.0",
]
@@ -8349,7 +6092,7 @@ checksum = "0a1f0f99297a94cb20c511d1d4e864d9b54794644016d2530dc797cacfa7224a"
dependencies = [
"anyhow",
"cc",
- "cfg-if 1.0.0",
+ "cfg-if",
"indexmap",
"libc",
"log",
@@ -8466,15 +6209,6 @@ dependencies = [
"webpki",
]
-[[package]]
-name = "wepoll-ffi"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb"
-dependencies = [
- "cc",
-]
-
[[package]]
name = "which"
version = "4.4.0"
@@ -8525,10 +6259,10 @@ checksum = "c15bf89e66bd1a9463ee529d37b999947befafd792f345d4a82e0d2b28c0845f"
dependencies = [
"anyhow",
"heck",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
+ "proc-macro2",
+ "quote",
"shellexpand",
- "syn 1.0.104",
+ "syn",
"witx",
]
@@ -8538,9 +6272,9 @@ version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "919fb8f106375c7f6daf7b388a1fea3e2092dedb273b17b2d917522917c07a3c"
dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "syn 1.0.104",
+ "proc-macro2",
+ "quote",
+ "syn",
"wiggle-generate",
]
@@ -8595,19 +6329,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
dependencies = [
"windows_aarch64_gnullvm",
- "windows_aarch64_msvc 0.42.0",
- "windows_i686_gnu 0.42.0",
- "windows_i686_msvc 0.42.0",
- "windows_x86_64_gnu 0.42.0",
+ "windows_aarch64_msvc 0.42.1",
+ "windows_i686_gnu 0.42.1",
+ "windows_i686_msvc 0.42.1",
+ "windows_x86_64_gnu 0.42.1",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc 0.42.1",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.45.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.42.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc 0.42.1",
+ "windows_i686_gnu 0.42.1",
+ "windows_i686_msvc 0.42.1",
+ "windows_x86_64_gnu 0.42.1",
"windows_x86_64_gnullvm",
- "windows_x86_64_msvc 0.42.0",
+ "windows_x86_64_msvc 0.42.1",
]
[[package]]
name = "windows_aarch64_gnullvm"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
[[package]]
name = "windows_aarch64_msvc"
@@ -8617,9 +6375,9 @@ checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
[[package]]
name = "windows_aarch64_msvc"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
[[package]]
name = "windows_i686_gnu"
@@ -8629,9 +6387,9 @@ checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
[[package]]
name = "windows_i686_gnu"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
[[package]]
name = "windows_i686_msvc"
@@ -8641,9 +6399,9 @@ checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
[[package]]
name = "windows_i686_msvc"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
[[package]]
name = "windows_x86_64_gnu"
@@ -8653,15 +6411,15 @@ checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
[[package]]
name = "windows_x86_64_gnu"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
[[package]]
name = "windows_x86_64_gnullvm"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
[[package]]
name = "windows_x86_64_msvc"
@@ -8671,9 +6429,9 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
[[package]]
name = "windows_x86_64_msvc"
-version = "0.42.0"
+version = "0.42.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
[[package]]
name = "winreg"
From 131cf6b29e067c945d5a67f7516fa8d47e133875 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Sat, 11 Mar 2023 16:05:10 +0100
Subject: [PATCH 19/26] feat: make service integration inner pub
---
integrations/shuttle-actix-web/src/lib.rs | 2 +-
integrations/shuttle-poem/src/lib.rs | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/integrations/shuttle-actix-web/src/lib.rs b/integrations/shuttle-actix-web/src/lib.rs
index 76547268c..793edfc93 100644
--- a/integrations/shuttle-actix-web/src/lib.rs
+++ b/integrations/shuttle-actix-web/src/lib.rs
@@ -24,7 +24,7 @@ use std::net::SocketAddr;
/// A wrapper type for a closure that returns an [actix_web::web::ServiceConfig] so we can implement
/// [shuttle_runtime::Service] for it.
#[derive(Clone)]
-pub struct ActixWebService(F);
+pub struct ActixWebService(pub F);
#[shuttle_runtime::async_trait]
impl shuttle_runtime::Service for ActixWebService
diff --git a/integrations/shuttle-poem/src/lib.rs b/integrations/shuttle-poem/src/lib.rs
index fa9a75151..4adef8782 100644
--- a/integrations/shuttle-poem/src/lib.rs
+++ b/integrations/shuttle-poem/src/lib.rs
@@ -19,7 +19,7 @@
//! ```
/// A wrapper type for [poem::Endpoint] so we can implement [shuttle_runtime::Service] for it.
-pub struct PoemService(T);
+pub struct PoemService(pub T);
#[shuttle_runtime::async_trait]
impl shuttle_runtime::Service for PoemService
From 22a6a23d7e7ffac90c0440b8de93e4aab53c673a Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 09:38:44 +0100
Subject: [PATCH 20/26] fix: merge fixes
---
Cargo.lock | 741 +++++++++-----------------------
codegen/src/shuttle_main/mod.rs | 4 +-
runtime/Cargo.toml | 1 +
runtime/src/lib.rs | 1 +
4 files changed, 203 insertions(+), 544 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index e7b843b16..ec6ba3832 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -82,6 +82,12 @@ version = "1.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "983cd8b9d4b02a6dc6ffa557262eb5858a27a0038ffffe21a0f133eaa819a164"
+[[package]]
+name = "arrayref"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+
[[package]]
name = "arrayvec"
version = "0.5.2"
@@ -108,107 +114,6 @@ dependencies = [
"wait-timeout",
]
-[[package]]
-name = "async-channel"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-compression"
-version = "0.3.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345fd392ab01f746c717b1357165b76f0b67a60192007b234058c9045fdcf695"
-dependencies = [
- "brotli",
- "flate2",
- "futures-core",
- "memchr",
- "pin-project-lite 0.2.9",
- "tokio",
-]
-
-[[package]]
-name = "async-dup"
-version = "1.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7427a12b8dc09291528cfb1da2447059adb4a257388c2acd6497a79d55cf6f7c"
-dependencies = [
- "futures-io",
- "simple-mutex",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "once_cell",
- "slab",
-]
-
-[[package]]
-name = "async-global-executor"
-version = "2.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5262ed948da60dd8956c6c5aca4d4163593dddb7b32d73267c93dab7b2e98940"
-dependencies = [
- "async-channel",
- "async-executor",
- "async-io",
- "async-lock",
- "blocking",
- "futures-lite",
- "num_cpus",
- "once_cell",
- "tokio",
-]
-
-[[package]]
-name = "async-h1"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8101020758a4fc3a7c326cb42aa99e9fa77cbfb76987c128ad956406fe1f70a7"
-dependencies = [
- "async-channel",
- "async-dup",
- "async-std",
- "futures-core",
- "http-types",
- "httparse",
- "log",
- "pin-project",
-]
-
-[[package]]
-name = "async-io"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5e18f61464ae81cde0a23e713ae8fd299580c54d697a35820cfd0625b8b0e07"
-dependencies = [
- "concurrent-queue",
- "futures-lite",
- "libc",
- "log",
- "once_cell",
- "parking",
- "polling",
- "slab",
- "socket2",
- "waker-fn",
- "winapi",
-]
-
[[package]]
name = "async-lock"
version = "2.5.0"
@@ -218,44 +123,6 @@ dependencies = [
"event-listener",
]
-[[package]]
-name = "async-process"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2c06e30a24e8c78a3987d07f0930edf76ef35e027e7bdb063fccafdad1f60c"
-dependencies = [
- "async-io",
- "blocking",
- "cfg-if 1.0.0",
- "event-listener",
- "futures-lite",
- "libc",
- "once_cell",
- "signal-hook",
- "winapi",
-]
-
-[[package]]
-name = "async-session"
-version = "2.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345022a2eed092cd105cc1b26fd61c341e100bd5fcbbd792df4baf31c2cc631f"
-dependencies = [
- "anyhow",
- "async-std",
- "async-trait",
- "base64 0.12.3",
- "bincode",
- "blake3",
- "chrono",
- "hmac 0.8.1",
- "kv-log-macro",
- "rand 0.7.3",
- "serde",
- "serde_json",
- "sha2 0.9.9",
-]
-
[[package]]
name = "async-session"
version = "3.0.0"
@@ -265,59 +132,18 @@ dependencies = [
"anyhow",
"async-lock",
"async-trait",
- "base64 0.13.1",
+ "base64",
"bincode",
"blake3",
"chrono",
"hmac 0.11.0",
"log",
- "rand 0.8.5",
+ "rand",
"serde",
"serde_json",
"sha2 0.9.9",
]
-[[package]]
-name = "async-sse"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53bba003996b8fd22245cd0c59b869ba764188ed435392cf2796d03b805ade10"
-dependencies = [
- "async-channel",
- "async-std",
- "http-types",
- "log",
- "memchr",
- "pin-project-lite 0.1.12",
-]
-
-[[package]]
-name = "async-std"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d"
-dependencies = [
- "async-channel",
- "async-global-executor",
- "async-io",
- "async-lock",
- "async-process",
- "crossbeam-utils",
- "futures-channel",
- "futures-core",
- "futures-io",
- "futures-lite",
- "gloo-timers",
- "kv-log-macro",
- "log",
- "memchr",
- "once_cell",
- "pin-project-lite 0.2.9",
- "pin-utils",
- "slab",
- "wasm-bindgen-futures",
-]
-
[[package]]
name = "async-stream"
version = "0.3.3"
@@ -397,7 +223,7 @@ dependencies = [
"http",
"hyper",
"ring",
- "time 0.3.11",
+ "time",
"tokio",
"tower",
"tracing",
@@ -530,7 +356,7 @@ dependencies = [
"percent-encoding",
"regex",
"ring",
- "time 0.3.11",
+ "time",
"tracing",
]
@@ -634,7 +460,7 @@ dependencies = [
"itoa",
"num-integer",
"ryu",
- "time 0.3.11",
+ "time",
]
[[package]]
@@ -723,12 +549,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9a320103719de37b7b4da4c8eb629d4573f6bcfd3dfe80d3208806895ccf81d"
dependencies = [
"axum",
- "bytes 1.3.0",
+ "bytes",
"cookie 0.16.0",
"futures-util",
- "http 0.2.8",
+ "http",
"mime",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
"tower",
"tower-http 0.3.5",
@@ -743,12 +569,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51227033e4d3acad15c879092ac8a228532707b5db5ff2628f638334f63e1b7a"
dependencies = [
"axum",
- "bytes 1.3.0",
+ "bytes",
"cookie 0.17.0",
"futures-util",
- "http 0.2.8",
+ "http",
"mime",
- "pin-project-lite 0.2.9",
+ "pin-project-lite",
"tokio",
"tower",
"tower-http 0.3.5",
@@ -770,7 +596,7 @@ dependencies = [
"hyper",
"pin-project-lite",
"rustls",
- "rustls-pemfile 1.0.1",
+ "rustls-pemfile",
"tokio",
"tokio-rustls",
"tower-service",
@@ -782,7 +608,7 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4b114309d293dd8a6fedebf09d5b8bbb0f7647b3d204ca0dd333b5f797aed5c8"
dependencies = [
- "async-session 3.0.0",
+ "async-session",
"axum",
"axum-extra 0.4.2",
"futures",
@@ -792,12 +618,6 @@ dependencies = [
"tracing",
]
-[[package]]
-name = "base64"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-
[[package]]
name = "base64"
version = "0.13.1"
@@ -828,6 +648,30 @@ dependencies = [
"typenum",
]
+[[package]]
+name = "blake3"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b64485778c4f16a6a5a9d335e80d449ac6c70cdd6a06d2af18a6f6f775a125b3"
+dependencies = [
+ "arrayref",
+ "arrayvec 0.5.2",
+ "cc",
+ "cfg-if 0.1.10",
+ "constant_time_eq",
+ "crypto-mac 0.8.0",
+ "digest 0.9.0",
+]
+
+[[package]]
+name = "block-buffer"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
+dependencies = [
+ "generic-array",
+]
+
[[package]]
name = "block-buffer"
version = "0.10.2"
@@ -886,12 +730,12 @@ dependencies = [
"hex 0.4.3",
"indexmap",
"lazy_static",
- "rand 0.8.5",
+ "rand",
"serde",
"serde_bytes",
"serde_json",
- "time 0.3.11",
- "uuid 1.2.2",
+ "time",
+ "uuid",
]
[[package]]
@@ -996,7 +840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53df044ddcb88611e19b712211b342ab106105cf658406f5ed4ee09ab10ed727"
dependencies = [
"ambient-authority",
- "rand 0.8.5",
+ "rand",
]
[[package]]
@@ -1178,7 +1022,7 @@ dependencies = [
"tracing",
"tracing-subscriber",
"url",
- "uuid 1.2.2",
+ "uuid",
"webbrowser",
]
@@ -1233,6 +1077,12 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
[[package]]
name = "cfg-if"
version = "1.0.0"
@@ -1246,12 +1096,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
dependencies = [
"iana-time-zone",
- "js-sys",
"num-integer",
"num-traits",
"serde",
- "time 0.1.44",
- "wasm-bindgen",
"winapi",
]
@@ -1435,12 +1282,6 @@ dependencies = [
"winapi",
]
-[[package]]
-name = "const_fn"
-version = "0.4.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fbdcdcb6d86f71c5e97409ad45898af11cbc995b4ee8112d59095a28d376c935"
-
[[package]]
name = "constant_time_eq"
version = "0.1.5"
@@ -1453,38 +1294,19 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
-[[package]]
-name = "cookie"
-version = "0.14.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
-dependencies = [
- "aes-gcm 0.8.0",
- "base64 0.13.1",
- "hkdf 0.10.0",
- "hmac 0.10.1",
- "percent-encoding",
- "rand 0.8.5",
- "sha2 0.9.9",
- "time 0.2.27",
- "version_check",
-]
-
[[package]]
name = "cookie"
version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "94d4706de1b0fa5b132270cddffa8585166037822e260a944fe161acd137ca05"
dependencies = [
- "aes-gcm 0.9.4",
- "base64 0.13.1",
- "hkdf 0.12.3",
+ "base64",
"hmac 0.12.1",
"percent-encoding",
- "rand 0.8.5",
+ "rand",
"sha2 0.10.2",
"subtle",
- "time 0.3.11",
+ "time",
"version_check",
]
@@ -1495,7 +1317,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
dependencies = [
"percent-encoding",
- "time 0.3.11",
+ "time",
"version_check",
]
@@ -1521,7 +1343,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -1702,7 +1524,7 @@ version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -1711,7 +1533,7 @@ version = "0.5.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"crossbeam-utils",
]
@@ -1721,7 +1543,7 @@ version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"crossbeam-epoch",
"crossbeam-utils",
]
@@ -1733,7 +1555,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a"
dependencies = [
"autocfg",
- "cfg-if",
+ "cfg-if 1.0.0",
"crossbeam-utils",
"memoffset 0.7.1",
"scopeguard",
@@ -1745,7 +1567,7 @@ version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f25d8400f4a7a5778f0e4e52384a48cbd9b5c495d110786187fc750075277a2"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"crossbeam-utils",
]
@@ -1755,7 +1577,7 @@ version = "0.8.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"once_cell",
]
@@ -1816,16 +1638,6 @@ dependencies = [
"subtle",
]
-[[package]]
-name = "crypto-mac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bff07008ec701e8028e2ceb8f83f0e4274ee62bd2dbdc4fefff2e9a91824081a"
-dependencies = [
- "generic-array",
- "subtle",
-]
-
[[package]]
name = "crypto-mac"
version = "0.11.1"
@@ -1924,7 +1736,7 @@ version = "5.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"hashbrown",
"lock_api",
"once_cell",
@@ -1948,6 +1760,19 @@ dependencies = [
"syn",
]
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version 0.4.0",
+ "syn",
+]
+
[[package]]
name = "dialoguer"
version = "0.10.2"
@@ -1972,13 +1797,22 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+[[package]]
+name = "digest"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
+dependencies = [
+ "generic-array",
+]
+
[[package]]
name = "digest"
version = "0.10.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"
dependencies = [
- "block-buffer",
+ "block-buffer 0.10.2",
"crypto-common",
"subtle",
]
@@ -1989,7 +1823,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"dirs-sys-next",
]
@@ -2008,7 +1842,7 @@ version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"dirs-sys-next",
]
@@ -2073,7 +1907,7 @@ version = "0.8.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9852635589dc9f9ea1b6fe9f05b50ef208c85c834a562f0c6abb1c475736ec2b"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -2169,7 +2003,7 @@ version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
"redox_syscall",
"winapi",
@@ -2251,12 +2085,6 @@ dependencies = [
"windows-sys 0.42.0",
]
-[[package]]
-name = "fuchsia-cprng"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-
[[package]]
name = "futures"
version = "0.3.25"
@@ -2401,9 +2229,9 @@ version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
]
[[package]]
@@ -2573,27 +2401,7 @@ version = "0.12.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437"
dependencies = [
- "hmac",
-]
-
-[[package]]
-name = "hmac"
-version = "0.8.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
-dependencies = [
- "crypto-mac 0.8.0",
- "digest 0.9.0",
-]
-
-[[package]]
-name = "hmac"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1441c6b1e930e2817404b5046f1f989899143a12bf92de603b69f4e0aee1e15"
-dependencies = [
- "crypto-mac 0.10.1",
- "digest 0.9.0",
+ "hmac 0.12.1",
]
[[package]]
@@ -2612,7 +2420,7 @@ version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
dependencies = [
- "digest",
+ "digest 0.10.3",
]
[[package]]
@@ -2855,7 +2663,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
dependencies = [
"bitmaps",
- "rand_core 0.6.3",
+ "rand_core",
"rand_xoshiro",
"sized-chunks",
"typenum",
@@ -2897,7 +2705,7 @@ version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -3044,21 +2852,7 @@ version = "8.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09f4f04699947111ec1733e71778d763555737579e44b85844cae8e1940a1828"
dependencies = [
- "base64 0.13.1",
- "pem",
- "ring",
- "serde",
- "serde_json",
- "simple_asn1",
-]
-
-[[package]]
-name = "jsonwebtoken"
-version = "8.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09f4f04699947111ec1733e71778d763555737579e44b85844cae8e1940a1828"
-dependencies = [
- "base64 0.13.1",
+ "base64",
"pem",
"ring",
"serde",
@@ -3113,16 +2907,6 @@ dependencies = [
"pkg-config",
]
-[[package]]
-name = "libloading"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
-dependencies = [
- "cfg-if 1.0.0",
- "winapi",
-]
-
[[package]]
name = "libnghttp2-sys"
version = "0.1.7+1.45.0"
@@ -3198,7 +2982,7 @@ version = "0.4.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -3267,7 +3051,7 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "658646b21e0b72f7866c7038ab086d3d5e1cd6271f060fd37defb241949d0582"
dependencies = [
- "digest",
+ "digest 0.10.3",
]
[[package]]
@@ -3342,7 +3126,7 @@ checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
dependencies = [
"libc",
"log",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
"windows-sys 0.36.1",
]
@@ -3373,20 +3157,20 @@ dependencies = [
"futures-io",
"futures-util",
"hex 0.4.3",
- "hmac",
+ "hmac 0.12.1",
"lazy_static",
"md-5",
"pbkdf2",
"percent-encoding",
- "rand 0.8.5",
+ "rand",
"rustc_version_runtime",
"rustls",
- "rustls-pemfile 1.0.1",
+ "rustls-pemfile",
"serde",
"serde_bytes",
"serde_with",
"sha-1",
- "sha2",
+ "sha2 0.10.2",
"socket2",
"stringprep",
"strsim",
@@ -3398,7 +3182,7 @@ dependencies = [
"trust-dns-proto",
"trust-dns-resolver",
"typed-builder",
- "uuid 1.2.2",
+ "uuid",
"webpki-roots",
]
@@ -3440,7 +3224,7 @@ checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb"
dependencies = [
"autocfg",
"bitflags",
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
"memoffset 0.6.5",
"pin-utils",
@@ -3472,7 +3256,7 @@ version = "0.4.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
dependencies = [
- "autocfg 1.1.0",
+ "autocfg",
"num-integer",
"num-traits",
]
@@ -3548,6 +3332,12 @@ version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+[[package]]
+name = "opaque-debug"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+
[[package]]
name = "opener"
version = "0.5.0"
@@ -3565,7 +3355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e"
dependencies = [
"bitflags",
- "cfg-if",
+ "cfg-if 1.0.0",
"foreign-types",
"libc",
"once_cell",
@@ -3630,8 +3420,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1edc79add46364183ece1a4542592ca593e6421c60807232f5b8f7a31703825d"
dependencies = [
"async-trait",
- "bytes 1.3.0",
- "http 0.2.8",
+ "bytes",
+ "http",
"opentelemetry_api",
]
@@ -3644,7 +3434,7 @@ dependencies = [
"async-trait",
"futures",
"futures-util",
- "http 0.2.8",
+ "http",
"opentelemetry",
"opentelemetry-proto",
"prost",
@@ -3699,7 +3489,7 @@ dependencies = [
"once_cell",
"opentelemetry_api",
"percent-encoding",
- "rand 0.8.5",
+ "rand",
"thiserror",
"tokio",
"tokio-stream",
@@ -3731,6 +3521,12 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
[[package]]
name = "parking_lot"
version = "0.11.2"
@@ -3758,7 +3554,7 @@ version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"instant",
"libc",
"redox_syscall",
@@ -3772,7 +3568,7 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
"redox_syscall",
"smallvec",
@@ -3797,7 +3593,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
dependencies = [
- "digest",
+ "digest 0.10.3",
]
[[package]]
@@ -3884,7 +3680,7 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be97d76faf1bfab666e1375477b23fde79eccf0276e9b63b92a39d676a889ba9"
dependencies = [
- "rand 0.8.5",
+ "rand",
]
[[package]]
@@ -4060,38 +3856,6 @@ dependencies = [
"proc-macro2",
]
-[[package]]
-name = "rand"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-dependencies = [
- "autocfg 0.1.8",
- "libc",
- "rand_chacha 0.1.1",
- "rand_core 0.4.2",
- "rand_hc 0.1.0",
- "rand_isaac",
- "rand_jitter",
- "rand_os",
- "rand_pcg",
- "rand_xorshift",
- "winapi",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc 0.2.0",
-]
-
[[package]]
name = "rand"
version = "0.8.5"
@@ -4100,7 +3864,7 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
"rand_chacha",
- "rand_core 0.6.3",
+ "rand_core",
]
[[package]]
@@ -4110,24 +3874,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
- "rand_core 0.6.3",
+ "rand_core",
]
-[[package]]
-name = "rand_core"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-dependencies = [
- "rand_core 0.4.2",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-
[[package]]
name = "rand_core"
version = "0.6.3"
@@ -4143,7 +3892,7 @@ version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
dependencies = [
- "rand_core 0.6.3",
+ "rand_core",
]
[[package]]
@@ -4186,19 +3935,10 @@ checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
dependencies = [
"pem",
"ring",
- "time 0.3.11",
+ "time",
"yasna",
]
-[[package]]
-name = "rdrand"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-dependencies = [
- "rand_core 0.3.1",
-]
-
[[package]]
name = "redox_syscall"
version = "0.2.13"
@@ -4293,7 +4033,7 @@ dependencies = [
"percent-encoding",
"pin-project-lite",
"rustls",
- "rustls-pemfile 1.0.1",
+ "rustls-pemfile",
"serde",
"serde_json",
"serde_urlencoded",
@@ -4362,7 +4102,7 @@ checksum = "47f9e19b18c6cdd796cc70aea8a9ea5ee7b813be611c6589e3624fcdbfd05f9d"
dependencies = [
"anyhow",
"chrono",
- "rand 0.8.5",
+ "rand",
]
[[package]]
@@ -4508,26 +4248,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50"
dependencies = [
"openssl-probe",
- "rustls-pemfile 1.0.1",
+ "rustls-pemfile",
"schannel",
"security-framework",
]
-[[package]]
-name = "rustls-pemfile"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9"
-
-[[package]]
-name = "rustls-pemfile"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360"
-dependencies = [
- "base64",
-]
-
[[package]]
name = "rustls-pemfile"
version = "1.0.1"
@@ -4746,9 +4471,9 @@ version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "028f48d513f9678cda28f6e4064755b3fbb2af6acd672f2c209b62323f7aea0f"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"cpufeatures",
- "digest",
+ "digest 0.10.3",
]
[[package]]
@@ -4757,9 +4482,22 @@ version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "006769ba83e921b3085caa8334186b00cf92b4cb1a6cf4632fbccc8eff5c7549"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"cpufeatures",
- "digest",
+ "digest 0.10.3",
+]
+
+[[package]]
+name = "sha2"
+version = "0.9.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
+dependencies = [
+ "block-buffer 0.9.0",
+ "cfg-if 1.0.0",
+ "cpufeatures",
+ "digest 0.9.0",
+ "opaque-debug",
]
[[package]]
@@ -4768,9 +4506,9 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"cpufeatures",
- "digest",
+ "digest 0.10.3",
]
[[package]]
@@ -4824,11 +4562,11 @@ dependencies = [
"axum-extra 0.5.0",
"axum-sessions",
"clap 4.0.27",
- "http 0.2.8",
+ "http",
"hyper",
"jsonwebtoken",
"opentelemetry",
- "rand 0.8.5",
+ "rand",
"ring",
"serde",
"serde_json",
@@ -4862,14 +4600,14 @@ dependencies = [
"anyhow",
"async-trait",
"axum",
- "base64 0.13.1",
- "bytes 1.3.0",
+ "base64",
+ "bytes",
"cap-std",
"chrono",
"comfy-table",
"crossterm",
"headers",
- "http 0.2.8",
+ "http",
"http-body",
"http-serde",
"hyper",
@@ -4897,7 +4635,7 @@ dependencies = [
"tracing-opentelemetry",
"tracing-subscriber",
"ttl_cache",
- "uuid 1.2.2",
+ "uuid",
]
[[package]]
@@ -4926,7 +4664,7 @@ dependencies = [
"opentelemetry-http",
"pipe",
"portpicker",
- "rand 0.8.5",
+ "rand",
"serde",
"serde_json",
"shuttle-common",
@@ -4945,7 +4683,7 @@ dependencies = [
"tracing",
"tracing-opentelemetry",
"tracing-subscriber",
- "uuid 1.2.2",
+ "uuid",
]
[[package]]
@@ -4977,11 +4715,11 @@ dependencies = [
"pem",
"pin-project",
"portpicker",
- "rand 0.8.5",
+ "rand",
"rcgen",
"ring",
"rustls",
- "rustls-pemfile 1.0.1",
+ "rustls-pemfile",
"serde",
"serde_json",
"shuttle-common",
@@ -4996,7 +4734,7 @@ dependencies = [
"tracing-opentelemetry",
"tracing-subscriber",
"ttl_cache",
- "uuid 1.2.2",
+ "uuid",
]
[[package]]
@@ -5027,7 +4765,7 @@ dependencies = [
"tonic",
"tonic-build",
"tracing",
- "uuid 1.2.2",
+ "uuid",
]
[[package]]
@@ -5043,7 +4781,7 @@ dependencies = [
"once_cell",
"portpicker",
"prost",
- "rand 0.8.5",
+ "rand",
"serde_json",
"shuttle-common",
"shuttle-proto",
@@ -5074,6 +4812,7 @@ dependencies = [
"shuttle-common",
"shuttle-proto",
"shuttle-service",
+ "strfmt",
"thiserror",
"tokio",
"tokio-stream",
@@ -5081,7 +4820,7 @@ dependencies = [
"tower",
"tracing",
"tracing-subscriber",
- "uuid 1.2.2",
+ "uuid",
"wasi-common",
"wasmtime",
"wasmtime-wasi",
@@ -5109,7 +4848,6 @@ dependencies = [
"serde_json",
"shuttle-codegen",
"shuttle-common",
- "sqlx",
"strfmt",
"thiserror",
"tokio",
@@ -5146,15 +4884,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "simple-mutex"
-version = "1.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38aabbeafa6f6dead8cebf246fe9fae1f9215c8d29b3a69f93bd62a9e4a3dcd6"
-dependencies = [
- "event-listener",
-]
-
[[package]]
name = "simple_asn1"
version = "0.6.2"
@@ -5164,7 +4893,7 @@ dependencies = [
"num-bigint",
"num-traits",
"thiserror",
- "time 0.3.11",
+ "time",
]
[[package]]
@@ -5302,7 +5031,7 @@ dependencies = [
"hashlink",
"hex 0.4.3",
"hkdf",
- "hmac",
+ "hmac 0.12.1",
"indexmap",
"itoa",
"libc",
@@ -5313,11 +5042,11 @@ dependencies = [
"once_cell",
"paste",
"percent-encoding",
- "rand 0.8.5",
+ "rand",
"serde",
"serde_json",
"sha1",
- "sha2",
+ "sha2 0.10.2",
"smallvec",
"sqlformat",
"sqlx-rt",
@@ -5325,7 +5054,7 @@ dependencies = [
"thiserror",
"tokio-stream",
"url",
- "uuid 1.2.2",
+ "uuid",
"whoami",
]
@@ -5342,7 +5071,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_json",
- "sha2",
+ "sha2 0.10.2",
"sqlx-core",
"sqlx-rt",
"syn",
@@ -5373,55 +5102,6 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
-[[package]]
-name = "stdweb"
-version = "0.4.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d022496b16281348b52d0e30ae99e01a73d737b2f45d38fed4edf79f9325a1d5"
-dependencies = [
- "discard",
- "rustc_version 0.2.3",
- "stdweb-derive",
- "stdweb-internal-macros",
- "stdweb-internal-runtime",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "stdweb-derive"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c87a60a40fccc84bef0652345bbbbbe20a605bf5d0ce81719fc476f5c03b50ef"
-dependencies = [
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "serde",
- "serde_derive",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "stdweb-internal-macros"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58fa5ff6ad0d98d1ffa8cb115892b6e69d67799f6763e162a1c9db421dc22e11"
-dependencies = [
- "base-x",
- "proc-macro2 1.0.47",
- "quote 1.0.21",
- "serde",
- "serde_derive",
- "serde_json",
- "sha1 0.6.1",
- "syn 1.0.104",
-]
-
-[[package]]
-name = "stdweb-internal-runtime"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
-
[[package]]
name = "strfmt"
version = "0.2.2"
@@ -5561,7 +5241,7 @@ version = "3.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"fastrand",
"libc",
"redox_syscall",
@@ -5660,17 +5340,6 @@ dependencies = [
"once_cell",
]
-[[package]]
-name = "time"
-version = "0.1.44"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
[[package]]
name = "time"
version = "0.3.11"
@@ -5932,7 +5601,7 @@ dependencies = [
"indexmap",
"pin-project",
"pin-project-lite",
- "rand 0.8.5",
+ "rand",
"slab",
"tokio",
"tokio-util",
@@ -5998,7 +5667,7 @@ version = "0.1.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"log",
"pin-project-lite",
"tracing-attributes",
@@ -6079,12 +5748,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
dependencies = [
"matchers",
+ "nu-ansi-term",
"once_cell",
"regex",
"sharded-slab",
+ "smallvec",
"thread_local",
"tracing",
"tracing-core",
+ "tracing-log",
]
[[package]]
@@ -6094,7 +5766,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c31f240f59877c3d4bb3b3ea0ec5a6a0cff07323580ff8c7a605cd7d08b255d"
dependencies = [
"async-trait",
- "cfg-if",
+ "cfg-if 1.0.0",
"data-encoding",
"enum-as-inner",
"futures-channel",
@@ -6104,7 +5776,7 @@ dependencies = [
"ipnet",
"lazy_static",
"log",
- "rand 0.8.5",
+ "rand",
"smallvec",
"thiserror",
"tinyvec",
@@ -6118,7 +5790,7 @@ version = "0.21.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e4ba72c2ea84515690c9fcef4c6c660bb9df3036ed1051686de84605b74fd558"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"futures-util",
"ipconfig",
"lazy_static",
@@ -6175,7 +5847,7 @@ dependencies = [
"httparse",
"log",
"native-tls",
- "rand 0.8.5",
+ "rand",
"sha-1",
"thiserror",
"url",
@@ -6308,15 +5980,6 @@ version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "936e4b492acfd135421d8dca4b1aa80a7bfc26e702ef3af710e0752684df5372"
-[[package]]
-name = "uuid"
-version = "0.7.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
-dependencies = [
- "rand 0.6.5",
-]
-
[[package]]
name = "uuid"
version = "1.2.2"
@@ -6396,12 +6059,6 @@ dependencies = [
"try-lock",
]
-[[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
-
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
@@ -6457,7 +6114,7 @@ version = "0.2.81"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"wasm-bindgen-macro",
]
@@ -6482,7 +6139,7 @@ version = "0.4.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "de9a9cec1733468a8c657e57fa2413d2ae2c0129b95e87c5b72b8ace4d13f31f"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"js-sys",
"wasm-bindgen",
"web-sys",
@@ -6545,7 +6202,7 @@ dependencies = [
"anyhow",
"async-trait",
"bincode",
- "cfg-if",
+ "cfg-if 1.0.0",
"indexmap",
"libc",
"log",
@@ -6573,7 +6230,7 @@ version = "4.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c1f5206486f0467ba86e84d35996c4048b077cec2c9e5b322e7b853bdbe79334"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
]
[[package]]
@@ -6590,7 +6247,7 @@ dependencies = [
"log",
"rustix",
"serde",
- "sha2",
+ "sha2 0.10.2",
"toml",
"windows-sys 0.42.0",
"zstd",
@@ -6643,7 +6300,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fb38af221b780f2c03764d763fe7f7bc414ea9db744d66dac98f9b694892561"
dependencies = [
"cc",
- "cfg-if",
+ "cfg-if 1.0.0",
"rustix",
"wasmtime-asm-macros",
"windows-sys 0.42.0",
@@ -6658,7 +6315,7 @@ dependencies = [
"addr2line",
"anyhow",
"bincode",
- "cfg-if",
+ "cfg-if 1.0.0",
"cpp_demangle",
"gimli",
"ittapi",
@@ -6691,7 +6348,7 @@ version = "3.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22d9c2e92b0fc124d2cad6cb497a4c840580a7dd2414a37109e8c7cfe699c0ea"
dependencies = [
- "cfg-if",
+ "cfg-if 1.0.0",
"libc",
"windows-sys 0.42.0",
]
@@ -6704,7 +6361,7 @@ checksum = "0a1f0f99297a94cb20c511d1d4e864d9b54794644016d2530dc797cacfa7224a"
dependencies = [
"anyhow",
"cc",
- "cfg-if",
+ "cfg-if 1.0.0",
"indexmap",
"libc",
"log",
@@ -6712,7 +6369,7 @@ dependencies = [
"memfd",
"memoffset 0.6.5",
"paste",
- "rand 0.8.5",
+ "rand",
"rustix",
"wasmtime-asm-macros",
"wasmtime-environ",
@@ -7113,7 +6770,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "346d34a236c9d3e5f3b9b74563f238f955bbd05fa0b8b4efa53c130c43982f4c"
dependencies = [
- "time 0.3.11",
+ "time",
]
[[package]]
diff --git a/codegen/src/shuttle_main/mod.rs b/codegen/src/shuttle_main/mod.rs
index dd385d301..504f7b25c 100644
--- a/codegen/src/shuttle_main/mod.rs
+++ b/codegen/src/shuttle_main/mod.rs
@@ -204,7 +204,7 @@ impl ToTokens for Loader {
lit: Lit::Str(str), ..
}) => {
needs_vars = true;
- quote!(&shuttle_service::strfmt(#str, &vars)?)
+ quote!(&shuttle_runtime::strfmt(#str, &vars)?)
}
other => quote!(#other),
};
@@ -513,7 +513,7 @@ mod tests {
.init();
let vars = std::collections::HashMap::from_iter(factory.get_secrets().await?.into_iter().map(|(key, value)| (format!("secrets.{}", key), value)));
- let pool = shuttle_shared_db::Postgres::new().size(&shuttle_service::strfmt("10Gb", &vars)?).public(false).build(&mut factory).await.context(format!("failed to provision {}", stringify!(shuttle_shared_db::Postgres)))?;
+ let pool = shuttle_shared_db::Postgres::new().size(&shuttle_runtime::strfmt("10Gb", &vars)?).public(false).build(&mut factory).await.context(format!("failed to provision {}", stringify!(shuttle_shared_db::Postgres)))?;
complex(pool).await
}
diff --git a/runtime/Cargo.toml b/runtime/Cargo.toml
index 113a34754..5fbc965cc 100644
--- a/runtime/Cargo.toml
+++ b/runtime/Cargo.toml
@@ -16,6 +16,7 @@ async-trait = { workspace = true }
chrono = { workspace = true }
clap ={ version = "4.0.18", features = ["derive"] }
serde_json = { workspace = true }
+strfmt = "0.2.2"
thiserror = { workspace = true }
tokio = { version = "1.22.0", features = ["full"] }
tokio-stream = "0.1.11"
diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs
index 63a574f23..573a3c6f8 100644
--- a/runtime/src/lib.rs
+++ b/runtime/src/lib.rs
@@ -15,5 +15,6 @@ pub use shuttle_service::{main, CustomError, Error, ResourceBuilder, Service};
// Dependencies required by the codegen
pub use anyhow::Context;
+pub use strfmt::strfmt;
pub use tracing;
pub use tracing_subscriber;
From 830c2d1d71cc618a698d69a45271d2460a2651b7 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 09:51:59 +0100
Subject: [PATCH 21/26] refactor: rename integrations, remove comment
---
Cargo.toml | 2 +-
service/src/builder.rs | 1 -
{integrations => services}/README.md | 0
{integrations => services}/shuttle-actix-web/Cargo.toml | 0
{integrations => services}/shuttle-actix-web/src/lib.rs | 0
{integrations => services}/shuttle-axum/Cargo.toml | 0
{integrations => services}/shuttle-axum/src/lib.rs | 0
{integrations => services}/shuttle-poem/Cargo.toml | 0
{integrations => services}/shuttle-poem/src/lib.rs | 0
{integrations => services}/shuttle-poise/Cargo.toml | 0
{integrations => services}/shuttle-poise/src/lib.rs | 0
{integrations => services}/shuttle-rocket/Cargo.toml | 0
{integrations => services}/shuttle-rocket/src/lib.rs | 0
{integrations => services}/shuttle-salvo/Cargo.toml | 0
{integrations => services}/shuttle-salvo/src/lib.rs | 0
{integrations => services}/shuttle-serenity/Cargo.toml | 0
{integrations => services}/shuttle-serenity/src/lib.rs | 0
{integrations => services}/shuttle-thruster/Cargo.toml | 0
{integrations => services}/shuttle-thruster/src/lib.rs | 0
{integrations => services}/shuttle-tide/Cargo.toml | 0
{integrations => services}/shuttle-tide/src/lib.rs | 0
{integrations => services}/shuttle-tower/Cargo.toml | 0
{integrations => services}/shuttle-tower/src/lib.rs | 0
{integrations => services}/shuttle-warp/Cargo.toml | 0
{integrations => services}/shuttle-warp/src/lib.rs | 0
25 files changed, 1 insertion(+), 2 deletions(-)
rename {integrations => services}/README.md (100%)
rename {integrations => services}/shuttle-actix-web/Cargo.toml (100%)
rename {integrations => services}/shuttle-actix-web/src/lib.rs (100%)
rename {integrations => services}/shuttle-axum/Cargo.toml (100%)
rename {integrations => services}/shuttle-axum/src/lib.rs (100%)
rename {integrations => services}/shuttle-poem/Cargo.toml (100%)
rename {integrations => services}/shuttle-poem/src/lib.rs (100%)
rename {integrations => services}/shuttle-poise/Cargo.toml (100%)
rename {integrations => services}/shuttle-poise/src/lib.rs (100%)
rename {integrations => services}/shuttle-rocket/Cargo.toml (100%)
rename {integrations => services}/shuttle-rocket/src/lib.rs (100%)
rename {integrations => services}/shuttle-salvo/Cargo.toml (100%)
rename {integrations => services}/shuttle-salvo/src/lib.rs (100%)
rename {integrations => services}/shuttle-serenity/Cargo.toml (100%)
rename {integrations => services}/shuttle-serenity/src/lib.rs (100%)
rename {integrations => services}/shuttle-thruster/Cargo.toml (100%)
rename {integrations => services}/shuttle-thruster/src/lib.rs (100%)
rename {integrations => services}/shuttle-tide/Cargo.toml (100%)
rename {integrations => services}/shuttle-tide/src/lib.rs (100%)
rename {integrations => services}/shuttle-tower/Cargo.toml (100%)
rename {integrations => services}/shuttle-tower/src/lib.rs (100%)
rename {integrations => services}/shuttle-warp/Cargo.toml (100%)
rename {integrations => services}/shuttle-warp/src/lib.rs (100%)
diff --git a/Cargo.toml b/Cargo.toml
index 42282eeae..ad2d9a375 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -22,7 +22,7 @@ exclude = [
"resources/secrets",
"resources/shared-db",
"resources/static-folder",
- "integrations"
+ "services"
]
[workspace.package]
diff --git a/service/src/builder.rs b/service/src/builder.rs
index 4eb435cf3..baf0082d8 100644
--- a/service/src/builder.rs
+++ b/service/src/builder.rs
@@ -57,7 +57,6 @@ pub async fn build_crate(
let is_next = is_next(summary);
if !is_next {
- // check_version(summary)?;
ensure_binary(current.manifest())?;
} else {
ensure_cdylib(current.manifest_mut())?;
diff --git a/integrations/README.md b/services/README.md
similarity index 100%
rename from integrations/README.md
rename to services/README.md
diff --git a/integrations/shuttle-actix-web/Cargo.toml b/services/shuttle-actix-web/Cargo.toml
similarity index 100%
rename from integrations/shuttle-actix-web/Cargo.toml
rename to services/shuttle-actix-web/Cargo.toml
diff --git a/integrations/shuttle-actix-web/src/lib.rs b/services/shuttle-actix-web/src/lib.rs
similarity index 100%
rename from integrations/shuttle-actix-web/src/lib.rs
rename to services/shuttle-actix-web/src/lib.rs
diff --git a/integrations/shuttle-axum/Cargo.toml b/services/shuttle-axum/Cargo.toml
similarity index 100%
rename from integrations/shuttle-axum/Cargo.toml
rename to services/shuttle-axum/Cargo.toml
diff --git a/integrations/shuttle-axum/src/lib.rs b/services/shuttle-axum/src/lib.rs
similarity index 100%
rename from integrations/shuttle-axum/src/lib.rs
rename to services/shuttle-axum/src/lib.rs
diff --git a/integrations/shuttle-poem/Cargo.toml b/services/shuttle-poem/Cargo.toml
similarity index 100%
rename from integrations/shuttle-poem/Cargo.toml
rename to services/shuttle-poem/Cargo.toml
diff --git a/integrations/shuttle-poem/src/lib.rs b/services/shuttle-poem/src/lib.rs
similarity index 100%
rename from integrations/shuttle-poem/src/lib.rs
rename to services/shuttle-poem/src/lib.rs
diff --git a/integrations/shuttle-poise/Cargo.toml b/services/shuttle-poise/Cargo.toml
similarity index 100%
rename from integrations/shuttle-poise/Cargo.toml
rename to services/shuttle-poise/Cargo.toml
diff --git a/integrations/shuttle-poise/src/lib.rs b/services/shuttle-poise/src/lib.rs
similarity index 100%
rename from integrations/shuttle-poise/src/lib.rs
rename to services/shuttle-poise/src/lib.rs
diff --git a/integrations/shuttle-rocket/Cargo.toml b/services/shuttle-rocket/Cargo.toml
similarity index 100%
rename from integrations/shuttle-rocket/Cargo.toml
rename to services/shuttle-rocket/Cargo.toml
diff --git a/integrations/shuttle-rocket/src/lib.rs b/services/shuttle-rocket/src/lib.rs
similarity index 100%
rename from integrations/shuttle-rocket/src/lib.rs
rename to services/shuttle-rocket/src/lib.rs
diff --git a/integrations/shuttle-salvo/Cargo.toml b/services/shuttle-salvo/Cargo.toml
similarity index 100%
rename from integrations/shuttle-salvo/Cargo.toml
rename to services/shuttle-salvo/Cargo.toml
diff --git a/integrations/shuttle-salvo/src/lib.rs b/services/shuttle-salvo/src/lib.rs
similarity index 100%
rename from integrations/shuttle-salvo/src/lib.rs
rename to services/shuttle-salvo/src/lib.rs
diff --git a/integrations/shuttle-serenity/Cargo.toml b/services/shuttle-serenity/Cargo.toml
similarity index 100%
rename from integrations/shuttle-serenity/Cargo.toml
rename to services/shuttle-serenity/Cargo.toml
diff --git a/integrations/shuttle-serenity/src/lib.rs b/services/shuttle-serenity/src/lib.rs
similarity index 100%
rename from integrations/shuttle-serenity/src/lib.rs
rename to services/shuttle-serenity/src/lib.rs
diff --git a/integrations/shuttle-thruster/Cargo.toml b/services/shuttle-thruster/Cargo.toml
similarity index 100%
rename from integrations/shuttle-thruster/Cargo.toml
rename to services/shuttle-thruster/Cargo.toml
diff --git a/integrations/shuttle-thruster/src/lib.rs b/services/shuttle-thruster/src/lib.rs
similarity index 100%
rename from integrations/shuttle-thruster/src/lib.rs
rename to services/shuttle-thruster/src/lib.rs
diff --git a/integrations/shuttle-tide/Cargo.toml b/services/shuttle-tide/Cargo.toml
similarity index 100%
rename from integrations/shuttle-tide/Cargo.toml
rename to services/shuttle-tide/Cargo.toml
diff --git a/integrations/shuttle-tide/src/lib.rs b/services/shuttle-tide/src/lib.rs
similarity index 100%
rename from integrations/shuttle-tide/src/lib.rs
rename to services/shuttle-tide/src/lib.rs
diff --git a/integrations/shuttle-tower/Cargo.toml b/services/shuttle-tower/Cargo.toml
similarity index 100%
rename from integrations/shuttle-tower/Cargo.toml
rename to services/shuttle-tower/Cargo.toml
diff --git a/integrations/shuttle-tower/src/lib.rs b/services/shuttle-tower/src/lib.rs
similarity index 100%
rename from integrations/shuttle-tower/src/lib.rs
rename to services/shuttle-tower/src/lib.rs
diff --git a/integrations/shuttle-warp/Cargo.toml b/services/shuttle-warp/Cargo.toml
similarity index 100%
rename from integrations/shuttle-warp/Cargo.toml
rename to services/shuttle-warp/Cargo.toml
diff --git a/integrations/shuttle-warp/src/lib.rs b/services/shuttle-warp/src/lib.rs
similarity index 100%
rename from integrations/shuttle-warp/src/lib.rs
rename to services/shuttle-warp/src/lib.rs
From 6b03a74ad535cdcff9478b59f3f8877b7abb55a2 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 10:04:28 +0100
Subject: [PATCH 22/26] ci: run check-standalone on services
---
.circleci/config.yml | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 9211a8b86..c660e2c7d 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -92,6 +92,17 @@ commands:
shuttle-shared-db = { path = "$PWD/resources/shared-db" }
shuttle-secrets = { path = "$PWD/resources/secrets" }
shuttle-static-folder = { path = "$PWD/resources/static-folder" }
+ shuttle-axum = { path = "$PWD/services/shuttle-axum" }
+ shuttle-actix-web = { path = "$PWD/services/shuttle-actix-web" }
+ shuttle-poem = { path = "$PWD/services/shuttle-poem" }
+ shuttle-poise = { path = "$PWD/services/shuttle-poise" }
+ shuttle-rocket = { path = "$PWD/services/shuttle-rocket" }
+ shuttle-salvo = { path = "$PWD/services/shuttle-salvo" }
+ shuttle-serenity = { path = "$PWD/services/shuttle-serenity" }
+ shuttle-thruster = { path = "$PWD/services/shuttle-thruster" }
+ shuttle-tide = { path = "$PWD/services/shuttle-tide" }
+ shuttle-tower = { path = "$PWD/services/shuttle-tower" }
+ shuttle-warp = { path = "$PWD/services/shuttle-warp" }
EOF
install-rust:
steps:
@@ -420,6 +431,17 @@ workflows:
- resources/secrets
- resources/shared-db
- resources/static-folder
+ - services/shuttle-actix-web
+ - services/shuttle-axum
+ - services/shuttle-poem
+ - services/shuttle-poise
+ - services/shuttle-rocket
+ - services/shuttle-salvo
+ - services/shuttle-serenity
+ - services/shuttle-thruster
+ - services/shuttle-tide
+ - services/shuttle-tower
+ - services/shuttle-warp
- service-test:
requires:
- workspace-clippy
From 6ae1d4975d5c8124f4e22bb0d9b42503268ee6b6 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 16:41:52 +0100
Subject: [PATCH 23/26] feat: update test resources
---
deployer/tests/deploy_layer/bind-panic/Cargo.toml | 1 -
deployer/tests/deploy_layer/bind-panic/src/main.rs | 12 +++++-------
deployer/tests/deploy_layer/main-panic/Cargo.toml | 1 -
deployer/tests/deploy_layer/main-panic/src/main.rs | 12 +++++-------
deployer/tests/deploy_layer/self-stop/Cargo.toml | 1 -
deployer/tests/deploy_layer/self-stop/src/main.rs | 10 ++++------
deployer/tests/deploy_layer/sleep-async/Cargo.toml | 1 -
deployer/tests/deploy_layer/sleep-async/src/main.rs | 10 +++++-----
deployer/tests/resources/bind-panic/Cargo.toml | 1 -
deployer/tests/resources/bind-panic/src/main.rs | 12 +++++-------
deployer/tests/resources/main-panic/Cargo.toml | 1 -
deployer/tests/resources/main-panic/src/main.rs | 12 +++++-------
deployer/tests/resources/sleep-async/Cargo.toml | 1 -
deployer/tests/resources/sleep-async/src/main.rs | 10 +++++-----
deployer/tests/resources/tests-fail/Cargo.toml | 2 +-
deployer/tests/resources/tests-fail/src/main.rs | 6 +++---
deployer/tests/resources/tests-pass/Cargo.toml | 2 +-
deployer/tests/resources/tests-pass/src/main.rs | 6 +++---
service/tests/resources/is-bin/Cargo.toml | 2 +-
service/tests/resources/is-bin/src/main.rs | 6 +++---
service/tests/resources/not-bin/Cargo.toml | 2 +-
service/tests/resources/not-bin/src/lib.rs | 6 +++---
service/tests/resources/not-shuttle/Cargo.toml | 2 +-
service/tests/resources/not-shuttle/src/main.rs | 4 ++--
24 files changed, 53 insertions(+), 70 deletions(-)
diff --git a/deployer/tests/deploy_layer/bind-panic/Cargo.toml b/deployer/tests/deploy_layer/bind-panic/Cargo.toml
index 5c476820e..5475a549c 100644
--- a/deployer/tests/deploy_layer/bind-panic/Cargo.toml
+++ b/deployer/tests/deploy_layer/bind-panic/Cargo.toml
@@ -8,6 +8,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/deploy_layer/bind-panic/src/main.rs b/deployer/tests/deploy_layer/bind-panic/src/main.rs
index b8ccf9c3b..d7badcd69 100644
--- a/deployer/tests/deploy_layer/bind-panic/src/main.rs
+++ b/deployer/tests/deploy_layer/bind-panic/src/main.rs
@@ -1,15 +1,13 @@
-use shuttle_service::Service;
-
struct MyService;
-#[shuttle_service::async_trait]
-impl Service for MyService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::Error> {
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for MyService {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
panic!("panic in bind");
}
}
-#[shuttle_service::main]
-async fn bind_panic() -> Result {
+#[shuttle_runtime::main]
+async fn bind_panic() -> Result {
Ok(MyService)
}
diff --git a/deployer/tests/deploy_layer/main-panic/Cargo.toml b/deployer/tests/deploy_layer/main-panic/Cargo.toml
index 157965845..9e068f31d 100644
--- a/deployer/tests/deploy_layer/main-panic/Cargo.toml
+++ b/deployer/tests/deploy_layer/main-panic/Cargo.toml
@@ -8,6 +8,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/deploy_layer/main-panic/src/main.rs b/deployer/tests/deploy_layer/main-panic/src/main.rs
index 4186a4508..fcb8bce0b 100644
--- a/deployer/tests/deploy_layer/main-panic/src/main.rs
+++ b/deployer/tests/deploy_layer/main-panic/src/main.rs
@@ -1,15 +1,13 @@
-use shuttle_service::Service;
-
struct MyService;
-#[shuttle_service::async_trait]
-impl Service for MyService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::Error> {
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for MyService {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
Ok(())
}
}
-#[shuttle_service::main]
-async fn main_panic() -> Result {
+#[shuttle_runtime::main]
+async fn main_panic() -> Result {
panic!("main panic")
}
diff --git a/deployer/tests/deploy_layer/self-stop/Cargo.toml b/deployer/tests/deploy_layer/self-stop/Cargo.toml
index 170cd3670..f740b87b7 100644
--- a/deployer/tests/deploy_layer/self-stop/Cargo.toml
+++ b/deployer/tests/deploy_layer/self-stop/Cargo.toml
@@ -8,6 +8,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/deploy_layer/self-stop/src/main.rs b/deployer/tests/deploy_layer/self-stop/src/main.rs
index 8ba075244..9150538b5 100644
--- a/deployer/tests/deploy_layer/self-stop/src/main.rs
+++ b/deployer/tests/deploy_layer/self-stop/src/main.rs
@@ -1,15 +1,13 @@
-use shuttle_service::Service;
-
struct MyService;
-#[shuttle_service::async_trait]
-impl Service for MyService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::error::Error> {
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for MyService {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
Ok(())
}
}
-#[shuttle_service::main]
+#[shuttle_runtime::main]
async fn self_stop() -> Result {
Ok(MyService)
}
diff --git a/deployer/tests/deploy_layer/sleep-async/Cargo.toml b/deployer/tests/deploy_layer/sleep-async/Cargo.toml
index 3d6e1e4ad..edd2ea6bc 100644
--- a/deployer/tests/deploy_layer/sleep-async/Cargo.toml
+++ b/deployer/tests/deploy_layer/sleep-async/Cargo.toml
@@ -8,6 +8,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = { version = "1.0", features = ["time"]}
diff --git a/deployer/tests/deploy_layer/sleep-async/src/main.rs b/deployer/tests/deploy_layer/sleep-async/src/main.rs
index 1322552d1..aead71b2d 100644
--- a/deployer/tests/deploy_layer/sleep-async/src/main.rs
+++ b/deployer/tests/deploy_layer/sleep-async/src/main.rs
@@ -1,20 +1,20 @@
use std::time::Duration;
-use shuttle_service::Service;
+use shuttle_runtime::Service;
use tokio::time::sleep;
struct SleepService {
duration: u64,
}
-#[shuttle_service::main]
-async fn simple() -> Result {
+#[shuttle_runtime::main]
+async fn simple() -> Result {
Ok(SleepService { duration: 4 })
}
-#[shuttle_service::async_trait]
+#[shuttle_runtime::async_trait]
impl Service for SleepService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::error::Error> {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
let duration = Duration::from_secs(self.duration);
sleep(duration).await;
diff --git a/deployer/tests/resources/bind-panic/Cargo.toml b/deployer/tests/resources/bind-panic/Cargo.toml
index 894f3ca8e..d20e3c071 100644
--- a/deployer/tests/resources/bind-panic/Cargo.toml
+++ b/deployer/tests/resources/bind-panic/Cargo.toml
@@ -9,6 +9,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/resources/bind-panic/src/main.rs b/deployer/tests/resources/bind-panic/src/main.rs
index b8ccf9c3b..d7badcd69 100644
--- a/deployer/tests/resources/bind-panic/src/main.rs
+++ b/deployer/tests/resources/bind-panic/src/main.rs
@@ -1,15 +1,13 @@
-use shuttle_service::Service;
-
struct MyService;
-#[shuttle_service::async_trait]
-impl Service for MyService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::Error> {
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for MyService {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
panic!("panic in bind");
}
}
-#[shuttle_service::main]
-async fn bind_panic() -> Result {
+#[shuttle_runtime::main]
+async fn bind_panic() -> Result {
Ok(MyService)
}
diff --git a/deployer/tests/resources/main-panic/Cargo.toml b/deployer/tests/resources/main-panic/Cargo.toml
index 157965845..9e068f31d 100644
--- a/deployer/tests/resources/main-panic/Cargo.toml
+++ b/deployer/tests/resources/main-panic/Cargo.toml
@@ -8,6 +8,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/resources/main-panic/src/main.rs b/deployer/tests/resources/main-panic/src/main.rs
index 4186a4508..fcb8bce0b 100644
--- a/deployer/tests/resources/main-panic/src/main.rs
+++ b/deployer/tests/resources/main-panic/src/main.rs
@@ -1,15 +1,13 @@
-use shuttle_service::Service;
-
struct MyService;
-#[shuttle_service::async_trait]
-impl Service for MyService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::Error> {
+#[shuttle_runtime::async_trait]
+impl shuttle_runtime::Service for MyService {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
Ok(())
}
}
-#[shuttle_service::main]
-async fn main_panic() -> Result {
+#[shuttle_runtime::main]
+async fn main_panic() -> Result {
panic!("main panic")
}
diff --git a/deployer/tests/resources/sleep-async/Cargo.toml b/deployer/tests/resources/sleep-async/Cargo.toml
index 3d6e1e4ad..edd2ea6bc 100644
--- a/deployer/tests/resources/sleep-async/Cargo.toml
+++ b/deployer/tests/resources/sleep-async/Cargo.toml
@@ -8,6 +8,5 @@ edition = "2021"
[workspace]
[dependencies]
-shuttle-service = { path = "../../../../service" }
shuttle-runtime = { path = "../../../../runtime" }
tokio = { version = "1.0", features = ["time"]}
diff --git a/deployer/tests/resources/sleep-async/src/main.rs b/deployer/tests/resources/sleep-async/src/main.rs
index 1322552d1..aead71b2d 100644
--- a/deployer/tests/resources/sleep-async/src/main.rs
+++ b/deployer/tests/resources/sleep-async/src/main.rs
@@ -1,20 +1,20 @@
use std::time::Duration;
-use shuttle_service::Service;
+use shuttle_runtime::Service;
use tokio::time::sleep;
struct SleepService {
duration: u64,
}
-#[shuttle_service::main]
-async fn simple() -> Result {
+#[shuttle_runtime::main]
+async fn simple() -> Result {
Ok(SleepService { duration: 4 })
}
-#[shuttle_service::async_trait]
+#[shuttle_runtime::async_trait]
impl Service for SleepService {
- async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_service::error::Error> {
+ async fn bind(mut self, _: std::net::SocketAddr) -> Result<(), shuttle_runtime::Error> {
let duration = Duration::from_secs(self.duration);
sleep(duration).await;
diff --git a/deployer/tests/resources/tests-fail/Cargo.toml b/deployer/tests/resources/tests-fail/Cargo.toml
index ae2a76515..12a8c2a5d 100644
--- a/deployer/tests/resources/tests-fail/Cargo.toml
+++ b/deployer/tests/resources/tests-fail/Cargo.toml
@@ -7,6 +7,6 @@ edition = "2021"
[dependencies]
rocket = "0.5.0-rc.2"
-shuttle-service = { path = "../../../../service", features = ["web-rocket"] }
+shuttle-rocket = { path = "../../../../services/shuttle-rocket"}
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/resources/tests-fail/src/main.rs b/deployer/tests/resources/tests-fail/src/main.rs
index 85efb0bd3..ccb32383c 100644
--- a/deployer/tests/resources/tests-fail/src/main.rs
+++ b/deployer/tests/resources/tests-fail/src/main.rs
@@ -6,10 +6,10 @@ fn index() -> &'static str {
"Hello, world!"
}
-#[shuttle_service::main]
-async fn rocket() -> shuttle_service::ShuttleRocket {
+#[shuttle_runtime::main]
+async fn rocket() -> shuttle_rocket::ShuttleRocket {
let rocket = rocket::build().mount("/hello", routes![index]);
- Ok(rocket)
+ Ok(rocket.into())
}
#[cfg(test)]
diff --git a/deployer/tests/resources/tests-pass/Cargo.toml b/deployer/tests/resources/tests-pass/Cargo.toml
index ffbd29a9f..e9d19b127 100644
--- a/deployer/tests/resources/tests-pass/Cargo.toml
+++ b/deployer/tests/resources/tests-pass/Cargo.toml
@@ -7,6 +7,6 @@ edition = "2021"
[dependencies]
rocket = "0.5.0-rc.2"
-shuttle-service = { path = "../../../../service", features = ["web-rocket"] }
+shuttle-rocket = { path = "../../../../services/shuttle-rocket"}
shuttle-runtime = { path = "../../../../runtime" }
tokio = "1.22"
diff --git a/deployer/tests/resources/tests-pass/src/main.rs b/deployer/tests/resources/tests-pass/src/main.rs
index 2f4525283..08e124e91 100644
--- a/deployer/tests/resources/tests-pass/src/main.rs
+++ b/deployer/tests/resources/tests-pass/src/main.rs
@@ -6,10 +6,10 @@ fn index() -> &'static str {
"Hello, world!"
}
-#[shuttle_service::main]
-async fn rocket() -> shuttle_service::ShuttleRocket {
+#[shuttle_runtime::main]
+async fn rocket() -> shuttle_rocket::ShuttleRocket {
let rocket = rocket::build().mount("/hello", routes![index]);
- Ok(rocket)
+ Ok(rocket.into())
}
#[cfg(test)]
diff --git a/service/tests/resources/is-bin/Cargo.toml b/service/tests/resources/is-bin/Cargo.toml
index 52abbeab9..71680d565 100644
--- a/service/tests/resources/is-bin/Cargo.toml
+++ b/service/tests/resources/is-bin/Cargo.toml
@@ -7,6 +7,6 @@ edition = "2021"
[dependencies]
axum = "0.6.0"
+shuttle-axum = { path = "../../../../services/shuttle-axum" }
shuttle-runtime = { path = "../../../../runtime" }
-shuttle-service = { path = "../../../", features = ["web-axum"] }
tokio = { version = "1.22.0" }
diff --git a/service/tests/resources/is-bin/src/main.rs b/service/tests/resources/is-bin/src/main.rs
index 21ffd2090..19e9bd1a6 100644
--- a/service/tests/resources/is-bin/src/main.rs
+++ b/service/tests/resources/is-bin/src/main.rs
@@ -1,6 +1,6 @@
-#[shuttle_service::main]
-async fn axum() -> shuttle_service::ShuttleAxum {
+#[shuttle_runtime::main]
+async fn axum() -> shuttle_axum::ShuttleAxum {
let router = axum::Router::new();
- Ok(router)
+ Ok(router.into())
}
diff --git a/service/tests/resources/not-bin/Cargo.toml b/service/tests/resources/not-bin/Cargo.toml
index 8d34c0b74..6bef68b6f 100644
--- a/service/tests/resources/not-bin/Cargo.toml
+++ b/service/tests/resources/not-bin/Cargo.toml
@@ -10,5 +10,5 @@ crate-type = ["cdylib", "staticlib"]
[dependencies]
rocket = "0.5.0-rc.2"
-shuttle-service = { path = "../../../", features = ["web-rocket"] }
+shuttle-rocket = { path = "../../../../services/shuttle-rocket" }
shuttle-runtime = { path = "../../../../runtime" }
diff --git a/service/tests/resources/not-bin/src/lib.rs b/service/tests/resources/not-bin/src/lib.rs
index 329aed72c..1c00c9ad3 100644
--- a/service/tests/resources/not-bin/src/lib.rs
+++ b/service/tests/resources/not-bin/src/lib.rs
@@ -1,7 +1,7 @@
// This will fail to compile since it's a library.
-#[shuttle_service::main]
-async fn rocket() -> shuttle_service::ShuttleRocket {
+#[shuttle_runtime::main]
+async fn rocket() -> shuttle_rocket::ShuttleRocket {
let rocket = rocket::build();
- Ok(rocket)
+ Ok(rocket.into())
}
diff --git a/service/tests/resources/not-shuttle/Cargo.toml b/service/tests/resources/not-shuttle/Cargo.toml
index b951779af..ecd61ac3c 100644
--- a/service/tests/resources/not-shuttle/Cargo.toml
+++ b/service/tests/resources/not-shuttle/Cargo.toml
@@ -8,4 +8,4 @@ edition = "2021"
[dependencies]
axum = "0.6.0"
shuttle-runtime = { path = "../../../../runtime" }
-shuttle-service = { path = "../../../", features = ["web-axum"] }
+shuttle-axum = { path = "../../../../services/shuttle-axum" }
diff --git a/service/tests/resources/not-shuttle/src/main.rs b/service/tests/resources/not-shuttle/src/main.rs
index 9cf9d865b..2edbe4d18 100644
--- a/service/tests/resources/not-shuttle/src/main.rs
+++ b/service/tests/resources/not-shuttle/src/main.rs
@@ -1,6 +1,6 @@
// This service cannot be hosted on shuttle since it is missing the runtime the shuttle main macro would have added!!!
-async fn axum() -> shuttle_service::ShuttleAxum {
+async fn axum() -> shuttle_axum::ShuttleAxum {
let router = axum::Router::new();
- Ok(router)
+ Ok(router.into())
}
From eecda1eacbe7de3e4d1809aef2435363cff8fd3d Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 16:42:51 +0100
Subject: [PATCH 24/26] ci: refactor workspace-clippy job
---
.circleci/config.yml | 23 +----------------------
1 file changed, 1 insertion(+), 22 deletions(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 5e773999c..e1ba891d1 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -173,10 +173,6 @@ jobs:
- run: cargo check --workspace --all-targets
- save-cargo-cache
workspace-clippy:
- parameters:
- framework:
- description: "Framework to activate"
- type: string
executor: docker-rust
steps:
- checkout
@@ -185,7 +181,7 @@ jobs:
- run: |
cargo clippy --tests \
--all-targets \
- --features="codegen,builder,<< parameters.framework >>" \
+ --features="codegen,builder" \
--no-deps -- \
--D warnings \
-A clippy::let-unit-value \
@@ -404,25 +400,8 @@ workflows:
jobs:
- workspace-fmt
- workspace-clippy:
- name: workspace-clippy-<< matrix.framework >>
requires:
- workspace-fmt
- matrix:
- parameters:
- framework:
- [
- "web-actix-web",
- "web-axum",
- "web-rocket",
- "web-poem",
- "web-thruster",
- "web-tide",
- "web-tower",
- "web-warp",
- "web-salvo",
- "bot-serenity",
- "bot-poise",
- ]
- check-standalone:
matrix:
parameters:
From 5ab7994921a1258b4d980642f1dd175a7e17c0b9 Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 17:15:13 +0100
Subject: [PATCH 25/26] fix: add tokio dev dep to services
---
.circleci/config.yml | 2 +-
services/shuttle-actix-web/Cargo.toml | 3 +++
services/shuttle-axum/Cargo.toml | 3 +++
services/shuttle-poem/Cargo.toml | 3 +++
services/shuttle-poise/Cargo.toml | 3 +++
services/shuttle-rocket/Cargo.toml | 3 +++
services/shuttle-salvo/Cargo.toml | 3 +++
services/shuttle-serenity/Cargo.toml | 3 +++
services/shuttle-tide/Cargo.toml | 3 +++
services/shuttle-tower/Cargo.toml | 3 +++
services/shuttle-warp/Cargo.toml | 3 +++
11 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/.circleci/config.yml b/.circleci/config.yml
index e1ba891d1..f8f86c2ad 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -181,7 +181,7 @@ jobs:
- run: |
cargo clippy --tests \
--all-targets \
- --features="codegen,builder" \
+ --all-features \
--no-deps -- \
--D warnings \
-A clippy::let-unit-value \
diff --git a/services/shuttle-actix-web/Cargo.toml b/services/shuttle-actix-web/Cargo.toml
index 994e3d4c8..b80256c5c 100644
--- a/services/shuttle-actix-web/Cargo.toml
+++ b/services/shuttle-actix-web/Cargo.toml
@@ -10,3 +10,6 @@ edition = "2021"
actix-web = { version = "4.3.1" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
num_cpus = "1.15.0"
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-axum/Cargo.toml b/services/shuttle-axum/Cargo.toml
index 05b7a6a79..dc7002c3d 100644
--- a/services/shuttle-axum/Cargo.toml
+++ b/services/shuttle-axum/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
axum = { version = "0.6.10" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-poem/Cargo.toml b/services/shuttle-poem/Cargo.toml
index 03e804b39..9b68f4cee 100644
--- a/services/shuttle-poem/Cargo.toml
+++ b/services/shuttle-poem/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
poem = { version = "1.3.55" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-poise/Cargo.toml b/services/shuttle-poise/Cargo.toml
index 508d97097..644be4817 100644
--- a/services/shuttle-poise/Cargo.toml
+++ b/services/shuttle-poise/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
poise = { version = "0.5.2" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-rocket/Cargo.toml b/services/shuttle-rocket/Cargo.toml
index ec5c1101f..ac2337964 100644
--- a/services/shuttle-rocket/Cargo.toml
+++ b/services/shuttle-rocket/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
rocket = { version = "0.5.0-rc.2" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-salvo/Cargo.toml b/services/shuttle-salvo/Cargo.toml
index 4c6f54eb6..4568225fe 100644
--- a/services/shuttle-salvo/Cargo.toml
+++ b/services/shuttle-salvo/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
salvo = { version = "0.37.5" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-serenity/Cargo.toml b/services/shuttle-serenity/Cargo.toml
index 182a4513c..0fe4886b2 100644
--- a/services/shuttle-serenity/Cargo.toml
+++ b/services/shuttle-serenity/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
serenity = { version = "0.11.5", default-features = false, features = ["client", "gateway", "rustls_backend", "model"] }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-tide/Cargo.toml b/services/shuttle-tide/Cargo.toml
index 970271f2a..41ec5df63 100644
--- a/services/shuttle-tide/Cargo.toml
+++ b/services/shuttle-tide/Cargo.toml
@@ -15,3 +15,6 @@ shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
[dependencies.async-std]
version = "1.12.0"
features = ["tokio1"]
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-tower/Cargo.toml b/services/shuttle-tower/Cargo.toml
index 464f88272..162508255 100644
--- a/services/shuttle-tower/Cargo.toml
+++ b/services/shuttle-tower/Cargo.toml
@@ -10,3 +10,6 @@ edition = "2021"
hyper = { version = "0.14.23", features = ["server", "tcp", "http1"] }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
tower = { version = "0.4.13", features = ["make"] }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-warp/Cargo.toml b/services/shuttle-warp/Cargo.toml
index 8b951dd9e..7953981a2 100644
--- a/services/shuttle-warp/Cargo.toml
+++ b/services/shuttle-warp/Cargo.toml
@@ -9,3 +9,6 @@ edition = "2021"
[dependencies]
warp = { version = "0.3.3" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
From 4dfc724fbc423c15fcf270f4d60f36d4c1c1454a Mon Sep 17 00:00:00 2001
From: oddgrd <29732646+oddgrd@users.noreply.github.com>
Date: Mon, 13 Mar 2023 17:33:54 +0100
Subject: [PATCH 26/26] fix: remaining services tests
---
services/shuttle-poise/Cargo.toml | 1 +
services/shuttle-poise/src/lib.rs | 2 +-
services/shuttle-rocket/src/lib.rs | 2 ++
services/shuttle-serenity/Cargo.toml | 3 +++
services/shuttle-thruster/Cargo.toml | 6 +++++-
5 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/services/shuttle-poise/Cargo.toml b/services/shuttle-poise/Cargo.toml
index 644be4817..8f153217d 100644
--- a/services/shuttle-poise/Cargo.toml
+++ b/services/shuttle-poise/Cargo.toml
@@ -11,4 +11,5 @@ poise = { version = "0.5.2" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
[dev-dependencies]
+shuttle-secrets = { path = "../../resources/secrets" }
tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
diff --git a/services/shuttle-poise/src/lib.rs b/services/shuttle-poise/src/lib.rs
index f58b75bfd..fb88c86d5 100644
--- a/services/shuttle-poise/src/lib.rs
+++ b/services/shuttle-poise/src/lib.rs
@@ -1,7 +1,7 @@
//! Shuttle service integration for the Poise discord bot framework.
//! ## Example
//! ```rust,no_run
-//! use anyhow::Context as _;
+//! use shuttle_runtime::Context as _;
//! use poise::serenity_prelude as serenity;
//! use shuttle_secrets::SecretStore;
//! use shuttle_poise::ShuttlePoise;
diff --git a/services/shuttle-rocket/src/lib.rs b/services/shuttle-rocket/src/lib.rs
index 0fdbfd442..e891cec0f 100644
--- a/services/shuttle-rocket/src/lib.rs
+++ b/services/shuttle-rocket/src/lib.rs
@@ -4,6 +4,7 @@
//! #[macro_use]
//! extern crate rocket;
//!
+//! # fn main() {
//! #[get("/")]
//! fn index() -> &'static str {
//! "Hello, world!"
@@ -15,6 +16,7 @@
//!
//! Ok(rocket.into())
//! }
+//! # }
//! ```
use std::net::SocketAddr;
diff --git a/services/shuttle-serenity/Cargo.toml b/services/shuttle-serenity/Cargo.toml
index 0fe4886b2..c1e768f5a 100644
--- a/services/shuttle-serenity/Cargo.toml
+++ b/services/shuttle-serenity/Cargo.toml
@@ -11,4 +11,7 @@ serenity = { version = "0.11.5", default-features = false, features = ["client",
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
[dev-dependencies]
+anyhow = "1.0.69"
+shuttle-secrets = { path = "../../resources/secrets" }
tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }
+tracing = "0.1.37"
diff --git a/services/shuttle-thruster/Cargo.toml b/services/shuttle-thruster/Cargo.toml
index 788d2ac1b..af839c677 100644
--- a/services/shuttle-thruster/Cargo.toml
+++ b/services/shuttle-thruster/Cargo.toml
@@ -7,5 +7,9 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
-thruster = { version = "1.3.0"}
+thruster = { version = "1.3.0" }
shuttle-runtime = { path = "../../runtime", version = "0.1.0" }
+
+[dev-dependencies]
+thruster = { version = "1.3.0", features = ["hyper_server"] }
+tokio = { version = "1.26.0", features = ["macros", "rt-multi-thread"] }