Gr1N / nats-python

Python client for NATS messaging system
https://pypi.org/project/nats-python/
MIT License
89 stars 22 forks source link
nats nats-client natsio python python-client

nats-python

Build Status codecov PyPI PyPI - Downloads

Python client for NATS messaging system.

This project is a replacement for abandoned pynats. nats-python supports only Python 3.6+ and fully covered with typings.

Go to the asyncio-nats project, if you're looking for asyncio implementation.

Installation

$ pip install nats-python

Usage

from pynats import NATSClient

with NATSClient() as client:
    # Connect
    client.connect()

    # Subscribe
    def callback(msg):
        print(f"Received a message with subject {msg.subject}: {msg}")

    client.subscribe(subject="test-subject", callback=callback)

    # Publish a message
    client.publish(subject="test-subject", payload=b"test-payload")

    # wait for 1 message
    client.wait(count=1)

Contributing

To work on the nats-python codebase, you'll want to clone the project locally and install the required dependencies via poetry:

$ git clone git@github.com:Gr1N/nats-python.git
$ make install

To run tests and linters use command below:

$ make lint && make test

If you want to run only tests or linters you can explicitly specify which test environment you want to run, e.g.:

$ make lint-black

License

nats-python is licensed under the MIT license. See the license file for details.