mirror of
https://git.asonix.dog/asonix/relay.git
synced 2024-11-14 05:31:02 +00:00
Remove actix actor dependency
This commit is contained in:
parent
a51bed3cc4
commit
d3e3a13997
6 changed files with 28 additions and 80 deletions
64
Cargo.lock
generated
64
Cargo.lock
generated
|
@ -26,31 +26,6 @@ dependencies = [
|
||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "actix"
|
|
||||||
version = "0.10.0-alpha.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "54fb3bae2fcef0d8edbbf223ea187da5b6313e1bc6eb9494720b81bff9137d26"
|
|
||||||
dependencies = [
|
|
||||||
"actix-rt",
|
|
||||||
"actix_derive",
|
|
||||||
"bitflags",
|
|
||||||
"bytes",
|
|
||||||
"crossbeam-channel",
|
|
||||||
"derive_more",
|
|
||||||
"futures-channel",
|
|
||||||
"futures-util",
|
|
||||||
"lazy_static",
|
|
||||||
"log",
|
|
||||||
"parking_lot",
|
|
||||||
"pin-project",
|
|
||||||
"smallvec",
|
|
||||||
"tokio",
|
|
||||||
"tokio-util 0.2.0",
|
|
||||||
"trust-dns-proto",
|
|
||||||
"trust-dns-resolver",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "actix-codec"
|
name = "actix-codec"
|
||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
|
@ -330,17 +305,6 @@ dependencies = [
|
||||||
"thiserror",
|
"thiserror",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "actix_derive"
|
|
||||||
version = "0.5.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "b95aceadaf327f18f0df5962fedc1bde2f870566a0b9f65c89508a3b1f79334c"
|
|
||||||
dependencies = [
|
|
||||||
"proc-macro2",
|
|
||||||
"quote",
|
|
||||||
"syn",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "adler32"
|
name = "adler32"
|
||||||
version = "1.0.4"
|
version = "1.0.4"
|
||||||
|
@ -480,11 +444,10 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "background-jobs-actix"
|
name = "background-jobs-actix"
|
||||||
version = "0.8.0-alpha.1"
|
version = "0.8.0-alpha.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2bb7f892dcd3ee34aab169d60587232d47aa054e4401c3067a64a6871eda806a"
|
checksum = "d012b9293806c777f806b537e04b5eec34ecd6eaf876c52792017695ce53262f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix",
|
|
||||||
"actix-rt",
|
"actix-rt",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
|
@ -502,11 +465,11 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "background-jobs-core"
|
name = "background-jobs-core"
|
||||||
version = "0.8.0-alpha.1"
|
version = "0.8.0-alpha.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "fa1b993ad1d58fd073cf19fac0d7bcc9772881e0568c59f011cd2aa513f587ab"
|
checksum = "bd5efe91c019d7780d5a2fc2f92a15e1f95b84a761428e1d1972b7428634ebc7"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"actix",
|
"actix-rt",
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-trait",
|
"async-trait",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
@ -750,16 +713,6 @@ dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "crossbeam-channel"
|
|
||||||
version = "0.4.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "cced8691919c02aac3cb0a1bc2e9b73d89e832bf9a06fc579d4e71b68a2da061"
|
|
||||||
dependencies = [
|
|
||||||
"crossbeam-utils",
|
|
||||||
"maybe-uninit",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crossbeam-queue"
|
name = "crossbeam-queue"
|
||||||
version = "0.2.1"
|
version = "0.2.1"
|
||||||
|
@ -1453,12 +1406,6 @@ version = "0.1.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
|
checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "maybe-uninit"
|
|
||||||
version = "2.0.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "md5"
|
name = "md5"
|
||||||
version = "0.7.0"
|
version = "0.7.0"
|
||||||
|
@ -1966,7 +1913,6 @@ name = "relay"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"activitystreams",
|
"activitystreams",
|
||||||
"actix",
|
|
||||||
"actix-rt",
|
"actix-rt",
|
||||||
"actix-web",
|
"actix-web",
|
||||||
"actix-webfinger",
|
"actix-webfinger",
|
||||||
|
|
|
@ -14,7 +14,6 @@ build = "src/build.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
anyhow = "1.0"
|
anyhow = "1.0"
|
||||||
actix = "0.10.0-alpha.2"
|
|
||||||
actix-rt = "1.0.0"
|
actix-rt = "1.0.0"
|
||||||
actix-web = { version = "3.0.0-alpha.1", features = ["rustls"] }
|
actix-web = { version = "3.0.0-alpha.1", features = ["rustls"] }
|
||||||
actix-webfinger = "0.3.0-alpha.6"
|
actix-webfinger = "0.3.0-alpha.6"
|
||||||
|
|
|
@ -283,10 +283,10 @@ impl ActorCache {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn spawn_rehydrate(&self) {
|
fn spawn_rehydrate(&self) {
|
||||||
use actix::clock::{interval_at, Instant};
|
use actix_rt::time::{interval_at, Instant};
|
||||||
|
|
||||||
let this = self.clone();
|
let this = self.clone();
|
||||||
actix::spawn(async move {
|
actix_rt::spawn(async move {
|
||||||
let mut interval = interval_at(Instant::now(), Duration::from_secs(60 * 10));
|
let mut interval = interval_at(Instant::now(), Duration::from_secs(60 * 10));
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
|
|
@ -6,14 +6,17 @@ use crate::{
|
||||||
requests::Requests,
|
requests::Requests,
|
||||||
};
|
};
|
||||||
use activitystreams::primitives::XsdAnyUri;
|
use activitystreams::primitives::XsdAnyUri;
|
||||||
use actix::clock::{interval_at, Duration, Instant};
|
use actix_rt::{
|
||||||
|
spawn,
|
||||||
|
time::{interval_at, Instant},
|
||||||
|
};
|
||||||
use actix_web::web;
|
use actix_web::web;
|
||||||
use futures::{join, try_join};
|
use futures::{join, try_join};
|
||||||
use log::{error, info};
|
use log::{error, info};
|
||||||
use lru::LruCache;
|
use lru::LruCache;
|
||||||
use rand::thread_rng;
|
use rand::thread_rng;
|
||||||
use rsa::{RSAPrivateKey, RSAPublicKey};
|
use rsa::{RSAPrivateKey, RSAPublicKey};
|
||||||
use std::{collections::HashSet, sync::Arc};
|
use std::{collections::HashSet, sync::Arc, time::Duration};
|
||||||
use tokio::sync::RwLock;
|
use tokio::sync::RwLock;
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
|
@ -194,7 +197,7 @@ impl State {
|
||||||
|
|
||||||
fn spawn_rehydrate(&self, db: Db) {
|
fn spawn_rehydrate(&self, db: Db) {
|
||||||
let state = self.clone();
|
let state = self.clone();
|
||||||
actix::spawn(async move {
|
spawn(async move {
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
let duration = Duration::from_secs(60 * 10);
|
let duration = Duration::from_secs(60 * 10);
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
use actix::Arbiter;
|
use actix_rt::Arbiter;
|
||||||
use actix_web::{
|
use actix_web::{
|
||||||
middleware::{Compress, Logger},
|
middleware::{Compress, Logger},
|
||||||
web, App, HttpServer,
|
web, App, HttpServer,
|
||||||
|
|
|
@ -4,10 +4,10 @@ use crate::{
|
||||||
jobs::{JobServer, QueryInstance, QueryNodeinfo},
|
jobs::{JobServer, QueryInstance, QueryNodeinfo},
|
||||||
};
|
};
|
||||||
use activitystreams::primitives::XsdAnyUri;
|
use activitystreams::primitives::XsdAnyUri;
|
||||||
use actix::clock::{delay_for, Duration};
|
use actix_rt::{spawn, time::delay_for};
|
||||||
use futures::stream::{poll_fn, StreamExt};
|
use futures::stream::{poll_fn, StreamExt};
|
||||||
use log::{debug, error, warn};
|
use log::{debug, error, warn};
|
||||||
use std::{collections::HashMap, sync::Arc};
|
use std::{collections::HashMap, sync::Arc, time::Duration};
|
||||||
use tokio_postgres::{tls::NoTls, AsyncMessage, Config};
|
use tokio_postgres::{tls::NoTls, AsyncMessage, Config};
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ impl Notifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn start(self) {
|
pub fn start(self) {
|
||||||
actix::spawn(async move {
|
spawn(async move {
|
||||||
let Notifier { config, listeners } = self;
|
let Notifier { config, listeners } = self;
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
@ -59,7 +59,7 @@ impl Notifier {
|
||||||
let client = Arc::new(new_client);
|
let client = Arc::new(new_client);
|
||||||
let new_client = client.clone();
|
let new_client = client.clone();
|
||||||
|
|
||||||
actix::spawn(async move {
|
spawn(async move {
|
||||||
if let Err(e) = listen(&new_client).await {
|
if let Err(e) = listen(&new_client).await {
|
||||||
error!("Error listening for updates, {}", e);
|
error!("Error listening for updates, {}", e);
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@ impl Listener for NewBlocks {
|
||||||
debug!("Caching block of {}", payload);
|
debug!("Caching block of {}", payload);
|
||||||
let state = self.0.clone();
|
let state = self.0.clone();
|
||||||
let payload = payload.to_owned();
|
let payload = payload.to_owned();
|
||||||
actix::spawn(async move { state.cache_block(payload).await });
|
spawn(async move { state.cache_block(payload).await });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,7 +134,7 @@ impl Listener for NewWhitelists {
|
||||||
debug!("Caching whitelist of {}", payload);
|
debug!("Caching whitelist of {}", payload);
|
||||||
let state = self.0.clone();
|
let state = self.0.clone();
|
||||||
let payload = payload.to_owned();
|
let payload = payload.to_owned();
|
||||||
actix::spawn(async move { state.cache_whitelist(payload.to_owned()).await });
|
spawn(async move { state.cache_whitelist(payload.to_owned()).await });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ impl Listener for NewListeners {
|
||||||
let state = self.0.clone();
|
let state = self.0.clone();
|
||||||
let _ = self.1.queue(QueryInstance::new(uri.clone()));
|
let _ = self.1.queue(QueryInstance::new(uri.clone()));
|
||||||
let _ = self.1.queue(QueryNodeinfo::new(uri.clone()));
|
let _ = self.1.queue(QueryNodeinfo::new(uri.clone()));
|
||||||
actix::spawn(async move { state.cache_listener(uri).await });
|
spawn(async move { state.cache_listener(uri).await });
|
||||||
} else {
|
} else {
|
||||||
warn!("Not caching listener {}, parse error", payload);
|
warn!("Not caching listener {}, parse error", payload);
|
||||||
}
|
}
|
||||||
|
@ -165,7 +165,7 @@ impl Listener for NewActors {
|
||||||
if let Ok(uri) = payload.parse::<XsdAnyUri>() {
|
if let Ok(uri) = payload.parse::<XsdAnyUri>() {
|
||||||
debug!("Caching actor {}", uri);
|
debug!("Caching actor {}", uri);
|
||||||
let actors = self.0.clone();
|
let actors = self.0.clone();
|
||||||
actix::spawn(async move { actors.cache_follower(uri).await });
|
spawn(async move { actors.cache_follower(uri).await });
|
||||||
} else {
|
} else {
|
||||||
warn!("Not caching actor {}, parse error", payload);
|
warn!("Not caching actor {}, parse error", payload);
|
||||||
}
|
}
|
||||||
|
@ -181,7 +181,7 @@ impl Listener for NewNodes {
|
||||||
if let Ok(uuid) = payload.parse::<Uuid>() {
|
if let Ok(uuid) = payload.parse::<Uuid>() {
|
||||||
debug!("Caching node {}", uuid);
|
debug!("Caching node {}", uuid);
|
||||||
let nodes = self.0.clone();
|
let nodes = self.0.clone();
|
||||||
actix::spawn(async move { nodes.cache_by_id(uuid).await });
|
spawn(async move { nodes.cache_by_id(uuid).await });
|
||||||
} else {
|
} else {
|
||||||
warn!("Not caching node {}, parse error", payload);
|
warn!("Not caching node {}, parse error", payload);
|
||||||
}
|
}
|
||||||
|
@ -197,7 +197,7 @@ impl Listener for RmBlocks {
|
||||||
debug!("Busting block cache for {}", payload);
|
debug!("Busting block cache for {}", payload);
|
||||||
let state = self.0.clone();
|
let state = self.0.clone();
|
||||||
let payload = payload.to_owned();
|
let payload = payload.to_owned();
|
||||||
actix::spawn(async move { state.bust_block(&payload).await });
|
spawn(async move { state.bust_block(&payload).await });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ impl Listener for RmWhitelists {
|
||||||
debug!("Busting whitelist cache for {}", payload);
|
debug!("Busting whitelist cache for {}", payload);
|
||||||
let state = self.0.clone();
|
let state = self.0.clone();
|
||||||
let payload = payload.to_owned();
|
let payload = payload.to_owned();
|
||||||
actix::spawn(async move { state.bust_whitelist(&payload).await });
|
spawn(async move { state.bust_whitelist(&payload).await });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ impl Listener for RmListeners {
|
||||||
if let Ok(uri) = payload.parse::<XsdAnyUri>() {
|
if let Ok(uri) = payload.parse::<XsdAnyUri>() {
|
||||||
debug!("Busting listener cache for {}", uri);
|
debug!("Busting listener cache for {}", uri);
|
||||||
let state = self.0.clone();
|
let state = self.0.clone();
|
||||||
actix::spawn(async move { state.bust_listener(&uri).await });
|
spawn(async move { state.bust_listener(&uri).await });
|
||||||
} else {
|
} else {
|
||||||
warn!("Not busting listener cache for {}", payload);
|
warn!("Not busting listener cache for {}", payload);
|
||||||
}
|
}
|
||||||
|
@ -239,7 +239,7 @@ impl Listener for RmActors {
|
||||||
if let Ok(uri) = payload.parse::<XsdAnyUri>() {
|
if let Ok(uri) = payload.parse::<XsdAnyUri>() {
|
||||||
debug!("Busting actor cache for {}", uri);
|
debug!("Busting actor cache for {}", uri);
|
||||||
let actors = self.0.clone();
|
let actors = self.0.clone();
|
||||||
actix::spawn(async move { actors.bust_follower(&uri).await });
|
spawn(async move { actors.bust_follower(&uri).await });
|
||||||
} else {
|
} else {
|
||||||
warn!("Not busting actor cache for {}", payload);
|
warn!("Not busting actor cache for {}", payload);
|
||||||
}
|
}
|
||||||
|
@ -255,7 +255,7 @@ impl Listener for RmNodes {
|
||||||
if let Ok(uuid) = payload.parse::<Uuid>() {
|
if let Ok(uuid) = payload.parse::<Uuid>() {
|
||||||
debug!("Caching node {}", uuid);
|
debug!("Caching node {}", uuid);
|
||||||
let nodes = self.0.clone();
|
let nodes = self.0.clone();
|
||||||
actix::spawn(async move { nodes.bust_by_id(uuid).await });
|
spawn(async move { nodes.bust_by_id(uuid).await });
|
||||||
} else {
|
} else {
|
||||||
warn!("Not caching node {}, parse error", payload);
|
warn!("Not caching node {}, parse error", payload);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue