From b39e88107af02b1df65997030b0fe47e496aa8c6 Mon Sep 17 00:00:00 2001 From: Patryk Hegenberg Date: Sun, 5 May 2024 13:42:11 +0200 Subject: [PATCH] refactor(caesar): restructure the project to a monorepo --- Cargo.lock | 160 ++++++++++-------- Cargo.toml | 59 +------ Shuttle.toml | 1 + caesar-cli/Cargo.toml | 23 +++ {src => caesar-cli/src}/cli/args.rs | 6 +- {src => caesar-cli/src}/cli/mod.rs | 0 {src => caesar-cli/src}/main.rs | 6 +- caesar-core/Cargo.toml | 45 +++++ packets.proto => caesar-core/packets.proto | 0 {src => caesar-core/src}/build.rs | 0 caesar-core/src/lib.rs | 4 + {src => caesar-core/src}/receiver/client.rs | 0 .../src}/receiver/http_client.rs | 0 {src => caesar-core/src}/receiver/mod.rs | 0 {src => caesar-core/src}/relay/appstate.rs | 0 {src => caesar-core/src}/relay/client.rs | 0 {src => caesar-core/src}/relay/mod.rs | 0 {src => caesar-core/src}/relay/room.rs | 0 {src => caesar-core/src}/relay/server.rs | 0 {src => caesar-core/src}/relay/transfer.rs | 0 {src => caesar-core/src}/sender/client.rs | 0 .../src}/sender/http_client.rs | 0 {src => caesar-core/src}/sender/mod.rs | 0 {src => caesar-core/src}/sender/util.rs | 0 {src => caesar-core/src}/shared.rs | 0 caesar-shuttle/Cargo.toml | 18 ++ src/shuttle.rs => caesar-shuttle/src/main.rs | 15 +- 27 files changed, 195 insertions(+), 142 deletions(-) create mode 100644 Shuttle.toml create mode 100644 caesar-cli/Cargo.toml rename {src => caesar-cli/src}/cli/args.rs (99%) rename {src => caesar-cli/src}/cli/mod.rs (100%) rename {src => caesar-cli/src}/main.rs (93%) create mode 100644 caesar-core/Cargo.toml rename packets.proto => caesar-core/packets.proto (100%) rename {src => caesar-core/src}/build.rs (100%) create mode 100644 caesar-core/src/lib.rs rename {src => caesar-core/src}/receiver/client.rs (100%) rename {src => caesar-core/src}/receiver/http_client.rs (100%) rename {src => caesar-core/src}/receiver/mod.rs (100%) rename {src => caesar-core/src}/relay/appstate.rs (100%) rename {src => caesar-core/src}/relay/client.rs (100%) rename {src => caesar-core/src}/relay/mod.rs (100%) rename {src => caesar-core/src}/relay/room.rs (100%) rename {src => caesar-core/src}/relay/server.rs (100%) rename {src => caesar-core/src}/relay/transfer.rs (100%) rename {src => caesar-core/src}/sender/client.rs (100%) rename {src => caesar-core/src}/sender/http_client.rs (100%) rename {src => caesar-core/src}/sender/mod.rs (100%) rename {src => caesar-core/src}/sender/util.rs (100%) rename {src => caesar-core/src}/shared.rs (100%) create mode 100644 caesar-shuttle/Cargo.toml rename src/shuttle.rs => caesar-shuttle/src/main.rs (71%) diff --git a/Cargo.lock b/Cargo.lock index 6430aa9..8b7a390 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,47 +87,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -185,9 +186,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "axum" @@ -355,9 +356,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" @@ -405,17 +406,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] -name = "caesar-transfer-iu" +name = "caesar-cli" +version = "0.3.1" +dependencies = [ + "axum 0.7.5", + "axum-client-ip", + "caesar-core", + "clap 4.5.4", + "dotenv", + "serde", + "serde_json", + "tokio", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "caesar-core" version = "0.3.1" dependencies = [ "aes-gcm", "axum 0.7.5", "axum-client-ip", "axum-extra", - "base64 0.22.0", + "base64 0.22.1", "clap 4.5.4", "dotenv", - "dotenvy", "flume", "futures-util", "headers", @@ -433,8 +449,6 @@ dependencies = [ "serde", "serde_json", "sha2", - "shuttle-axum", - "shuttle-runtime", "tokio", "tokio-tungstenite", "tower", @@ -446,11 +460,22 @@ dependencies = [ "uuid", ] +[[package]] +name = "caesar-transfer-iu" +version = "0.3.1" +dependencies = [ + "axum 0.7.5", + "axum-client-ip", + "caesar-core", + "shuttle-axum", + "shuttle-runtime", +] + [[package]] name = "cc" -version = "1.0.95" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" +checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd" [[package]] name = "cfg-if" @@ -544,9 +569,9 @@ checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "colored" @@ -707,9 +732,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" [[package]] name = "der" @@ -743,12 +768,6 @@ dependencies = [ "clap 2.34.0", ] -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - [[package]] name = "ecdsa" version = "0.16.9" @@ -817,9 +836,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" [[package]] name = "ff" @@ -1064,9 +1083,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "headers" @@ -1201,9 +1220,9 @@ dependencies = [ [[package]] name = "http-range-header" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ce4ef31cda248bbdb6e6820603b82dfcd9e833db65a43e997a0ccec777d11fe" +checksum = "08a397c49fec283e3d6211adbe480be95aae5f304cfb923e9970e08956d5168a" [[package]] name = "httparse" @@ -1360,7 +1379,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", - "hashbrown 0.14.3", + "hashbrown 0.14.5", ] [[package]] @@ -1379,10 +1398,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] -name = "itertools" -version = "0.10.5" +name = "is_terminal_polyfill" +version = "1.70.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] @@ -1410,9 +1435,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.153" +version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" [[package]] name = "linux-raw-sys" @@ -1434,9 +1459,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -1582,9 +1607,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] @@ -1741,9 +1766,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb" dependencies = [ "lock_api", "parking_lot_core", @@ -1751,15 +1776,15 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.9" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.48.5", + "windows-targets 0.52.5", ] [[package]] @@ -2018,11 +2043,11 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.5.0", ] [[package]] @@ -2075,7 +2100,7 @@ version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "bytes", "encoding_rs", "futures-channel", @@ -2176,7 +2201,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "rustls-pki-types", ] @@ -2282,18 +2307,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.198" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc" +checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.198" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9" +checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" dependencies = [ "proc-macro2", "quote", @@ -2519,9 +2544,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2822,16 +2847,15 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] @@ -3076,9 +3100,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.11" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6" [[package]] name = "universal-hash" diff --git a/Cargo.toml b/Cargo.toml index 8e8903b..0b8453c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,56 +1,3 @@ -[package] -name = "caesar-transfer-iu" -version = "0.3.1" -edition = "2021" -build = "src/build.rs" -authors = ["Manuel Keidel", "Patryk Hegenberg", "Krzysztof Stankiewicz"] - -[[bin]] -name = "caesar" -path = "src/main.rs" - -[[bin]] -name = "caesar-transfer-iu" -path = "src/shuttle.rs" - -[dependencies] -futures-util = "0.3" -tungstenite = "0.21.0" -tokio = { version = "1.28.1", features = ["full"] } -tokio-tungstenite = { version = "0.21.0", features = [ - "rustls-tls-webpki-roots", -] } -serde_json = { version = "1.0" } -serde = { version = "1.0", features = ["derive"] } -uuid = { version = "1.3.2", features = ["v4"] } -tracing = "0.1.40" -tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -dotenv = { version = "0.15.0", features = ["clap", "cli"] } -clap = { version = "4.5.4", features = ["derive"] } -flume = { git = "https://github.com/zesterer/flume", rev = "80d19c49" } -prost = "0.12.4" -prost-types = "0.12.4" -base64 = "0.22.0" -url = "2.4.0" -p256 = { version = "0.13.2", features = ["ecdh"] } -hmac = "0.12.1" -sha2 = "0.10.7" -rand = { version = "0.8.5", features = ["getrandom"] } -aes-gcm = "0.10.3" -sanitize-filename = "0.5.0" -qr2term = "0.3.1" -axum = { version = "0.7.5", features = ["ws"] } -tower-http = { version = "0.5.2", features = ["fs", "trace"] } -axum-client-ip = "0.6.0" -local-ip-address = "0.6.1" -axum-extra = { version = "0.9.3", features = ["typed-header"] } -headers = "0.4" -tower = { version = "0.4", features = ["util"] } -shuttle-axum = { version = "0.44.0" } -shuttle-runtime = { version = "0.44.0" } -dotenvy = "0.15.7" -reqwest = { version = "0.12.4", features = ["blocking", "json"] } -hex = "0.4.3" - -[build-dependencies] -prost-build = "0.12.4" +[workspace] +resolver = "2" +members = ["caesar-cli", "caesar-core", "caesar-shuttle"] diff --git a/Shuttle.toml b/Shuttle.toml new file mode 100644 index 0000000..be6938b --- /dev/null +++ b/Shuttle.toml @@ -0,0 +1 @@ +name = "caesar-transfer-iu" diff --git a/caesar-cli/Cargo.toml b/caesar-cli/Cargo.toml new file mode 100644 index 0000000..c9bbef7 --- /dev/null +++ b/caesar-cli/Cargo.toml @@ -0,0 +1,23 @@ +[package] +name = "caesar-cli" +version = "0.3.1" +edition = "2021" +authors = ["Manuel Keidel, Patryk Hegenberg, Krzysztof Stankiewicz"] + +[[bin]] +name = "caesar" +path = "src/main.rs" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +caesar-core = { path = "../caesar-core" } +tokio = { version = "1.28.1", features = ["full"] } +serde_json = { version = "1.0" } +serde = { version = "1.0", features = ["derive"] } +tracing = "0.1.40" +tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } +dotenv = { version = "0.15.0", features = ["clap", "cli"] } +clap = { version = "4.5.4", features = ["derive"] } +axum = { version = "0.7.5", features = ["ws"] } +axum-client-ip = "0.6.0" diff --git a/src/cli/args.rs b/caesar-cli/src/cli/args.rs similarity index 99% rename from src/cli/args.rs rename to caesar-cli/src/cli/args.rs index c377826..e8cdf45 100644 --- a/src/cli/args.rs +++ b/caesar-cli/src/cli/args.rs @@ -1,6 +1,6 @@ -use crate::receiver; -use crate::relay; -use crate::sender; +use caesar_core::receiver; +use caesar_core::relay; +use caesar_core::sender; use clap::{Parser, Subcommand}; use std::{env, sync::Arc}; use tracing::debug; diff --git a/src/cli/mod.rs b/caesar-cli/src/cli/mod.rs similarity index 100% rename from src/cli/mod.rs rename to caesar-cli/src/cli/mod.rs diff --git a/src/main.rs b/caesar-cli/src/main.rs similarity index 93% rename from src/main.rs rename to caesar-cli/src/main.rs index d678bd7..d7e56fc 100644 --- a/src/main.rs +++ b/caesar-cli/src/main.rs @@ -3,11 +3,7 @@ use dotenv::dotenv; use tracing::error; use tracing_subscriber::filter::EnvFilter; -pub mod cli; -pub mod receiver; -pub mod relay; -pub mod sender; -pub mod shared; +mod cli; #[tokio::main] // This is the entrypoint of caesar. diff --git a/caesar-core/Cargo.toml b/caesar-core/Cargo.toml new file mode 100644 index 0000000..2b38875 --- /dev/null +++ b/caesar-core/Cargo.toml @@ -0,0 +1,45 @@ +[package] +name = "caesar-core" +version = "0.3.1" +edition = "2021" +build = "src/build.rs" +authors = ["Manuel Keidel", "Patryk Hegenberg", "Krzysztof Stankiewicz"] + +[dependencies] +futures-util = "0.3" +tungstenite = "0.21.0" +tokio = { version = "1.28.1", features = ["full"] } +tokio-tungstenite = { version = "0.21.0", features = [ + "rustls-tls-webpki-roots", +] } +serde_json = { version = "1.0" } +serde = { version = "1.0", features = ["derive"] } +uuid = { version = "1.3.2", features = ["v4"] } +tracing = "0.1.40" +tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } +dotenv = { version = "0.15.0", features = ["clap", "cli"] } +clap = { version = "4.5.4", features = ["derive"] } +flume = { git = "https://github.com/zesterer/flume", rev = "80d19c49" } +prost = "0.12.4" +prost-types = "0.12.4" +base64 = "0.22.0" +url = "2.4.0" +p256 = { version = "0.13.2", features = ["ecdh"] } +hmac = "0.12.1" +sha2 = "0.10.7" +rand = { version = "0.8.5", features = ["getrandom"] } +aes-gcm = "0.10.3" +sanitize-filename = "0.5.0" +qr2term = "0.3.1" +axum = { version = "0.7.5", features = ["ws"] } +tower-http = { version = "0.5.2", features = ["fs", "trace"] } +axum-client-ip = "0.6.0" +local-ip-address = "0.6.1" +axum-extra = { version = "0.9.3", features = ["typed-header"] } +headers = "0.4" +tower = { version = "0.4", features = ["util"] } +reqwest = { version = "0.12.4", features = ["blocking", "json"] } +hex = "0.4.3" + +[build-dependencies] +prost-build = "0.12.4" diff --git a/packets.proto b/caesar-core/packets.proto similarity index 100% rename from packets.proto rename to caesar-core/packets.proto diff --git a/src/build.rs b/caesar-core/src/build.rs similarity index 100% rename from src/build.rs rename to caesar-core/src/build.rs diff --git a/caesar-core/src/lib.rs b/caesar-core/src/lib.rs new file mode 100644 index 0000000..010a530 --- /dev/null +++ b/caesar-core/src/lib.rs @@ -0,0 +1,4 @@ +pub mod receiver; +pub mod relay; +pub mod sender; +pub mod shared; diff --git a/src/receiver/client.rs b/caesar-core/src/receiver/client.rs similarity index 100% rename from src/receiver/client.rs rename to caesar-core/src/receiver/client.rs diff --git a/src/receiver/http_client.rs b/caesar-core/src/receiver/http_client.rs similarity index 100% rename from src/receiver/http_client.rs rename to caesar-core/src/receiver/http_client.rs diff --git a/src/receiver/mod.rs b/caesar-core/src/receiver/mod.rs similarity index 100% rename from src/receiver/mod.rs rename to caesar-core/src/receiver/mod.rs diff --git a/src/relay/appstate.rs b/caesar-core/src/relay/appstate.rs similarity index 100% rename from src/relay/appstate.rs rename to caesar-core/src/relay/appstate.rs diff --git a/src/relay/client.rs b/caesar-core/src/relay/client.rs similarity index 100% rename from src/relay/client.rs rename to caesar-core/src/relay/client.rs diff --git a/src/relay/mod.rs b/caesar-core/src/relay/mod.rs similarity index 100% rename from src/relay/mod.rs rename to caesar-core/src/relay/mod.rs diff --git a/src/relay/room.rs b/caesar-core/src/relay/room.rs similarity index 100% rename from src/relay/room.rs rename to caesar-core/src/relay/room.rs diff --git a/src/relay/server.rs b/caesar-core/src/relay/server.rs similarity index 100% rename from src/relay/server.rs rename to caesar-core/src/relay/server.rs diff --git a/src/relay/transfer.rs b/caesar-core/src/relay/transfer.rs similarity index 100% rename from src/relay/transfer.rs rename to caesar-core/src/relay/transfer.rs diff --git a/src/sender/client.rs b/caesar-core/src/sender/client.rs similarity index 100% rename from src/sender/client.rs rename to caesar-core/src/sender/client.rs diff --git a/src/sender/http_client.rs b/caesar-core/src/sender/http_client.rs similarity index 100% rename from src/sender/http_client.rs rename to caesar-core/src/sender/http_client.rs diff --git a/src/sender/mod.rs b/caesar-core/src/sender/mod.rs similarity index 100% rename from src/sender/mod.rs rename to caesar-core/src/sender/mod.rs diff --git a/src/sender/util.rs b/caesar-core/src/sender/util.rs similarity index 100% rename from src/sender/util.rs rename to caesar-core/src/sender/util.rs diff --git a/src/shared.rs b/caesar-core/src/shared.rs similarity index 100% rename from src/shared.rs rename to caesar-core/src/shared.rs diff --git a/caesar-shuttle/Cargo.toml b/caesar-shuttle/Cargo.toml new file mode 100644 index 0000000..c12b579 --- /dev/null +++ b/caesar-shuttle/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "caesar-transfer-iu" +version = "0.3.1" +edition = "2021" +authors = ["Manuel Keidel, Patryk Hegenberg, Krzysztof Stankiewicz"] + +[[bin]] +name = "caesar-transfer-iu" +path = "src/main.rs" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +caesar-core = { path = "../caesar-core" } +shuttle-axum = { version = "0.44.0" } +shuttle-runtime = { version = "0.44.0" } +axum = { version = "0.7.5", features = ["ws"] } +axum-client-ip = "0.6.0" diff --git a/src/shuttle.rs b/caesar-shuttle/src/main.rs similarity index 71% rename from src/shuttle.rs rename to caesar-shuttle/src/main.rs index 817b15d..63241e1 100644 --- a/src/shuttle.rs +++ b/caesar-shuttle/src/main.rs @@ -1,20 +1,15 @@ -use crate::relay::appstate::AppState; -use crate::relay::server::download_info; -use crate::relay::server::download_success; -use crate::relay::server::upload_info; -use crate::relay::server::ws_handler; use axum::{ routing::{get, post, put}, Router, }; use axum_client_ip::SecureClientIpSource; +use caesar_core::relay::appstate::AppState; +use caesar_core::relay::server::download_info; +use caesar_core::relay::server::download_success; +use caesar_core::relay::server::upload_info; +use caesar_core::relay::server::ws_handler; use shuttle_axum::ShuttleAxum; -pub mod receiver; -pub mod relay; -pub mod sender; -pub mod shared; - #[shuttle_runtime::main] async fn axum() -> ShuttleAxum { // Create a new server data structure.