The Pulsar Python client
Pulsar version 2.0
The documentation that you’re reading is for the 2.0 release of Apache Pulsar. For more information on Pulsar 2.0, see this guide.
The Pulsar Python client library is a wrapper over the existing C++ client library and exposes all of the same features. You can find the code in the python
subdirectory of the C++ client code.
Installation
You can install the pulsar-client
library either via PyPi, using pip, or by building the library from source.
Installation using pip
To install the pulsar-client
library as a pre-built package using the pip package manager:
$ pip install pulsar-client
Installation via PyPi is available for the following Python versions:
Platform | Supported Python versions |
---|---|
MacOS 10.12 (Sierra) and 10.13 (High Sierra) | 2.7, 3.6 |
Linux | 2.7, 3.3, 3.4, 3.5, 3.6 |
Installing from source
To install the pulsar-client
library by building from source, follow these instructions and compile the Pulsar C++ client library. That will also build the Python binding for the library.
To install the built Python bindings:
$ git clone https://github.com/apache/pulsar
$ cd pulsar/pulsar-client-cpp/python
$ sudo python setup.py install
API Reference
The complete Python API reference is available at api/python.
Examples
Below you’ll find a variety of Python code examples for the pulsar-client
library.
Producer example
This creates a Python producer for the my-topic
topic and send 10 messages on that topic:
import pulsar
client = pulsar.Client('pulsar://localhost:6650')
producer = client.create_producer('my-topic')
for i in range(10):
producer.send(('Hello-%d' % i).encode('utf-8'))
client.close()
Consumer example
This creates a consumer with the my-subscription
subscription on the my-topic
topic, listen for incoming messages, print the content and ID of messages that arrive, and acknowledge each message to the Pulsar broker:
consumer = client.subscribe('my-topic', 'my-subscription')
while True:
msg = consumer.receive()
print("Received message '%s' id='%s'", msg.data(), msg.message_id())
consumer.acknowledge(msg)
client.close()
Reader interface example
You can use the Pulsar Python API to use the Pulsar reader interface. Here’s an example:
# MessageId taken from a previously fetched message
msg_id = msg.message_id()
reader = client.create_reader('my-topic', msg_id)
while True:
msg = reader.receive()
print("Received message '%s' id='%s'", msg.data(), msg.message_id())
# No acknowledgment