feat: add server-only build

it's drastically faster to build,
mostly due to only including 1/10th of the dependencies
This commit is contained in:
electria 2026-08-16 14:13:41 -07:00
commit 1546c67fa3
Signed by: electria
SSH key fingerprint: SHA256:8LlB3ucPbBHqozqkhsNbaV5oG3SlzzqUj8FZDL6IPQs
3 changed files with 24 additions and 4 deletions

View file

@ -5,12 +5,23 @@ license = "AGPL-3.0-or-later"
version = "0.1.0"
edition = "2024"
[features]
default = [ "app" ]
app = [ "dep:iced", "dep:smol" ]
[dependencies]
ron = "0.12.2"
serde = "1.0.229"
smol = "2.0.2"
sysinfo = "0.39.6"
[dependencies.iced]
version = "0.14.0"
features = [ "canvas", "smol" ]
optional = true
[dependencies.smol]
version = "2.0.2"
optional = true
[dependencies.serde]
version = "1.0.229"
features = [ "derive" ]

View file

@ -89,6 +89,12 @@
{
packages.default = crate;
packages.server-only = craneLib.buildPackage {
name = name + "-server-only";
src = ./.;
cargoExtraArgs = "--no-default-features";
};
checks = {
crate-clippy = craneLib.cargoClippy (
commonArgs

View file

@ -1,5 +1,6 @@
use std::env;
#[cfg(feature = "app")]
mod app;
mod server;
mod sysinfo_snapshot;
@ -7,10 +8,12 @@ mod utils;
fn main() {
match env::args().nth(1).as_deref() {
Some("server") => server::run().unwrap(),
#[cfg(feature = "app")]
None | Some("client") => app::run().unwrap(),
#[cfg_attr(feature = "app", allow(unreachable_patterns))]
None | Some("server") => server::run().unwrap(),
Some(s) => panic!("invalid argument: {s}"),
}
}