summaryrefslogtreecommitdiff
path: root/exes/ratelimit
diff options
context:
space:
mode:
authorMatthieuCoder <matthieu@matthieu-dev.xyz>2023-01-03 00:14:27 +0400
committerMatthieuCoder <matthieu@matthieu-dev.xyz>2023-01-03 00:14:27 +0400
commit91a27342dbee8ca0478f862df93bf502337f4c6e (patch)
treeaf5f4818d300934d8c9ea14896fe756fea13d578 /exes/ratelimit
parentc3e47ff0b1b06ff26830e78b7e37e212d1e47200 (diff)
add all in one binary
Diffstat (limited to 'exes/ratelimit')
-rw-r--r--exes/ratelimit/Cargo.toml2
-rw-r--r--exes/ratelimit/src/lib.rs45
-rw-r--r--exes/ratelimit/src/main.rs47
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);