Skip to content

Conversation

@zond
Copy link

@zond zond commented Jan 10, 2026

Summary

  • Adds a grpc feature to make tonic/prost dependencies optional
  • Enables building reticulum-rs for embedded platforms without protoc

Problem

The Kaonic interface requires tonic/prost for gRPC communication. These dependencies:

  • Are heavy (increase compile time and binary size)
  • Require protoc at build time
  • Are problematic for embedded targets like ESP32

Solution

  • Add a grpc feature (enabled by default for backward compatibility)
  • Make tonic, prost, and tonic-build optional dependencies
  • Gate the kaonic module on the grpc feature
  • Gate kaonic examples with required-features

Usage

# Default build (includes gRPC, same as before)
cargo build

# Build without gRPC (no protoc required, smaller binary)
cargo build --no-default-features --features alloc

Testing

  • All 13 tests pass with default features
  • All 13 tests pass without grpc feature
  • Successfully builds for ESP32-S3 without grpc

🤖 Generated with Claude Code

The Kaonic interface requires tonic/prost for gRPC communication. These
dependencies are heavy and require protoc at build time, which is
problematic for embedded targets like ESP32.

This change:
- Adds a "grpc" feature (enabled by default for backward compatibility)
- Makes tonic, prost, and tonic-build optional dependencies
- Gates the kaonic module on the "grpc" feature
- Gates kaonic examples with required-features

Building with `--no-default-features --features alloc` now excludes all
gRPC-related dependencies, reducing build time and removing the protoc
requirement for embedded deployments.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@nibytes
Copy link

nibytes commented Jan 15, 2026

So wait, thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants