Skip to main content

Pulsar client libraries

Language-specific client libraries​

Pulsar supports the following language-specific client libraries:

LanguageUser docAPI docRelease notesCode repo
JavaUser docAPI docNotesgithub.com/apache/pulsar/tree/master/pulsar-client
Java (Reactive Streams)User docAPI docNotesgithub.com/apache/pulsar-client-reactive
C++User docAPI docNotesgithub.com/apache/pulsar-client-cpp
PythonUser docAPI docNotesgithub.com/apache/pulsar-client-python
Go clientUser docAPI docNotesgithub.com/apache/pulsar-client-go
Node.jsUser doc—Notesgithub.com/apache/pulsar-client-node
C#/DotPulsarUser doc—Notesgithub.com/apache/pulsar-dotpulsar
tip

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 docNotesgithub.com/apache/pulsar/tree/master/pulsar-broker
WebSocketUser docNotesgithub.com/apache/pulsar/tree/master/pulsar-websocket
note

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.

tip

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

Alternative .NET (C#/F#/VB) client​

This is an alternative for Apache Pulsar project's dotPulsar client.

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

Alternative Go client​

This is an alternative Apache Pulsar project's Go client

ProjectDescriptionLicenseBadges
pulsar-client-goAn alternative 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

JMS​

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