Skip to content

[SPARK-58753] Add Cargo workspace skeleton, vendored protos, and genproto crate - #2

Closed
viirya wants to merge 1 commit into
apache:mainfrom
viirya:import-01-genproto
Closed

[SPARK-58753] Add Cargo workspace skeleton, vendored protos, and genproto crate#2
viirya wants to merge 1 commit into
apache:mainfrom
viirya:import-01-genproto

Conversation

@viirya

@viirya viirya commented Aug 13, 2026

Copy link
Copy Markdown
Member

What changes were proposed in this pull request?

This is the first of a series of small, bottom-up PRs importing the Spark
Connect Gateway reference implementation (tracked in the do-not-merge reference
PR #1). It introduces the Cargo workspace:

  • Root Cargo.toml with the full [workspace.package] and
    [workspace.dependencies] tables. members lists only crates/genproto for
    now; subsequent PRs append one or more crates.
  • Cargo.lock (tracked — this project ships a binary), rust-toolchain.toml.
  • The vendored spark.connect.* protos under proto/spark/connect/ — a
    read-only mirror of the corresponding files in apache/spark.
  • The scg-genproto crate, whose build.rs generates tonic bindings from the
    protos at build time via tonic-prost-build.

Each PR in this series keeps main green under the full CI matrix
(fmt / clippy --all-targets / build / test --workspace).

Why are the changes needed?

Implements the reference gateway from the approved SPIP (SPARK-58455), imported
into the apache/spark-connect-gateway subproject repo one reviewable piece at
a time.

Does this PR introduce any user-facing change?

No.

How was this patch tested?

cargo fmt --all --check, cargo clippy --workspace --all-targets -- -D warnings,
cargo build --workspace, and cargo test --workspace all pass locally.

Was this patch authored or co-authored using generative AI tooling?

Yes, co-authored with Claude Code.

…roto crate

Introduces the Cargo workspace for the Spark Connect Gateway: the root
Cargo.toml (with the full [workspace.package] and [workspace.dependencies]
tables; members lists only crates/genproto for now), Cargo.lock,
rust-toolchain.toml, the vendored spark.connect.* protos under proto/, and the
scg-genproto crate that generates tonic bindings from them at build time.

This is the first of a series of small, bottom-up PRs importing the gateway
reference implementation. Subsequent PRs append one or more crates to the
workspace members list, keeping main green under the full CI matrix
(fmt / clippy --all-targets / build / test --workspace) at each step.

The proto files are a read-only mirror of the corresponding files in
apache/spark; genproto's build.rs compiles them via tonic-prost-build.

Co-authored-by: Claude Code
@viirya

viirya commented Aug 13, 2026

Copy link
Copy Markdown
Member Author

Thank you @HyukjinKwon

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