AnDiXL opened a new pull request, #3558:
URL: https://github.com/apache/brpc/pull/3558

   ### What problem does this PR solve?
   
   Related discussion: #2354.
   
   This is the message/codegen follow-up to #3196, opened at @wwbmmm's 
[request](https://github.com/apache/brpc/pull/3196#issuecomment-5761639973). It 
submits the two commits already shared there as a focused, independently 
reviewable PR.
   
   Background and related work:
   
   - #3062 (merged): the `SingleIOBuf` foundation used by this implementation.
   - #3196: the original FlatBuffers message-construction proposal and review 
discussion.
   - #3197: the associated RPC proposal. Network transport and 
Channel/Controller/Server integration remain separate and are **not included in 
this PR**.
   - [LinQuickDev/brpc#45](https://github.com/LinQuickDev/brpc/pull/45): 
related FlatBuffers integration and validation work by @Spicy-cream.
   
   Thanks to @Q1ngbo for the original work, and to @Spicy-cream for the 
continued interest in FlatBuffers support and collaboration around these 
follow-ups.
   
   ### What is changed and the side effects?
   
   Changed:
   
   - `3f2550c6`: add IOBuf-backed `Message`, allocator-aware `MessageBuilder`, 
stable service/method descriptors, optional CMake/Make/Bazel integration, 
documentation and regression tests.
   - `6e5a3b32`: fix generated header-guard collisions and relocation, and make 
standalone codegen acceptance use the appropriate Protobuf includes, link 
target and C++ standard.
   - `Message` derives from `NonreflectableMessage<Message>`; existing 
protobuf-facing `Protocol` callback signatures remain unchanged.
   - The standalone `brpc_flatc` binding generator uses the upstream 
FlatBuffers parser rather than requiring a compiler fork.
   
   Scope and side effects:
   
   - FlatBuffers support is disabled by default.
   - This is message construction and generated in-process dispatch, not an 
`fb_rpc` transport or a network RPC example. The RPC follow-up will carry those 
separately.
   - No measured performance improvement is claimed.
   
   ### Validation
   
   Recorded checks, not rerun for PR creation:
   
   - Exact PR head (`6e5a3b32`), macOS/CMake: 21 message tests and both 
`flatbuffers_codegen_acceptance` and `flatbuffers_codegen_runtime` passed, with 
no failures or skips.
   - Related full message/RPC snapshots were also validated on Linux with 
CMake, Make and Bazel. This is integration evidence, not a separate Linux 
validation of this reduced two-commit PR.
   - Full-repository tests, sanitizer/performance results and hosted CI for 
this new PR are not claimed here.
   
   Build and usage instructions are in 
[docs/en/flatbuffers.md](https://github.com/AnDiXL/brpc/blob/6e5a3b3248fc10671873497fc56574eb4ef8b5c9/docs/en/flatbuffers.md)
 and 
[tools/flatbuffers/README.md](https://github.com/AnDiXL/brpc/blob/6e5a3b3248fc10671873497fc56574eb4ef8b5c9/tools/flatbuffers/README.md).
   
   ---
   ### Check List:
   
   - [x] Focused build and test validation is recorded above.
   - [x] Message and code-generation regression tests are included.
   - [x] Build instructions and ownership/verification limitations are 
documented.
   - [ ] Hosted CI for this PR has completed.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to