---
id: cpp-setup
title: Set up Pulsar C++ client
sidebar_label: "Set up"
description: Learn how to set up C++ client library in Pulsar.
---

````mdx-code-block
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
````

To set up C++ client library in Pulsar, complete the following steps.

## Step 1: Install C++ client library

Use one of the following methods to install a Pulsar C++ client.

### Brew

Use [Homebrew](http://brew.sh/) to install the latest tagged version with the library and headers:

```bash
brew install libpulsar
```

### Deb

1. Download any one of the Deb packages:

   <Tabs>
   <TabItem value="client">

   ```bash
   wget @pulsar:deb:client@
   ```

   This package contains shared library `libpulsar.so`.

   </TabItem>
   <TabItem value="client-devel">

   ```bash
   wget @pulsar:deb:client-devel@
   ```

   This package contains static libraries: `libpulsar.a`, `libpulsarwithdeps.a`, and C/C++ headers.

   </TabItem>
   </Tabs>

2. Install the package using the following command:

   ```bash
   apt install ./apache-pulsar-client*.deb
   ```

Now, you can see Pulsar C++ client libraries installed under the `/usr/lib` directory.

### RPM

1. Download any one of the RPM packages:

   <Tabs>
   <TabItem value="client">

   ```bash
   wget @pulsar:dist_rpm:client@
   ```

   This package contains shared library `libpulsar.so`.

   </TabItem>
   <TabItem value="client-debuginfo">

   ```bash
   wget @pulsar:dist_rpm:client-debuginfo@
   ```

   This package contains debug symbols for `libpulsar.so`.

   </TabItem>
   <TabItem value="client-devel">

   ```bash
   wget @pulsar:dist_rpm:client-devel@
   ```

   This package contains static libraries: `libpulsar.a`, `libpulsarwithdeps.a` and C/C++ headers.

   </TabItem>
   </Tabs>

2. Install the package using the following command:

   ```bash
   rpm -ivh apache-pulsar-client*.rpm
   ```

Now, you can see Pulsar C++ client libraries installed under the `/usr/lib` directory.

:::note

If you get an error like "libpulsar.so: cannot open shared object file: No such file or directory" when starting a Pulsar client, you need to run `ldconfig` first.

:::

### APK

```bash
apk add --allow-untrusted ./apache-pulsar-client-*.apk
```

## Step 2: Connect to Pulsar cluster

To connect to Pulsar using client libraries, you need to specify a [Pulsar protocol](pathname:///docs/developing-binary-protocol) URL.

You can assign Pulsar protocol URLs to specific clusters and use the `pulsar` scheme. The following is an example of `localhost` with the default port `6650`:

```http
pulsar://localhost:6650
```

If you have multiple brokers, separate `IP:port` by commas:

```http
pulsar://localhost:6550,localhost:6651,localhost:6652
```

If you use [mTLS](pathname:///docs/security-tls-authentication) authentication, add `+ssl` in the scheme:

```http
pulsar+ssl://pulsar.us-west.example.com:6651
```