pulsar-client-node
pulsar-client-node copied to clipboard
Apache Pulsar NodeJS Client
Pulsar Node.js client library
The Pulsar Node.js client can be used to create Pulsar producers and consumers in Node.js.
Requirements
Pulsar Node.js client library is based on the C++ client library. Follow the instructions for C++ library for installing the binaries through RPM, Deb or Homebrew packages.
(Note: you will need to install not only the pulsar-client library but also the pulsar-client-dev library)
Also, this library works only in Node.js 10.x or later because it uses the node-addon-api module to wrap the C++ library.
Compatibility
Compatibility between each version of the Node.js client and the C++ client is as follows:
| Node.js client | C++ client |
|---|---|
| 1.0.x | 2.3.0 or later |
| 1.1.x | 2.4.0 or later |
| 1.2.x | 2.5.0 or later |
| 1.3.x | 2.7.0 or later |
| 1.4.x - 1.6.x | 2.8.0 or later |
If an incompatible version of the C++ client is installed, you may fail to build or run this library.
How to install
Install on windows
- Build the Pulsar C++ client on windows.
cmake \
-A x64 \
-DBUILD_PYTHON_WRAPPER=OFF -DBUILD_TESTS=OFF \
-DVCPKG_TRIPLET=x64-windows \
-DCMAKE_BUILD_TYPE=Release \
-S .
cmake --config Release
- Set the variable
PULSAR_CPP_DIRwith thepulsar-client-cpppath in a Windows command tool.
# for example
set PULSAR_CPP_DIR=C:\pulsar\pulsar-client-cpp
- Set the variable
OS_ARCHin a Windows command tool,OS_ARCHis related to the configuration of VCPKG_TRIPLET on the command line above.(Optional)
set OS_ARCH=x64-windows
Install on mac
- Install the Pulsar C++ client on mac.
brew install libpulsar
- Get the installation path of libpulsar
brew info libpulsar
- Set the variable
PULSAR_CPP_DIRwith thepulsar-client-cpppath in a mac command tool.
# for example
## Intel x86_64
export PULSAR_CPP_DIR=/usr/local/Cellar/libpulsar/2.9.1_1
## Apple Silicon and Homebrew since 3.0.0
## cf. https://brew.sh/2021/02/05/homebrew-3.0.0/
export PULSAR_CPP_DIR=/opt/homebrew/Cellar/libpulsar/2.9.1_1
Install on Linux
- Require g++ and make commands to install pulsar-client
# rpm
$ yum install gcc-c++ make
# debian
$ apt-get install g++ make
- Download rpm or debian packages.
# Set the version of Pulsar C++ client to install
$ PULSAR_CPP_CLIENT_VERSION=2.9.1
# rpm
$ wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/RPMS/apache-pulsar-client-${PULSAR_CPP_CLIENT_VERSION}-1.x86_64.rpm
$ wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/RPMS/apache-pulsar-client-devel-${PULSAR_CPP_CLIENT_VERSION}-1.x86_64.rpm
# debian
$ wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/DEB/apache-pulsar-client.deb
$ wget https://archive.apache.org/dist/pulsar/pulsar-${PULSAR_CPP_CLIENT_VERSION}/DEB/apache-pulsar-client-dev.deb
- Install the Pulsar C++ client.
# rpm
$ rpm -ivh apache-pulsar-client*.rpm
# debian
$ apt install ./apache-pulsar-client*.deb
Install pulsar-client to your project
$ npm install pulsar-client
Sample code
Please refer to examples.
How to build
Install dependent npm modules and build Pulsar client library:
$ git clone https://github.com/apache/pulsar-client-node.git
$ cd pulsar-client-node
$ npm install
Note
If you build
pulsar-client-node onwindows, you need to set the variablePULSAR_CPP_DIRfirst, then install npm (run the commandnpm install) in a Windows command-line tool.
Rebuild Pulsar client library:
$ npm run build
Documentation
- Please see https://pulsar.apache.org/docs/en/client-libraries-node for more details about the Pulsar Node.js client.