Skip to content

Commit 6091b98

Browse files
kariyclaude
andcommitted
refactor(grpc): add grpc feature flag to CLI options
Gate GrpcOptions and related code under both 'server' and 'grpc' features in the CLI crate for better feature modularity. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent a827be6 commit 6091b98

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

crates/cli/src/args.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use katana_node::config::execution::ExecutionConfig;
2020
use katana_node::config::fork::ForkingConfig;
2121
#[cfg(feature = "server")]
2222
use katana_node::config::gateway::GatewayConfig;
23+
#[cfg(all(feature = "server", feature = "grpc"))]
2324
use katana_node::config::grpc::GrpcConfig;
2425
use katana_node::config::metrics::MetricsConfig;
2526
#[cfg(feature = "cartridge")]
@@ -137,7 +138,7 @@ pub struct SequencerNodeArgs {
137138
#[command(flatten)]
138139
pub tee: TeeOptions,
139140

140-
#[cfg(feature = "server")]
141+
#[cfg(all(feature = "server", feature = "grpc"))]
141142
#[command(flatten)]
142143
pub grpc: GrpcOptions,
143144
}
@@ -214,6 +215,7 @@ impl SequencerNodeArgs {
214215
let (chain, cs_messaging) = self.chain_spec()?;
215216
let metrics = self.metrics_config();
216217
let gateway = self.gateway_config();
218+
#[cfg(all(feature = "server", feature = "grpc"))]
217219
let grpc = self.grpc_config();
218220
let forking = self.forking_config()?;
219221
let execution = self.execution_config();
@@ -228,6 +230,7 @@ impl SequencerNodeArgs {
228230
db,
229231
dev,
230232
rpc,
233+
#[cfg(feature = "grpc")]
231234
grpc,
232235
chain,
233236
metrics,
@@ -455,8 +458,8 @@ impl SequencerNodeArgs {
455458
None
456459
}
457460

461+
#[cfg(all(feature = "server", feature = "grpc"))]
458462
fn grpc_config(&self) -> Option<GrpcConfig> {
459-
#[cfg(feature = "server")]
460463
if self.grpc.grpc_enable {
461464
use std::time::Duration;
462465

@@ -468,9 +471,6 @@ impl SequencerNodeArgs {
468471
} else {
469472
None
470473
}
471-
472-
#[cfg(not(feature = "server"))]
473-
None
474474
}
475475

476476
#[cfg(feature = "cartridge")]
@@ -531,7 +531,10 @@ impl SequencerNodeArgs {
531531
self.metrics = metrics;
532532
}
533533
}
534+
}
534535

536+
#[cfg(all(feature = "server", feature = "grpc"))]
537+
{
535538
self.grpc.merge(config.grpc.as_ref());
536539
}
537540

crates/cli/src/file.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ pub struct NodeArgsConfig {
2626
pub server: Option<ServerOptions>,
2727
#[cfg(feature = "server")]
2828
pub metrics: Option<MetricsOptions>,
29-
#[cfg(feature = "server")]
29+
#[cfg(all(feature = "server", feature = "grpc"))]
3030
pub grpc: Option<GrpcOptions>,
3131
#[cfg(feature = "cartridge")]
3232
pub cartridge: Option<CartridgeOptions>,
@@ -76,6 +76,10 @@ impl TryFrom<SequencerNodeArgs> for NodeArgsConfig {
7676
if args.server == ServerOptions::default() { None } else { Some(args.server) };
7777
node_config.metrics =
7878
if args.metrics == MetricsOptions::default() { None } else { Some(args.metrics) };
79+
}
80+
81+
#[cfg(all(feature = "server", feature = "grpc"))]
82+
{
7983
node_config.grpc =
8084
if args.grpc == GrpcOptions::default() { None } else { Some(args.grpc) };
8185
}

crates/cli/src/options.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -836,7 +836,7 @@ impl TeeOptions {
836836
}
837837
}
838838

839-
#[cfg(feature = "server")]
839+
#[cfg(all(feature = "server", feature = "grpc"))]
840840
#[derive(Debug, Args, Clone, Serialize, Deserialize, PartialEq)]
841841
#[command(next_help_heading = "gRPC server options")]
842842
pub struct GrpcOptions {
@@ -868,7 +868,7 @@ pub struct GrpcOptions {
868868
pub grpc_timeout: Option<u64>,
869869
}
870870

871-
#[cfg(feature = "server")]
871+
#[cfg(all(feature = "server", feature = "grpc"))]
872872
impl Default for GrpcOptions {
873873
fn default() -> Self {
874874
GrpcOptions {
@@ -880,7 +880,7 @@ impl Default for GrpcOptions {
880880
}
881881
}
882882

883-
#[cfg(feature = "server")]
883+
#[cfg(all(feature = "server", feature = "grpc"))]
884884
impl GrpcOptions {
885885
pub fn merge(&mut self, other: Option<&Self>) {
886886
if let Some(other) = other {
@@ -900,12 +900,12 @@ impl GrpcOptions {
900900
}
901901
}
902902

903-
#[cfg(feature = "server")]
903+
#[cfg(all(feature = "server", feature = "grpc"))]
904904
fn default_grpc_addr() -> IpAddr {
905905
katana_node::config::grpc::DEFAULT_GRPC_ADDR
906906
}
907907

908-
#[cfg(feature = "server")]
908+
#[cfg(all(feature = "server", feature = "grpc"))]
909909
fn default_grpc_port() -> u16 {
910910
katana_node::config::grpc::DEFAULT_GRPC_PORT
911911
}

0 commit comments

Comments
 (0)