From 74d709b036e5c328689b576331151b2a4cdfa993 Mon Sep 17 00:00:00 2001 From: SquidSpirit Date: Mon, 5 May 2025 02:39:53 +0800 Subject: [PATCH] BLOG-43 refactor: workspace and package --- .vscode/settings.json | 6 ++++++ README.md | 2 +- backend/Cargo.lock | 21 ++++++++++++++------- backend/Cargo.toml | 9 ++++++--- backend/feature/post/Cargo.toml | 7 +++++++ backend/feature/post/src/lib.rs | 0 backend/server/Cargo.toml | 7 +++++++ backend/{ => server}/src/main.rs | 0 8 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 backend/feature/post/Cargo.toml create mode 100644 backend/feature/post/src/lib.rs create mode 100644 backend/server/Cargo.toml rename backend/{ => server}/src/main.rs (100%) diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..93b6c3c --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "cSpell.words": [ + "actix", + "squidspirit" + ] +} \ No newline at end of file diff --git a/README.md b/README.md index 33de74e..093c3e0 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## Development - Frontend: Next.js -- Backend: Go (gin) +- Backend: Rust actix-web Despite Next.js being a full-stack framework, I still decided to adopt a separate front-end and back-end architecture for this blog project. I believe that this separation makes the project cleaner, reduces coupling, and aligns with modern development practices. Furthermore, I wanted to practice developing a purely back-end API. diff --git a/backend/Cargo.lock b/backend/Cargo.lock index 315de80..e05c8e1 100644 --- a/backend/Cargo.lock +++ b/backend/Cargo.lock @@ -884,6 +884,13 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "post" +version = "0.1.1" +dependencies = [ + "actix-web", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1058,6 +1065,13 @@ dependencies = [ "serde", ] +[[package]] +name = "server" +version = "0.1.1" +dependencies = [ + "actix-web", +] + [[package]] name = "sha1" version = "0.10.6" @@ -1109,13 +1123,6 @@ dependencies = [ "windows-sys", ] -[[package]] -name = "squidspirit-blog" -version = "0.1.1" -dependencies = [ - "actix-web", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" diff --git a/backend/Cargo.toml b/backend/Cargo.toml index a7967ee..6fca592 100644 --- a/backend/Cargo.toml +++ b/backend/Cargo.toml @@ -1,7 +1,10 @@ -[package] -name = "squidspirit-blog" +[workspace] +members = ["feature/post", "server"] +resolver = "2" + +[workspace.package] version = "0.1.1" edition = "2024" -[dependencies] +[workspace.dependencies] actix-web = "4.10.2" diff --git a/backend/feature/post/Cargo.toml b/backend/feature/post/Cargo.toml new file mode 100644 index 0000000..6f5acee --- /dev/null +++ b/backend/feature/post/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "post" +version.workspace = true +edition.workspace = true + +[dependencies] +actix-web.workspace = true diff --git a/backend/feature/post/src/lib.rs b/backend/feature/post/src/lib.rs new file mode 100644 index 0000000..e69de29 diff --git a/backend/server/Cargo.toml b/backend/server/Cargo.toml new file mode 100644 index 0000000..2688116 --- /dev/null +++ b/backend/server/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "server" +version.workspace = true +edition.workspace = true + +[dependencies] +actix-web.workspace = true diff --git a/backend/src/main.rs b/backend/server/src/main.rs similarity index 100% rename from backend/src/main.rs rename to backend/server/src/main.rs