Skip to content

Proposal: Ship pre-generated proto code to drop the downstream protoc hard dependency #411

@Xuanwo

Description

@Xuanwo

Hey team, huge thanks for keeping substrait-rs vibrant and current first.

I start this issue to discuss if it's a good idea to ship pre-generated proto code to drop the downstream protoc hard dependency

  • Current experience: Today, the crate expects users to have protoc installed or to opt into protobuf-src for local compilation. For many downstreams, such as cross-platform packagers, locked-down CI runners, Docker images, and environments without root access, this extra step often blocks upgrades or forces them to bundle protoc manually.
  • Downstream impact: These additional requirements undermine the “works out of the box” expectation. Users who simply want to install a prebuilt wheel or container image face unnecessary friction. For example: Remove protoc requirement lancedb/lance#3073
  • Suggestion: Let’s include pre-generated files in the crate. We can check in the prost-build and pbjson outputs under gen/ and gate regeneration behind an explicit feature or maintenance task. The default build would simply include! those files, while contributors can still run an xtask or helper script to regenerate them when the proto definitions change.

I'm willing to take all the work about this issue. including the whole CI pipeline. Thanks again for all the great work!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions