From d636606285cd48bc32b5d83838910221b9570a39 Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Thu, 31 Aug 2023 16:25:37 +0300 Subject: [PATCH] Optimize binary size Signed-off-by: Nikolaos Karaolidis --- backend/Cargo.lock | 28 +--------------------------- backend/Cargo.toml | 9 ++++----- backend/Dockerfile | 5 +++-- backend/src/data/live/crypto.rs | 4 ++-- backend/src/data/live/stocks.rs | 4 ++-- backend/src/main.rs | 4 ++-- 6 files changed, 14 insertions(+), 40 deletions(-) diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 64aeca4..c84aea2 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -197,7 +197,6 @@ dependencies = [ "sqlx", "time 0.3.28", "tokio", - "tungstenite 0.20.0", "websocket-util", ] @@ -391,12 +390,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "data-encoding" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" - [[package]] name = "deadpool" version = "0.9.5" @@ -2154,7 +2147,7 @@ dependencies = [ "native-tls", "tokio", "tokio-native-tls", - "tungstenite 0.18.0", + "tungstenite", ] [[package]] @@ -2254,25 +2247,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "tungstenite" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http", - "httparse", - "log", - "rand", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "typemap-ors" version = "1.0.0" diff --git a/backend/Cargo.toml b/backend/Cargo.toml index ba34bd3..90ebad6 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -4,10 +4,10 @@ version = "0.1.0" edition = "2021" [profile.release] -panic = 'abort' - -[profile.dev] -panic = 'abort' +panic = 'abort' +strip = true +lto = true +codegen-units = 1 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html @@ -38,5 +38,4 @@ time = { version = "0.3.27", features = [ futures = "0.3.28" websocket-util = "0.11.2" futures-util = "0.3.28" -tungstenite = "0.20.0" async-trait = "0.1.73" diff --git a/backend/Dockerfile b/backend/Dockerfile index 6fcde0c..106f778 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,5 @@ -FROM rust AS builder +FROM rust:alpine AS builder +RUN apk add --no-cache pkgconf musl-dev openssl-dev WORKDIR /usr/src/qrust @@ -12,7 +13,7 @@ RUN rm -rf src COPY . . RUN cargo build --release -FROM frolvlad/alpine-glibc AS backend +FROM alpine AS backend WORKDIR /usr/src/qrust diff --git a/backend/src/data/live/crypto.rs b/backend/src/data/live/crypto.rs index 1e324f9..f72eb06 100644 --- a/backend/src/data/live/crypto.rs +++ b/backend/src/data/live/crypto.rs @@ -22,7 +22,7 @@ impl ToString for CryptoUrl { pub type Crypto = CustomUrl; pub async fn init_stream_subscription_mpsc( - postgres_pool: PostgresPool, + postgres_pool: &PostgresPool, ) -> Result<(Arc>>, AssetMPSC), Box> { let client = create_alpaca_client_from_env().await?; @@ -30,7 +30,7 @@ pub async fn init_stream_subscription_mpsc( .subscribe::>() .await?; - let symbols = get_assets_crypto(&postgres_pool) + let symbols = get_assets_crypto(postgres_pool) .await? .iter() .map(|asset| asset.symbol.clone()) diff --git a/backend/src/data/live/stocks.rs b/backend/src/data/live/stocks.rs index d4e3497..dae6891 100644 --- a/backend/src/data/live/stocks.rs +++ b/backend/src/data/live/stocks.rs @@ -11,7 +11,7 @@ use std::{error::Error, sync::Arc}; use tokio::sync::{mpsc, Mutex}; pub async fn init_stream_subscription_mpsc( - postgres_pool: PostgresPool, + postgres_pool: &PostgresPool, ) -> Result<(Arc>>, AssetMPSC), Box> { let client = create_alpaca_client_from_env().await?; @@ -19,7 +19,7 @@ pub async fn init_stream_subscription_mpsc( .subscribe::>() .await?; - let symbols = get_assets_stocks(&postgres_pool) + let symbols = get_assets_stocks(postgres_pool) .await? .iter() .map(|asset| asset.symbol.clone()) diff --git a/backend/src/main.rs b/backend/src/main.rs index 2405aad..637aae1 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -29,7 +29,7 @@ async fn main() -> Result<(), Box> { // Stock Live Data let (stock_live_stream_subscription_mutex, stock_live_mpsc) = - stocks::init_stream_subscription_mpsc(postgres_pool.clone()).await?; + stocks::init_stream_subscription_mpsc(&postgres_pool).await?; let stock_live_mpsc_sender_arc = Arc::new(stock_live_mpsc.sender); threads.push(spawn(run_data_live::( @@ -40,7 +40,7 @@ async fn main() -> Result<(), Box> { // Crypto Live Data let (crypto_stream_subscription_mutex, crypto_live_mpsc) = - crypto::init_stream_subscription_mpsc(postgres_pool.clone()).await?; + crypto::init_stream_subscription_mpsc(&postgres_pool).await?; let crypto_live_mpsc_sender_arc = Arc::new(crypto_live_mpsc.sender); threads.push(spawn(run_data_live::(