Pulsar client libraries

Language-specific client libraries

Pulsar supports the following language-specific client libraries:

LanguageDocumentationRelease noteCode repo
JavaUser doc
API doc
StandaloneBundled
C++User doc
API doc
StandaloneStandalone
PythonUser doc
API doc
StandaloneStandalone
Go clientUser doc
API doc
StandaloneStandalone
Node.jsUser doc
API doc
StandaloneStandalone
C#/DotPulsarUser docStandaloneStandalone

Overview - 图1tip

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:

InterfaceDocumentationRelease noteCode repo
RESTUser docBundledBundled
WebSocketUser docStandaloneBundled

Overview - 图2note

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.

Overview - 图3tip

Want your repository listed here? Click the “Edit this page” button at the bottom of this page.

.NET (C#/F#/VB)

ProjectDescriptionLicenseBadges
pulsar-client-dotnetApache Pulsar native client for .NET (C#/F#/VB)MITGitHub Repo Stars GitHub Last Commit

Go

ProjectDescriptionLicenseBadges
pulsar-client-goA Go client library for Apache PulsarApache-2.0GitHub Repo Stars GitHub Last Commit

Haskell

ProjectDescriptionLicenseBadges
supernovaApache Pulsar client for HaskellApache-2.0GitHub Repo Stars GitHub Last Commit

Node.js

ProjectDescriptionLicenseBadges
pulsar-flexPulsar Flex is a modern Apache Pulsar client for Node.js, developed to be independent of C++.MITGitHub Repo Stars GitHub Last Commit

PHP

ProjectDescriptionLicenseBadges
pulsar-client-phpPHP Native Client library for Apache PulsarMITGitHub Repo Stars GitHub Last Commit

Rust

ProjectDescriptionLicenseBadges
pulsar-rsRust Client library for Apache PulsarApache-2.0GitHub Repo Stars GitHub Last Commit

Scala

ProjectDescriptionLicenseBadges
pulsar4sIdiomatic, typesafe, and reactive Scala client for Apache PulsarApache-2.0GitHub Repo Stars GitHub Last Commit
neutronPurely functional Apache Pulsar client for Scala built on top of Fs2Apache-2.0GitHub Repo Stars GitHub Last Commit
neutron (profunktor’s fork)Fs2-powered Apache Pulsar client with support for Scala 2 and 3Apache-2.0GitHub Repo Stars GitHub Last Commit