Refactor to Cargo Workspace (#129)

* Refactor project into a Cargo workspace with distinct packages

- Created a root `Cargo.toml` defining a workspace.
- Moved `src/types` and `src/utils` into a new `pwsp-lib` crate for shared logic.
- Split binaries into their own crates: `pwsp-daemon`, `pwsp-cli`, and `pwsp-gui`.
- Shifted all dependencies into `[workspace.dependencies]` for centralized version management.
- Updated import paths across all crates (e.g. from `pwsp::` to `pwsp_lib::`).
- Updated build scripts, GitHub actions, Flatpak manifest, and AUR PKGBUILD to support the new workspace structure.
- Ensured no core application logic was altered.

Co-authored-by: arabianq <55220741+arabianq@users.noreply.github.com>

* Fix cargo-deb build process in GitHub actions for workspace architecture

Co-authored-by: arabianq <55220741+arabianq@users.noreply.github.com>

* Fix cargo-deb asset discovery by using exact target/release paths

Co-authored-by: arabianq <55220741+arabianq@users.noreply.github.com>

* refactor deps in Cargo.toml files

* fix incorrect assets path

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
This commit is contained in:
Tarasov Aleksandr
2026-06-02 21:12:44 +03:00
committed by GitHub
parent 6c59137639
commit 0476329798
47 changed files with 224 additions and 87 deletions
Generated
+43 -7
View File
@@ -3279,28 +3279,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d595e54a326bc53c1c197b32d295e14b169e3cfeaa8dc82b529f947fba6bcf5"
[[package]]
name = "pwsp"
name = "pwsp-cli"
version = "1.10.0"
dependencies = [
"anyhow",
"async-trait",
"clap",
"dirs",
"pwsp-lib",
"serde_json",
"tokio",
]
[[package]]
name = "pwsp-daemon"
version = "1.10.0"
dependencies = [
"anyhow",
"clap",
"pipewire",
"pwsp-lib",
"serde_json",
"tokio",
]
[[package]]
name = "pwsp-gui"
version = "1.10.0"
dependencies = [
"anyhow",
"eframe",
"egui",
"egui_dnd",
"egui_extras",
"egui_material_icons",
"evdev",
"itertools 0.14.0",
"opener",
"percent-encoding",
"pipewire",
"pwsp-lib",
"reqwest",
"rfd",
"rodio",
"rust-i18n",
"rustix 1.1.4",
"serde",
"serde_json",
"sys-locale",
@@ -3308,6 +3325,25 @@ dependencies = [
"tokio",
]
[[package]]
name = "pwsp-lib"
version = "1.10.0"
dependencies = [
"anyhow",
"async-trait",
"dirs",
"egui",
"evdev",
"itertools 0.14.0",
"pipewire",
"reqwest",
"rodio",
"rustix 1.1.4",
"serde",
"serde_json",
"tokio",
]
[[package]]
name = "pxfm"
version = "0.1.29"