Asynchronous wrapper for the python pulsar-client.
Project description
aiopulsar-py
aiopulsar-py is a Python 3.5+ module that makes it possible to interact with pulsar servers with asyncio. aiopulsar-py serves as an asynchronous wrapper for the official python pulsar-client and preserves the look and feel of the original pulsar-client. It is written using the async/await syntax and hence not compatible with Python versions older than 3.5. Internally, aiopulsar-py employs threads to avoid blocking the event loop.
aiopulsar-py takes inspiration from other asyncio wrappers released in the aio-libs project.
Basic example
aiopulsar-py is built around the python pulsar-client
and provides the same api. You just need to use asynchronous context managers and await for every method. Setting up a
pulsar client that can be used to create readers, producers and consumers requires a call to the aiopulsar.connect
method.
import asyncio
import aiopulsar
import pulsar
async def test_example():
topic = "persistent://some-test-topic/"
async with aiopulsar.connect("localhost") as client:
async with client.subscribe(
topic=topic,
subscription_name='my-subscription',
consumer_name="my-consumer",
initial_position=pulsar.InitialPosition.Earliest,
) as consumer:
while True:
msg = await consumer.receive()
print(msg)
loop = asyncio.get_event_loop()
loop.run_until_complete(test_example())
Install
aiopulsar-py cannot be installed on windows systems since the wrapped pulsar-client library only functions on Linux and MacOS. The package is available on PyPi and can be installed with:
pip install aiopulsar-py
Contributing
You can contribute to the project by reporting an issue. This is done via GitHub. Please make sure to include information on your environment and please make sure that you can express the issue with a reproducible test case.
You can also contribute by making pull requests. To install the project please use poetry:
poetry install
The project relies on mypy
, black
and flake8
and these are configured as git hooks.
To configure the git hooks run:
poetry run githooks setup
Every time the git hooks are changed in the [tool.githooks]
section of pyproject.toml
you will need to set up
the git hooks again with the command above.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file aiopulsar_py-0.1.0a0.tar.gz
.
File metadata
- Download URL: aiopulsar_py-0.1.0a0.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.8.10 Linux/5.15.0-56-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d0e6f0d8eb7e232d2b032cfee5f3caafa6353276656a9bfa9f4dcaf286092f7 |
|
MD5 | 4854d437206f3381a894a5c105f59176 |
|
BLAKE2b-256 | e5a7681fb9093308ab506f05c4bad56edaacc64d5b5b35f5332666bffbed455c |
File details
Details for the file aiopulsar_py-0.1.0a0-py3-none-any.whl
.
File metadata
- Download URL: aiopulsar_py-0.1.0a0-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.8.10 Linux/5.15.0-56-generic
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e9e0e009037f5f2dfca2942c4bf049b51985e02700bea6dcd060e0b463d1432 |
|
MD5 | 4093836261936c304b26ec1c151432be |
|
BLAKE2b-256 | 12d569905ec0aacd66571e5cde455842a40298a3eaf2118ee9f808b6ad881ce0 |