Pulsar client libraries
Language-specific client libraries
Pulsar supports the following language-specific client libraries:
Language | Documentation | Release note | Code repo |
---|---|---|---|
Java | User doc API doc | Standalone | Bundled |
C++ | User doc API doc | Standalone | Standalone |
Python | User doc API doc | Standalone | Standalone |
Go client | User doc API doc | Standalone | Standalone |
Node.js | User doc API doc | Standalone | Standalone |
C#/DotPulsar | User doc | Standalone | Standalone |
If you want to create your own client library, read the binary protocol documentation.
Language-agnostic client libraries
Pulsar supports the following language-agnostic client libraries:
Interface | Documentation | Release note | Code repo |
---|---|---|---|
REST | User doc | Bundled | Bundled |
WebSocket | User doc | Standalone | Bundled |
Client / Broker compatibility
A design goal of Pulsar is to ensure full compatibility between all versions of the client and the broker. When a client connects to a broker they agree upon a version of the protocol to use. As a result, new features that rely on an updates to the protocol are only available when using both newer clients and newer brokers.
Feature matrix
The Client Feature Matrix page provides an overview of the latest feature supportability on language-specific clients.
Third-party clients
Besides the officially released clients, multiple projects on developing Pulsar clients are available in different languages.
Want your repository listed here? Click the "Edit this page" button at the bottom of this page.
.NET (C#/F#/VB)
Project | Description | License | Badges |
---|---|---|---|
pulsar-client-dotnet | Apache Pulsar native client for .NET (C#/F#/VB) | MIT |
Go
Project | Description | License | Badges |
---|---|---|---|
pulsar-client-go | A Go client library for Apache Pulsar | Apache-2.0 |
Haskell
Project | Description | License | Badges |
---|---|---|---|
supernova | Apache Pulsar client for Haskell | Apache-2.0 |
Node.js
Project | Description | License | Badges |
---|---|---|---|
pulsar-flex | Pulsar Flex is a modern Apache Pulsar client for Node.js, developed to be independent of C++. | MIT |
PHP
Project | Description | License | Badges |
---|---|---|---|
pulsar-client-php | PHP Native Client library for Apache Pulsar | MIT |
Rust
Project | Description | License | Badges |
---|---|---|---|
pulsar-rs | Rust Client library for Apache Pulsar | Apache-2.0 |
Scala
Project | Description | License | Badges |
---|---|---|---|
pulsar4s | Idiomatic, typesafe, and reactive Scala client for Apache Pulsar | Apache-2.0 | |
neutron | Purely functional Apache Pulsar client for Scala built on top of Fs2 | Apache-2.0 | |
neutron (profunktor's fork) | Fs2-powered Apache Pulsar client with support for Scala 2 and 3 | Apache-2.0 |