Skip to content

feat: bump tonic 0.12→0.14 + tonic-web-wasm-client 0.6→0.9 + prost 0.13→0.14#25

Merged
satyakwok merged 1 commit into
mainfrom
chore/bump-tonic-prost
May 12, 2026
Merged

feat: bump tonic 0.12→0.14 + tonic-web-wasm-client 0.6→0.9 + prost 0.13→0.14#25
satyakwok merged 1 commit into
mainfrom
chore/bump-tonic-prost

Conversation

@satyakwok
Copy link
Copy Markdown
Member

@satyakwok satyakwok commented May 12, 2026

Cluster A3 of the major-bump audit (explorer V2 side — completes Cluster A).

Changes

  • runtime: tonic 0.12 → 0.14, tonic-web-wasm-client 0.6 → 0.9, prost 0.13 → 0.14
  • build-deps: tonic-build → tonic-prost-build (0.14), prost-build 0.13 → 0.14
  • new dep: tonic-prost 0.14 (runtime)

API migrations

  • tonic_build::configure()tonic_prost_build::configure()
  • .compile_protos_with_config().compile_with_config() (renamed in 0.14)
  • tonic feature prost removed (provided by separate tonic-prost crate)

Verification

  • cargo check --target wasm32-unknown-unknown — clean (browser bundle)
  • cargo check --features ssr — clean (axum server build)

Both code paths the explorer ships (CSR/hydrate in browser, SSR axum binary on the host) compile.

Supersedes #15, #23. Coordinates with sdk-rs#15 and sentrix-grpc-wasm#12 (both already opened in this cluster).

Summary by CodeRabbit

  • Chores
    • Updated gRPC-Web and protocol buffer dependencies (tonic, prost, tonic-prost, tonic-web-wasm-client) and WASM networking dependency for improved compatibility and stability.
    • Updated build-time code generation tooling to align with the new dependency versions and maintain proto code generation behavior.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 12, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 167d7d21-83ed-466b-af28-2a604d73cb8f

📥 Commits

Reviewing files that changed from the base of the PR and between 3f33a98 and c8abcc7.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock, !**/*.lock
📒 Files selected for processing (2)
  • Cargo.toml
  • build.rs
🚧 Files skipped from review as they are similar to previous changes (1)
  • build.rs

📝 Walkthrough

Walkthrough

This PR upgrades the gRPC-Web and protocol buffer code generation stack across build and runtime dependencies. The build system migrates from tonic-build to tonic-prost-build 0.14 with prost-build 0.14, updating build.rs to use the new prost-focused API while preserving client generation and conditional server stub generation. Runtime dependencies for gRPC-Web clients are coordinated: tonic advances to 0.14 with feature set narrowed to ["codegen"], tonic-web-wasm-client moves to 0.9, and prost moves to 0.14.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: a coordinated dependency upgrade of tonic, tonic-web-wasm-client, and prost versions.
Description check ✅ Passed The PR description includes a clear summary of changes, API migrations applied, and verification steps. However, it does not follow the template structure (missing formal Test plan section with checklist) though content covers verification.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/bump-tonic-prost

Comment @coderabbitai help to get the list of available commands and usage tips.

… 0.6→0.7

tonic 0.14 split prost integration into separate `tonic-prost` (runtime)
+ `tonic-prost-build` (codegen) crates. tonic itself no longer exposes
the `prost` feature.

build.rs:
  tonic_build::configure() → tonic_prost_build::configure()
  compile_protos_with_config() → compile_with_config() (renamed in 0.14)

Cargo.toml:
  runtime: drop tonic["prost"] feature, add tonic-prost dep
  build-dep: tonic-build → tonic-prost-build, prost-build 0.13 → 0.14
  tonic-web-wasm-client 0.6 → 0.9 (matches tonic 0.14)
  gloo-net 0.6 → 0.7

The gloo-net bump is required to align the WASM bundle on a single
wasm-streams version. tonic-web-wasm-client 0.9 needs wasm-streams 0.5;
gloo-net 0.6 still pulled wasm-streams 0.4. Rust-lld then hard-failed
with hundreds of duplicate-symbol errors on `__wbindgen_describe_*`
exports because both versions register the same wasm-bindgen functions.
gloo-net 0.7 dropped to wasm-streams 0.5 — single version, link clean.

Verification:
  cargo leptos build --release       (full mainnet bundle, WASM + SSR)
  cargo check --target wasm32        (browser path)

Supersedes #19 (gloo-net), supersedes the earlier #15/#23 already closed.
@satyakwok satyakwok force-pushed the chore/bump-tonic-prost branch from 3f33a98 to c8abcc7 Compare May 12, 2026 04:59
@satyakwok satyakwok merged commit e047cc1 into main May 12, 2026
7 checks passed
@satyakwok satyakwok self-assigned this May 12, 2026
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.

1 participant