Skip to content

Remove protocol buffer compiler - #404

Merged
CGodiksen merged 5 commits into
mainfrom
dev/remove-protoc
Jun 26, 2026
Merged

Remove protocol buffer compiler#404
CGodiksen merged 5 commits into
mainfrom
dev/remove-protoc

Conversation

@CGodiksen

@CGodiksen CGodiksen commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

This PR closes #403 by removing the external protoc dependency and replacing it with protox.

@CGodiksen CGodiksen changed the title Dev/remove protoc Remove protocol buffer compiler Jun 26, 2026
@CGodiksen
CGodiksen requested a review from Copilot June 26, 2026 10:25

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the external protoc dependency from the build by switching protobuf compilation in modelardb_types to the pure-Rust protox compiler, aligning with issue #403’s goal of eliminating external build tooling.

Changes:

  • Replace prost-build’s compile_protos (which requires protoc) with a protox -> FileDescriptorSet -> prost-build flow in crates/modelardb_types/build.rs.
  • Remove protoc installation requirements from CI, Docker image build, and user/Python binding documentation.
  • Add protox as a workspace dependency and update the lockfile accordingly.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
docs/user/README.md Removes protoc from user build prerequisites.
Dockerfile Drops protobuf-compiler installation from the image build.
crates/modelardb_types/Cargo.toml Adds protox as a build-dependency (workspace-managed).
crates/modelardb_types/build.rs Switches protobuf compilation to protox + prost-build::compile_fds.
crates/modelardb_embedded/bindings/python/setup.py Removes protoc from Python binding build dependency checks.
Cargo.toml Adds protox to [workspace.dependencies].
Cargo.lock Records the new dependency graph introduced by protox.
.github/workflows/build-lint-test-and-upload.yml Removes protoc setup steps from CI jobs.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread crates/modelardb_types/build.rs
@skejserjensen

Copy link
Copy Markdown
Contributor

As an additional check, I tried to compile the main branch with protoc installed, the main branch without protoc installed, and this branch without protoc installed on Linux. The main branch compiled correctly with protoc installed, but failed when I uninstalled protoc, while this branch compiled correctly both with and without protoc installed. I also extracted the two Rust files generated from the ProtoBuf files by protoc and protox to check if they contain any major changes. It turns out that either I have made a mistake with deleting the target folder between builds, or the two files are exactly the same.

$ diff modelardb.flight.protocol-protoc.rs modelardb.flight.protocol-protox.rs

$ shasum modelardb.flight.protocol-protoc.rs modelardb.flight.protocol-protox.rs
  b620b3192dbe4ca54cb8ea676997321b71a8f9af  modelardb.flight.protocol-protoc.rs
  b620b3192dbe4ca54cb8ea676997321b71a8f9af  modelardb.flight.protocol-protox.rs

@CGodiksen
CGodiksen requested a review from chrthomsen June 26, 2026 11:53
@CGodiksen
CGodiksen merged commit f50bf88 into main Jun 26, 2026
6 checks passed
@CGodiksen
CGodiksen deleted the dev/remove-protoc branch June 26, 2026 13:29
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.

Remove external dependency on protocol buffer compiler

4 participants