refactor!: unify wire format to pure bincode, remove prost/protobuf envelope - #13
Merged
Merged
Conversation
…nvelope Replace the prost-generated protobuf envelope (v1) with a pure bincode wire format (v2) using derive-based WireEnvelope/WireFrame structs. BREAKING CHANGE: Wire format version bumped from 1 to 2. Services must be upgraded together — v1 (prost) and v2 (bincode) are not interoperable. The `DecodeError::Prost` variant is renamed to `Wire`. Changes: - Define WireEnvelope + WireFrame with bincode::Encode/Decode derives - Rewrite encode.rs/decode.rs to use bincode serialization directly - Remove prost, tonic-build, build.rs, and aerro.v1.proto - Remove protoc setup from CI workflows (no longer needed) - Remove tonic "prost" feature flag from workspace dependencies - Rename DecodeError::Prost → DecodeError::Wire - Bump workspace version 0.8.0 → 0.9.0 Migration: upgrade all services simultaneously. No code changes needed for users of the `#[derive(Aerro)]` macro — the wire format change is transparent. Users matching on `DecodeError::Prost` must rename to `DecodeError::Wire`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ae2rs
added a commit
that referenced
this pull request
May 26, 2026
…nvelope (#13) Replace the prost-generated protobuf envelope (v1) with a pure bincode wire format (v2) using derive-based WireEnvelope/WireFrame structs. BREAKING CHANGE: Wire format version bumped from 1 to 2. Services must be upgraded together — v1 (prost) and v2 (bincode) are not interoperable. The `DecodeError::Prost` variant is renamed to `Wire`. Changes: - Define WireEnvelope + WireFrame with bincode::Encode/Decode derives - Rewrite encode.rs/decode.rs to use bincode serialization directly - Remove prost, tonic-build, build.rs, and aerro.v1.proto - Remove protoc setup from CI workflows (no longer needed) - Remove tonic "prost" feature flag from workspace dependencies - Rename DecodeError::Prost → DecodeError::Wire - Bump workspace version 0.8.0 → 0.9.0 Migration: upgrade all services simultaneously. No code changes needed for users of the `#[derive(Aerro)]` macro — the wire format change is transparent. Users matching on `DecodeError::Prost` must rename to `DecodeError::Wire`. Co-authored-by: ae2rs <ae2rs@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
WireEnvelope+WireFramestructs withbincode::Encode/bincode::Decodederives, eliminating the protobuf code-generation step entirelyprost,tonic-build,protocsystem dep) from the build graphprotocfrom CI —arduino/setup-protoc@v3step removed from bothci.ymlandrelease.ymlDecodeError::Prost→DecodeError::Wireand rename bench functions fromaerro_prost→aerro_bincodeBreaking changes
DecodeError::Prost(String)DecodeError::Wire(String)tonicfeature"prost"requiredtonicfeature"prost"removedprotocrequired at build timeMigration
#[derive(Aerro)]need no code changes — the wire format change is transparentDecodeError::Prostmust rename toDecodeError::Wireprotocno longer needs to be installed in CI or dev environmentsTest plan
proto_gen.rsrewritten for bincode envelope🤖 Generated with Claude Code