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]
