feat: slim down

reduce tonic features, add feature flags to compile only server, client,
both or neither
This commit is contained in:
əlemi 2024-09-30 23:51:33 +02:00
parent 1474c378bc
commit 403200d6bc
Signed by: alemi
GPG key ID: A4895B84D311642C
2 changed files with 40 additions and 15 deletions

View file

@ -10,7 +10,7 @@ authors = [
"cschen <cschen@codemp.dev>"
]
license = "GPL-3.0-only"
version = "0.7.0"
version = "0.7.1"
edition = "2021"
[lib]
@ -18,8 +18,13 @@ name = "codemp_proto"
[dependencies]
prost = "0.13"
tonic = "0.12"
uuid = "1.7"
uuid = "1.10"
tonic = { version = "0.12", default-features = false, features = ["codegen", "prost"] }
[build-dependencies]
tonic-build = "0.12"
[features]
default = ["client"]
client = []
server = []

View file

@ -1,5 +1,25 @@
fn main() -> Result<(), Box<dyn std::error::Error>> {
Ok(tonic_build::configure().compile(
let server = {
#[cfg(feature = "server")] { true }
#[cfg(not(feature = "server"))] { false }
};
let client = {
#[cfg(feature = "client")] { true }
#[cfg(not(feature = "client"))] { false }
};
let transport = {
#[cfg(any(feature = "server", feature = "client"))] { true }
#[cfg(not(any(feature = "server", feature = "client")))] { false }
};
Ok
(tonic_build::configure()
.build_server(server)
.build_client(client)
.build_transport(transport)
.compile_protos(
&[
"proto/common.proto",
"proto/cursor.proto",