Skip to content

feat: add common transport-level handshake for RDMA and UBSHM - #47

Open
zchuango wants to merge 11 commits into
masterfrom
transport-handshake
Open

zchuango wants to merge 11 commits into
masterfrom
transport-handshake

Conversation

@zchuango

Copy link
Copy Markdown

No description provided.

Spicy-cream and others added 10 commits October 15, 2026 19:32
…lity

Resolve UBSHM handshake conflicts using the tested rebased tree. Retain backend-specific format negotiation, remote shared-memory lengths, and upstream IPC V2 tests.
Resolve current master conflicts and preserve UBSHM IPC V2 negotiation
Resolve master conflict and preserve shared memory name safety
…m init (apache#3627)

* fix enqueue move-only

* Add test for move-only enqueue and dequeue

Added test for enqueueing and dequeuing move-only types in MPSCQueue.

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…pache#3618)

* Move CMake source definitions into module directories

Keep source selection and bundled artifacts unchanged while moving each
module source list and RPC protocol generation out of the root project.
Retain the existing test source inputs during this first migration step.

* Define CMake production targets in their module directories

Let each module own its production object library and move the mcpack
protoc generator into its module. Aggregate the module objects into the
existing brpc bundle without compiling production sources twice.

Move butil configuration-header generation, feature-option handling and
dependency discovery into the owning modules. Keep RPC-only headers out
of lower-library compile settings and assemble legacy bundle dependencies
after module setup.

Apply CRC32C instruction flags only to the relevant sources, including
debug builds. Preserve the RISC-V vector base64 options and the existing
AArch64 libcontext workaround.

Query module targets for the existing unit-test source sets instead of
passing source lists through parent directory scopes. Preserve the test
compile definitions and bundled debug library linkage.

Install source and generated headers directly from their owning modules.
Keep build-tree include paths separate from installed target interfaces
instead of copying headers into an output staging tree.

Use Protobuf's imported targets to preserve static transitive dependencies
and Debug/Release library selection, and handle config-mode import paths.

* Use explicit installation prefixes for CMake examples

Stop searching for the removed output/include staging directory and honor
the caller-provided CMAKE_PREFIX_PATH in both example entry points.
Document the install-before-use workflow in English and Chinese.

Link Protobuf through its imported target so non-system installations
supply the headers required by generated sources and public RPC headers.

* Align the ubring example CMake minimum with the project

Require CMake 3.16 and use the same policy range as the root project and
other examples. This makes the declared minimum consistent with use of
the protobuf::libprotobuf imported target introduced in CMake 3.9.

* Configure the install prefix before generating pkg-config metadata

Set CMAKE_INSTALL_PREFIX during configuration in both getting-started
guides, then build and install without an install-time prefix override.
This keeps the generated brpc.pc paths aligned with the installed files.

* Prefer generated IDL headers when building the mcpack generator

Inherit build settings through the selected brpc bundle instead of linking
butil_build_config first. This keeps the generated IDL header directory
ahead of the source tree and prevents stale Make-generated headers from
shadowing the current CMake output.

* Remove unused CMake module configuration leftovers

Drop the unread platform-library property and unused URMA parent-scope
exports. Remove redundant debug-bundle glog blocks, since module-owned
bundle dependencies already propagate the library through DYNAMIC_LIB.

* Document installed-prefix builds for UBRing examples

Set the brpc installation prefix at configure time, install the bundle,
and pass the prefix explicitly when building the performance example.
Update both build sections in the English and Chinese UBRing guides.

* Preserve ordered transitive dependencies for CMake bundles

Propagate the complete link dependency closure from the static bundle and
reuse it in tools rather than masking missing dependencies at each caller.
Order module consumers before providers in both CMake and pkg-config, and
keep system libraries after their users.

Retain LevelDB Snappy dependencies independently of WITH_SNAPPY without
exposing unused Snappy headers. Include selected optional runtime libraries
in the generated private link metadata.

Add bundle-only consumers and dependency-metadata checks to the existing
CMake CI jobs without increasing job concurrency.

* Normalize legacy LevelDB CMake target dependencies

Use LevelDB's exported target to carry its link dependencies while keeping
header and library discovery for installations without a CMake package.

Work around private warning flags and unnecessary shared-library Snappy
linkage exported by LevelDB 1.23. Preserve static and unknown-type link
dependencies, along with brpc's explicit WITH_SNAPPY option.

Give debug sources the same LevelDB requirements and add a standalone
consumer to the existing CMake link checks without adding CI jobs.
…ves it (apache#3628)

* Install protobuf@21 from a local tap in macOS CI

Homebrew disabled protobuf@21 on 2026-01-08 and removes disabled
formulae a year after their disable date. The formula still installs
today with a deprecation warning; once it is removed from homebrew-core,
"brew install protobuf@21" fails with "No available formula" and the
compile-with-make-cmake-protobuf21 job fails.

Install it from a local tap that holds the homebrew-core formula at
commit cced3ef1d489 without its deprecate!/disable! lines. Homebrew
pours the same bottle into the same opt/protobuf@21 prefix, so the make
and cmake steps are unchanged.

* Keep the protobuf@21 formula in homebrew-formula/

Store the pinned homebrew-core formula (commit cced3ef1d489, without
its deprecate!/disable! lines) as homebrew-formula/protobuf@21.rb and
copy it into the local tap, so the macOS job no longer downloads it on
every run. The file keeps Homebrew's BSD 2-Clause notice; it is listed
in LICENSE and excluded from the Apache header check, like the other
third-party files.
…refresh

Resolve modular CMake conflict and preserve handshake protobuf generation
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.

5 participants