2
0
Fork 0
mirror of https://git.asonix.dog/asonix/pict-rs synced 2024-11-10 06:25:00 +00:00

Remove direct dependency on actix-rt and actix-server

This commit is contained in:
asonix 2023-09-24 15:45:10 -05:00
parent 0926739d3c
commit 745e990fa0
17 changed files with 44 additions and 34 deletions

16
Cargo.lock generated
View file

@ -175,11 +175,13 @@ checksum = "0e4a5b5e29603ca8c94a77c65cf874718ceb60292c5a5c3e5f4ace041af462b9"
dependencies = [ dependencies = [
"actix-codec", "actix-codec",
"actix-http", "actix-http",
"actix-macros",
"actix-router", "actix-router",
"actix-rt", "actix-rt",
"actix-server", "actix-server",
"actix-service", "actix-service",
"actix-utils", "actix-utils",
"actix-web-codegen",
"ahash 0.8.3", "ahash 0.8.3",
"bytes", "bytes",
"bytestring", "bytestring",
@ -204,6 +206,18 @@ dependencies = [
"url", "url",
] ]
[[package]]
name = "actix-web-codegen"
version = "4.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eb1f50ebbb30eca122b188319a4398b3f7bb4a8cdf50ecfb73bfc6a3c3ce54f5"
dependencies = [
"actix-router",
"proc-macro2",
"quote",
"syn 2.0.31",
]
[[package]] [[package]]
name = "addr2line" name = "addr2line"
version = "0.21.0" version = "0.21.0"
@ -1804,8 +1818,6 @@ name = "pict-rs"
version = "0.5.0-alpha.17" version = "0.5.0-alpha.17"
dependencies = [ dependencies = [
"actix-form-data", "actix-form-data",
"actix-rt",
"actix-server",
"actix-web", "actix-web",
"anyhow", "anyhow",
"async-trait", "async-trait",

View file

@ -11,13 +11,11 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features] [features]
default = [] default = []
io-uring = ["actix-rt/io-uring", "actix-server/io-uring", "tokio-uring", "sled/io_uring"] io-uring = ["dep:tokio-uring", "sled/io_uring", "actix-web/experimental-io-uring"]
[dependencies] [dependencies]
actix-form-data = "0.7.0-beta.4" actix-form-data = "0.7.0-beta.4"
actix-rt = { version = "2.7.0", default-features = false } actix-web = { version = "4.0.0", default-features = false, features = ["macros"] }
actix-server = "2.0.0"
actix-web = { version = "4.0.0", default-features = false }
anyhow = "1.0" anyhow = "1.0"
async-trait = "0.1.51" async-trait = "0.1.51"
barrel = { version = "0.7.0", features = ["pg"] } barrel = { version = "0.7.0", features = ["pg"] }

View file

@ -380,8 +380,8 @@ mod io_uring {
macro_rules! test_on_arbiter { macro_rules! test_on_arbiter {
($fut:expr) => { ($fut:expr) => {
actix_rt::System::new().block_on(async move { actix_web::rt::System::new().block_on(async move {
let arbiter = actix_rt::Arbiter::new(); let arbiter = actix_web::rt::Arbiter::new();
let (tx, rx) = crate::sync::channel(1); let (tx, rx) = crate::sync::channel(1);

View file

@ -6,11 +6,11 @@ use std::{
pub(crate) type LocalBoxFuture<'a, T> = std::pin::Pin<Box<dyn Future<Output = T> + 'a>>; pub(crate) type LocalBoxFuture<'a, T> = std::pin::Pin<Box<dyn Future<Output = T> + 'a>>;
pub(crate) trait WithTimeout: Future { pub(crate) trait WithTimeout: Future {
fn with_timeout(self, duration: Duration) -> actix_rt::time::Timeout<Self> fn with_timeout(self, duration: Duration) -> actix_web::rt::time::Timeout<Self>
where where
Self: Sized, Self: Sized,
{ {
actix_rt::time::timeout(duration, self) actix_web::rt::time::timeout(duration, self)
} }
} }

View file

@ -79,8 +79,8 @@ mod test {
macro_rules! test_on_arbiter { macro_rules! test_on_arbiter {
($fut:expr) => { ($fut:expr) => {
actix_rt::System::new().block_on(async move { actix_web::rt::System::new().block_on(async move {
let arbiter = actix_rt::Arbiter::new(); let arbiter = actix_web::rt::Arbiter::new();
let (tx, rx) = crate::sync::channel(1); let (tx, rx) = crate::sync::channel(1);

View file

@ -1707,7 +1707,7 @@ fn spawn_cleanup(repo: ArcRepo, config: &Configuration) {
} }
crate::sync::spawn(async move { crate::sync::spawn(async move {
let mut interval = actix_rt::time::interval(Duration::from_secs(30)); let mut interval = actix_web::rt::time::interval(Duration::from_secs(30));
loop { loop {
interval.tick().await; interval.tick().await;

View file

@ -1,4 +1,4 @@
#[actix_rt::main] #[actix_web::main]
async fn main() -> color_eyre::Result<()> { async fn main() -> color_eyre::Result<()> {
pict_rs::PictRsConfiguration::build_default()? pict_rs::PictRsConfiguration::build_default()?
.install_tracing()? .install_tracing()?

View file

@ -1,9 +1,9 @@
mod metrics; mod metrics;
use actix_rt::time::Timeout;
use actix_web::{ use actix_web::{
dev::{Service, ServiceRequest, Transform}, dev::{Service, ServiceRequest, Transform},
http::StatusCode, http::StatusCode,
rt::time::Timeout,
HttpResponse, ResponseError, HttpResponse, ResponseError,
}; };
use std::{ use std::{

View file

@ -62,7 +62,7 @@ where
tracing::warn!("Retrying migration +{failure_count}"); tracing::warn!("Retrying migration +{failure_count}");
} }
actix_rt::time::sleep(Duration::from_secs(3)).await; actix_web::rt::time::sleep(Duration::from_secs(3)).await;
} }
Ok(()) Ok(())
@ -366,7 +366,7 @@ where
tracing::warn!("Failed moving file. Retrying +{failure_count}"); tracing::warn!("Failed moving file. Retrying +{failure_count}");
} }
actix_rt::time::sleep(Duration::from_secs(3)).await; actix_web::rt::time::sleep(Duration::from_secs(3)).await;
} }
} }
} }

View file

@ -1,4 +1,4 @@
use actix_rt::task::JoinHandle; use actix_web::rt::task::JoinHandle;
use actix_web::web::Bytes; use actix_web::web::Bytes;
use flume::r#async::RecvFut; use flume::r#async::RecvFut;
use std::{ use std::{
@ -78,7 +78,7 @@ pub(crate) struct ProcessRead<I> {
#[allow(dead_code)] #[allow(dead_code)]
handle: DropHandle, handle: DropHandle,
eof: bool, eof: bool,
sleep: Pin<Box<actix_rt::time::Sleep>>, sleep: Pin<Box<actix_web::rt::time::Sleep>>,
} }
#[derive(Debug, thiserror::Error)] #[derive(Debug, thiserror::Error)]
@ -238,7 +238,7 @@ impl Process {
.instrument(span), .instrument(span),
); );
let sleep = actix_rt::time::sleep(timeout); let sleep = actix_web::rt::time::sleep(timeout);
ProcessRead { ProcessRead {
inner: stdout, inner: stdout,

View file

@ -207,7 +207,7 @@ async fn process_jobs<S, F>(
tracing::warn!("{}", format!("{e:?}")); tracing::warn!("{}", format!("{e:?}"));
if e.is_disconnected() { if e.is_disconnected() {
actix_rt::time::sleep(Duration::from_secs(10)).await; actix_web::rt::time::sleep(Duration::from_secs(10)).await;
} }
continue; continue;
@ -341,7 +341,7 @@ async fn process_image_jobs<S, F>(
tracing::warn!("{}", format!("{e:?}")); tracing::warn!("{}", format!("{e:?}"));
if e.is_disconnected() { if e.is_disconnected() {
actix_rt::time::sleep(Duration::from_secs(3)).await; actix_web::rt::time::sleep(Duration::from_secs(3)).await;
} }
continue; continue;
@ -421,7 +421,7 @@ where
let mut fut = let mut fut =
std::pin::pin!(fut.instrument(tracing::info_span!("job-future", job_id = ?job_id))); std::pin::pin!(fut.instrument(tracing::info_span!("job-future", job_id = ?job_id)));
let mut interval = actix_rt::time::interval(Duration::from_secs(5)); let mut interval = actix_web::rt::time::interval(Duration::from_secs(5));
let mut hb = None; let mut hb = None;

View file

@ -50,7 +50,7 @@ use super::{
pub(crate) struct PostgresRepo { pub(crate) struct PostgresRepo {
inner: Arc<Inner>, inner: Arc<Inner>,
#[allow(dead_code)] #[allow(dead_code)]
notifications: Arc<actix_rt::task::JoinHandle<()>>, notifications: Arc<actix_web::rt::task::JoinHandle<()>>,
} }
struct Inner { struct Inner {

View file

@ -1537,8 +1537,8 @@ impl std::fmt::Debug for SledRepo {
} }
} }
impl From<actix_rt::task::JoinError> for SledError { impl From<actix_web::rt::task::JoinError> for SledError {
fn from(_: actix_rt::task::JoinError) -> Self { fn from(_: actix_web::rt::task::JoinError) -> Self {
SledError::Panic SledError::Panic
} }
} }

View file

@ -316,8 +316,8 @@ impl std::fmt::Debug for SledRepo {
} }
} }
impl From<actix_rt::task::JoinError> for SledError { impl From<actix_web::rt::task::JoinError> for SledError {
fn from(_: actix_rt::task::JoinError) -> Self { fn from(_: actix_web::rt::task::JoinError) -> Self {
SledError::Panic SledError::Panic
} }
} }

View file

@ -2,13 +2,13 @@ use crate::{
bytes_stream::BytesStream, error_code::ErrorCode, future::WithMetrics, repo::ArcRepo, bytes_stream::BytesStream, error_code::ErrorCode, future::WithMetrics, repo::ArcRepo,
store::Store, stream::LocalBoxStream, store::Store, stream::LocalBoxStream,
}; };
use actix_rt::task::JoinError;
use actix_web::{ use actix_web::{
error::BlockingError, error::BlockingError,
http::{ http::{
header::{ByteRangeSpec, Range, CONTENT_LENGTH}, header::{ByteRangeSpec, Range, CONTENT_LENGTH},
StatusCode, StatusCode,
}, },
rt::task::JoinError,
web::Bytes, web::Bytes,
}; };
use base64::{prelude::BASE64_STANDARD, Engine}; use base64::{prelude::BASE64_STANDARD, Engine};

View file

@ -148,7 +148,7 @@ where
S::Item: 'static, S::Item: 'static,
{ {
streem::try_from_fn(|yielder| async move { streem::try_from_fn(|yielder| async move {
actix_rt::time::timeout(duration, async move { actix_web::rt::time::timeout(duration, async move {
let stream = std::pin::pin!(stream); let stream = std::pin::pin!(stream);
let mut streamer = stream.into_streamer(); let mut streamer = stream.into_streamer();

View file

@ -23,16 +23,16 @@ pub(crate) fn bare_semaphore(permits: usize) -> Semaphore {
} }
#[track_caller] #[track_caller]
pub(crate) fn spawn<F>(future: F) -> actix_rt::task::JoinHandle<F::Output> pub(crate) fn spawn<F>(future: F) -> actix_web::rt::task::JoinHandle<F::Output>
where where
F: std::future::Future + 'static, F: std::future::Future + 'static,
F::Output: 'static, F::Output: 'static,
{ {
tracing::trace_span!(parent: None, "spawn task").in_scope(|| actix_rt::spawn(future)) tracing::trace_span!(parent: None, "spawn task").in_scope(|| actix_web::rt::spawn(future))
} }
#[track_caller] #[track_caller]
pub(crate) fn spawn_blocking<F, Out>(function: F) -> actix_rt::task::JoinHandle<Out> pub(crate) fn spawn_blocking<F, Out>(function: F) -> actix_web::rt::task::JoinHandle<Out>
where where
F: FnOnce() -> Out + Send + 'static, F: FnOnce() -> Out + Send + 'static,
Out: Send + 'static, Out: Send + 'static,
@ -40,5 +40,5 @@ where
let outer_span = tracing::Span::current(); let outer_span = tracing::Span::current();
tracing::trace_span!(parent: None, "spawn blocking task") tracing::trace_span!(parent: None, "spawn blocking task")
.in_scope(|| actix_rt::task::spawn_blocking(move || outer_span.in_scope(function))) .in_scope(|| actix_web::rt::task::spawn_blocking(move || outer_span.in_scope(function)))
} }