diff options
| author | MatthieuCoder <matthieu@matthieu-dev.xyz> | 2023-01-03 00:14:27 +0400 | 
|---|---|---|
| committer | MatthieuCoder <matthieu@matthieu-dev.xyz> | 2023-01-03 00:14:27 +0400 | 
| commit | 91a27342dbee8ca0478f862df93bf502337f4c6e (patch) | |
| tree | af5f4818d300934d8c9ea14896fe756fea13d578 /exes/ratelimit | |
| parent | c3e47ff0b1b06ff26830e78b7e37e212d1e47200 (diff) | |
add all in one binary
Diffstat (limited to 'exes/ratelimit')
| -rw-r--r-- | exes/ratelimit/Cargo.toml | 2 | ||||
| -rw-r--r-- | exes/ratelimit/src/lib.rs | 45 | ||||
| -rw-r--r-- | exes/ratelimit/src/main.rs | 47 | 
3 files changed, 48 insertions, 46 deletions
diff --git a/exes/ratelimit/Cargo.toml b/exes/ratelimit/Cargo.toml index a28d2d0..82ca9f6 100644 --- a/exes/ratelimit/Cargo.toml +++ b/exes/ratelimit/Cargo.toml @@ -18,4 +18,4 @@ futures-util = "0.3.17"  tracing = "*"  serde_json = { version = "1.0" }  tonic = "0.8.3" -tokio-stream = "0.1.11"
\ No newline at end of file +tokio-stream = "0.1.11" diff --git a/exes/ratelimit/src/lib.rs b/exes/ratelimit/src/lib.rs new file mode 100644 index 0000000..6d6d608 --- /dev/null +++ b/exes/ratelimit/src/lib.rs @@ -0,0 +1,45 @@ +use std::net::ToSocketAddrs; + +use futures_util::FutureExt; +use grpc::RLServer; +use leash::{AnyhowResultFuture, Component}; +use proto::nova::ratelimit::ratelimiter::ratelimiter_server::RatelimiterServer; +use redis_global_local_bucket_ratelimiter::RedisGlobalLocalBucketRatelimiter; +use shared::{config::Settings, redis_crate::Client}; +use tokio::sync::oneshot; +use tonic::transport::Server; + +mod grpc; +mod redis_global_local_bucket_ratelimiter; + +pub struct RatelimiterServerComponent {} +impl Component for RatelimiterServerComponent { +    type Config = (); +    const SERVICE_NAME: &'static str = "ratelimiter"; + +    fn start( +        &self, +        settings: Settings<Self::Config>, +        stop: oneshot::Receiver<()>, +    ) -> AnyhowResultFuture<()> { +        Box::pin(async move { +            // let config = Arc::new(settings.config); +            let redis: Client = settings.redis.into(); +            let server = RLServer::new(RedisGlobalLocalBucketRatelimiter::new(redis.into())); + +            Server::builder() +                .add_service(RatelimiterServer::new(server)) +                .serve_with_shutdown( +                    "0.0.0.0:8093".to_socket_addrs().unwrap().next().unwrap(), +                    stop.map(|_| ()), +                ) +                .await?; + +            Ok(()) +        }) +    } + +    fn new() -> Self { +        Self {} +    } +} diff --git a/exes/ratelimit/src/main.rs b/exes/ratelimit/src/main.rs index 0ceded2..2de812b 100644 --- a/exes/ratelimit/src/main.rs +++ b/exes/ratelimit/src/main.rs @@ -1,47 +1,4 @@ -use std::net::ToSocketAddrs; - -use futures_util::FutureExt; -use grpc::RLServer; -use leash::{ignite, AnyhowResultFuture, Component}; -use proto::nova::ratelimit::ratelimiter::ratelimiter_server::RatelimiterServer; -use redis_global_local_bucket_ratelimiter::RedisGlobalLocalBucketRatelimiter; -use shared::{config::Settings, redis_crate::Client}; -use tokio::sync::oneshot; -use tonic::transport::Server; - -mod grpc; -mod redis_global_local_bucket_ratelimiter; - -struct RatelimiterServerComponent {} -impl Component for RatelimiterServerComponent { -    type Config = (); -    const SERVICE_NAME: &'static str = "ratelimiter"; - -    fn start( -        &self, -        settings: Settings<Self::Config>, -        stop: oneshot::Receiver<()>, -    ) -> AnyhowResultFuture<()> { -        Box::pin(async move { -            // let config = Arc::new(settings.config); -            let redis: Client = settings.redis.into(); -            let server = RLServer::new(RedisGlobalLocalBucketRatelimiter::new(redis.into())); - -            Server::builder() -                .add_service(RatelimiterServer::new(server)) -                .serve_with_shutdown( -                    "0.0.0.0:8080".to_socket_addrs().unwrap().next().unwrap(), -                    stop.map(|_| ()), -                ) -                .await?; - -            Ok(()) -        }) -    } - -    fn new() -> Self { -        Self {} -    } -} +use leash::ignite; +use ratelimit::RatelimiterServerComponent;  ignite!(RatelimiterServerComponent);  | 
