Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiopulsar_py-0.1.0a0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distribution

aiopulsar_py-0.1.0a0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

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

Hashes for aiopulsar_py-0.1.0a0.tar.gz
Algorithm Hash digest
SHA256 1d0e6f0d8eb7e232d2b032cfee5f3caafa6353276656a9bfa9f4dcaf286092f7
MD5 4854d437206f3381a894a5c105f59176
BLAKE2b-256 e5a7681fb9093308ab506f05c4bad56edaacc64d5b5b35f5332666bffbed455c

See more details on using hashes here.

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

Hashes for aiopulsar_py-0.1.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 5e9e0e009037f5f2dfca2942c4bf049b51985e02700bea6dcd060e0b463d1432
MD5 4093836261936c304b26ec1c151432be
BLAKE2b-256 12d569905ec0aacd66571e5cde455842a40298a3eaf2118ee9f808b6ad881ce0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page