aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/admin/api_server.rs3
-rw-r--r--src/api/admin/repair.rs3
-rw-r--r--src/api/common/Cargo.toml1
-rw-r--r--src/api/common/generic_server.rs12
-rw-r--r--src/api/k2v/Cargo.toml1
-rw-r--r--src/api/k2v/api_server.rs3
-rw-r--r--src/api/s3/Cargo.toml1
-rw-r--r--src/api/s3/api_server.rs3
8 files changed, 5 insertions, 22 deletions
diff --git a/src/api/admin/api_server.rs b/src/api/admin/api_server.rs
index 1ab81be3..37574dcf 100644
--- a/src/api/admin/api_server.rs
+++ b/src/api/admin/api_server.rs
@@ -2,7 +2,6 @@ use std::borrow::Cow;
use std::sync::Arc;
use argon2::password_hash::PasswordHash;
-use async_trait::async_trait;
use http::header::{HeaderValue, ACCESS_CONTROL_ALLOW_ORIGIN, AUTHORIZATION};
use hyper::{body::Incoming as IncomingBody, Request, Response};
@@ -55,7 +54,6 @@ impl Rpc for AdminRpc {
type Response = Result<AdminRpcResponse, GarageError>;
}
-#[async_trait]
impl EndpointHandler<AdminRpc> for AdminApiServer {
async fn handle(
self: &Arc<Self>,
@@ -196,7 +194,6 @@ impl AdminApiServer {
struct ArcAdminApiServer(Arc<AdminApiServer>);
-#[async_trait]
impl ApiHandler for ArcAdminApiServer {
const API_NAME: &'static str = "admin";
const API_NAME_DISPLAY: &'static str = "Admin";
diff --git a/src/api/admin/repair.rs b/src/api/admin/repair.rs
index 113ef636..a9b8c36a 100644
--- a/src/api/admin/repair.rs
+++ b/src/api/admin/repair.rs
@@ -1,3 +1,4 @@
+use std::future::Future;
use std::sync::Arc;
use std::time::Duration;
@@ -104,7 +105,7 @@ trait TableRepair: Send + Sync + 'static {
&mut self,
garage: &Garage,
entry: <<Self as TableRepair>::T as TableSchema>::E,
- ) -> impl std::future::Future<Output = Result<bool, GarageError>> + Send;
+ ) -> impl Future<Output = Result<bool, GarageError>> + Send;
}
struct TableRepairWorker<T: TableRepair> {
diff --git a/src/api/common/Cargo.toml b/src/api/common/Cargo.toml
index 842662c4..5b9cf479 100644
--- a/src/api/common/Cargo.toml
+++ b/src/api/common/Cargo.toml
@@ -18,7 +18,6 @@ garage_model.workspace = true
garage_table.workspace = true
garage_util.workspace = true
-async-trait.workspace = true
bytes.workspace = true
chrono.workspace = true
crypto-common.workspace = true
diff --git a/src/api/common/generic_server.rs b/src/api/common/generic_server.rs
index 133e3706..d7ee5692 100644
--- a/src/api/common/generic_server.rs
+++ b/src/api/common/generic_server.rs
@@ -5,8 +5,6 @@ use std::os::unix::fs::PermissionsExt;
use std::sync::Arc;
use std::time::Duration;
-use async_trait::async_trait;
-
use futures::future::Future;
use futures::stream::{futures_unordered::FuturesUnordered, StreamExt};
@@ -48,7 +46,6 @@ pub trait ApiError: std::error::Error + Send + Sync + 'static {
fn http_body(&self, garage_region: &str, path: &str) -> ErrorBody;
}
-#[async_trait]
pub trait ApiHandler: Send + Sync + 'static {
const API_NAME: &'static str;
const API_NAME_DISPLAY: &'static str;
@@ -57,11 +54,11 @@ pub trait ApiHandler: Send + Sync + 'static {
type Error: ApiError;
fn parse_endpoint(&self, r: &Request<IncomingBody>) -> Result<Self::Endpoint, Self::Error>;
- async fn handle(
+ fn handle(
&self,
req: Request<IncomingBody>,
endpoint: Self::Endpoint,
- ) -> Result<Response<BoxBody<Self::Error>>, Self::Error>;
+ ) -> impl Future<Output = Result<Response<BoxBody<Self::Error>>, Self::Error>> + Send;
}
pub struct ApiServer<A: ApiHandler> {
@@ -249,13 +246,11 @@ impl<A: ApiHandler> ApiServer<A> {
// ==== helper functions ====
-#[async_trait]
pub trait Accept: Send + Sync + 'static {
type Stream: AsyncRead + AsyncWrite + Send + Sync + 'static;
- async fn accept(&self) -> std::io::Result<(Self::Stream, String)>;
+ fn accept(&self) -> impl Future<Output = std::io::Result<(Self::Stream, String)>> + Send;
}
-#[async_trait]
impl Accept for TcpListener {
type Stream = TcpStream;
async fn accept(&self) -> std::io::Result<(Self::Stream, String)> {
@@ -267,7 +262,6 @@ impl Accept for TcpListener {
pub struct UnixListenerOn(pub UnixListener, pub String);
-#[async_trait]
impl Accept for UnixListenerOn {
type Stream = UnixStream;
async fn accept(&self) -> std::io::Result<(Self::Stream, String)> {
diff --git a/src/api/k2v/Cargo.toml b/src/api/k2v/Cargo.toml
index d4e26efa..e3ebedca 100644
--- a/src/api/k2v/Cargo.toml
+++ b/src/api/k2v/Cargo.toml
@@ -19,7 +19,6 @@ garage_table.workspace = true
garage_util = { workspace = true, features = [ "k2v" ] }
garage_api_common.workspace = true
-async-trait.workspace = true
base64.workspace = true
err-derive.workspace = true
tracing.workspace = true
diff --git a/src/api/k2v/api_server.rs b/src/api/k2v/api_server.rs
index c562ffe0..015fd687 100644
--- a/src/api/k2v/api_server.rs
+++ b/src/api/k2v/api_server.rs
@@ -1,8 +1,6 @@
use std::borrow::Cow;
use std::sync::Arc;
-use async_trait::async_trait;
-
use hyper::{body::Incoming as IncomingBody, Method, Request, Response};
use tokio::sync::watch;
@@ -49,7 +47,6 @@ impl K2VApiServer {
}
}
-#[async_trait]
impl ApiHandler for K2VApiServer {
const API_NAME: &'static str = "k2v";
const API_NAME_DISPLAY: &'static str = "K2V";
diff --git a/src/api/s3/Cargo.toml b/src/api/s3/Cargo.toml
index a1751c9f..387e45db 100644
--- a/src/api/s3/Cargo.toml
+++ b/src/api/s3/Cargo.toml
@@ -24,7 +24,6 @@ garage_api_common.workspace = true
aes-gcm.workspace = true
async-compression.workspace = true
-async-trait.workspace = true
base64.workspace = true
bytes.workspace = true
chrono.workspace = true
diff --git a/src/api/s3/api_server.rs b/src/api/s3/api_server.rs
index 171fbb9a..c8c28f3d 100644
--- a/src/api/s3/api_server.rs
+++ b/src/api/s3/api_server.rs
@@ -1,8 +1,6 @@
use std::borrow::Cow;
use std::sync::Arc;
-use async_trait::async_trait;
-
use hyper::header;
use hyper::{body::Incoming as IncomingBody, Request, Response};
use tokio::sync::watch;
@@ -71,7 +69,6 @@ impl S3ApiServer {
}
}
-#[async_trait]
impl ApiHandler for S3ApiServer {
const API_NAME: &'static str = "s3";
const API_NAME_DISPLAY: &'static str = "S3";