- A C++ compiler that supports C++11, like GCC >= 4.8
- CMake >= 3.13
- Boost
- Protocol Buffer >= 3
- libcurl
- openssl
The default supported compression types are:
CompressionNone
CompressionLZ4
If you want to enable other compression types, you need to install:
If you want to build and run the tests, you need to install GTest. Otherwise, you need to add CMake option -DBUILD_TESTS=OFF
.
The dependencies.yaml file provides the recommended dependency versions, while you can still build from source with other dependency versions. If a dependency requires a higher C++ standard, e.g. C++14, you can specify the standard like:
cmake . -DCMAKE_CXX_STANDARD=14
Note:
On macOS, the default C++ standard is 17 because the latest Protobuf from Homebrew requires the C++17 support.
First of all, clone the source code:
git clone https://github.com/apache/pulsar-client-cpp
cd pulsar-client-cpp
sudo apt-get update -y && sudo apt-get install -y g++ cmake libssl-dev libcurl4-openssl-dev \
libprotobuf-dev libboost-all-dev libgtest-dev libgmock-dev \
protobuf-compiler
cmake .
make
If you want to build performance tools, you need to run:
cmake . -DBUILD_PERF_TOOLS=ON
make
Client library will be placed in:
lib/libpulsar.so
lib/libpulsar.a
Examples will be placed in:
examples/
Tools will be placed in:
perf/perfProducer
perf/perfConsumer
brew install cmake openssl protobuf boost googletest zstd snappy
cmake .
make
If you want to build performance tools, you need to run:
cmake . -DBUILD_PERF_TOOLS=ON
make
Client library will be placed in:
lib/libpulsar.dylib
lib/libpulsar.a
Examples will be placed in:
examples/
Tools will be placed in:
perf/perfProducer
perf/perfConsumer
Install with vcpkg
It's highly recommended to use vcpkg
for C++ package management on Windows. It's easy to install and well supported by Visual Studio (2015/2017/2019) and CMake. See here for quick start.
Take Windows 64-bit library as an example, you only need to run
vcpkg install --feature-flags=manifests --triplet x64-windows
NOTE:
For Windows 32-bit library, change
x64-windows
tox86-windows
, see here for more details about the triplet concept in Vcpkg.
The all dependencies, which are specified by vcpkg.json, will be installed in vcpkg_installed/
subdirectory,
With vcpkg
, you only need to run two commands:
cmake \
-B ./build \
-A x64 \
-DBUILD_TESTS=OFF \
-DVCPKG_TRIPLET=x64-windows \
-DCMAKE_BUILD_TYPE=Release \
-S .
cmake --build ./build --config Release
Then all artifacts will be built into build
subdirectory.
NOTE:
- For Windows 32-bit, you need to use
-A Win32
and-DVCPKG_TRIPLET=x86-windows
.- For MSVC Debug mode, you need to replace
Release
withDebug
for bothCMAKE_BUILD_TYPE
variable and--config
option.
You need to install dlfcn-win32 in addition.
If you installed the dependencies manually, you need to run
#If all dependencies are in your path, all that is necessary is
cmake .
#if all dependencies are not in your path, then passing in a PROTOC_PATH and CMAKE_PREFIX_PATH is necessary
cmake -DPROTOC_PATH=C:/protobuf/bin/protoc -DCMAKE_PREFIX_PATH="C:/boost;C:/openssl;C:/zlib;C:/curl;C:/protobuf;C:/googletest;C:/dlfcn-win32" .
#This will generate pulsar-cpp.sln. Open this in Visual Studio and build the desired configurations.
Client library will be placed in:
build/lib/Release/pulsar.lib
build/lib/Release/pulsar.dll
Add Windows environment paths:
build/lib/Release
vcpkg_installed
Examples will be available in:
build/examples/Release
# Execution
# Start standalone broker
./pulsar-test-service-start.sh
# Run the tests
cd tests
./pulsar-tests
# When no longer needed, stop standalone broker
./pulsar-test-service-stop.sh