celeborn/cpp
HolyLow 35a14d2469 [CELEBORN-1836][CIP-14] Add Message to cppClient
### What changes were proposed in this pull request?
This PR adds Message implementation to cppClient.

### Why are the changes needed?
The Message is the data structure that transfers between network stack layers.
The decode/encode methods are supported and are compatible with existing java implementation.

### Does this PR introduce _any_ user-facing change?
No.

### How was this patch tested?
Compilation and UTs.

Closes #3066 from HolyLow/issue/celeborn-1836-add-message-to-cpp-client.

Authored-by: HolyLow <jiaming.xie7@gmail.com>
Signed-off-by: Shuang <lvshuang.xjs@alibaba-inc.com>
2025-01-18 12:52:32 +08:00
..
celeborn [CELEBORN-1836][CIP-14] Add Message to cppClient 2025-01-18 12:52:32 +08:00
cmake [CELEBORN-1741][CIP-14] Add processBase utils to cppClient 2024-11-26 13:38:16 +08:00
scripts [CELEBORN-1754][CIP-14] Add exceptions and checking utils to cppClient 2024-12-04 14:05:38 +08:00
.clang-format [CELEBORN-1741][CIP-14] Add processBase utils to cppClient 2024-11-26 13:38:16 +08:00
CMakeLists.txt [CELEBORN-1761][CIP-14] Add cppProto to cppClient 2024-12-10 17:04:46 +08:00
README.md [CELEBORN-1761][CIP-14] Add cppProto to cppClient 2024-12-10 17:04:46 +08:00

[WIP] Celeborn Cpp Support

Environment Setup

We provide several methods to setup dev environment for CelebornCpp. Note that currently the scripts only take care of the cpp-related dependencies, and java dependencies are not included.

Clone the project

We should clone the project as:

# the option `--config core.symlinks=true` is to make sure that the softlink works
git clone git@github.com:apache/celeborn.git --config core.symlinks=true

Use container with prebuilt image

We provide a pre-built image ready to be pulled and used so you could launch a container directly:

export PROJECT_DIR=/your/path/to/celeborn/dir
docker run \
    -v ${PROJECT_DIR}:/celeborn \
    -w /celeborn \
    -it --rm \
    --name celeborn-cpp-dev-container \
    holylow/celeborn-cpp-dev:0.2 \
    /bin/bash

Build image and use container

We provide the dev image building scripts so you could build the image and launch a container as follows:

cd scripts

# build image
bash ./build-docker-image.sh

# launch container with image above
bash ./launch-docker-container.sh

Build on local machine (Ubuntu-Only)

Currently, we only provide the dev-environment setup script for Ubuntu:

cd scripts
bash setup-ubuntu.sh

Other platforms are not supported yet, and you could use the container above as your dev environment.

Compile and test

Currently, the modules are under development. You could compile the code and run the tests within the dev container by

cd celeborn/cpp
mkdir -p build && cd build
cmake ..
make
ctest