Skip to main content

Synchronous wrapper around the native nats async library

Project description

nats-py-sync

Synchronous wrapper around native nats-py async library

This is not a comprehensive, feature complete wrapper. It has the main features described in the nats-py readme


[!TIP] Who is this library for? This library if mainly useful for people who need nats functionality in their non-async based python code. If you can use async in your codebase, use nats-py directly


[!TIP] How does this library work? The NATSContext object maintains its own event loop and queries nats.NATSConnection tasks to complete and return. NATSContext calls are blocking until the nats.NATSConnection futures finish

Installation

pip install nats-py-sync

Publisher/Subscriber

# subscriber
import nats_sync


nc = nats_sync.connect("nats://localhost:4222")
sub = nc.subscribe("hello")
while True:
    msg = sub.recv()
    print(f"Received {msg.data.decode()} on topic {msg.subject}")
# publisher
import time
import nats_sync


NATS_TOPIC = "hello"

nc = nats_sync.connect("nats://localhost:4222")
while True:
    nc.publish(NATS_TOPIC, b"hello world")
    print(f"Published message on {NATS_TOPIC}")
    time.sleep(0.1)

Request/Response

# request
import time
import nats_sync


client = nats_sync.connect("nats://localhost:4222")
while True:
    msg = client.request("request", "hello world".encode())
    print(f"Received Reply {msg.data.decode()} on topic {msg.subject}")
    time.sleep(1.0)
# response
import nats_sync


nc = nats_sync.connect("nats://localhost:4222")
sub = nc.subscribe("request")
while True:
    msg = sub.recv()
    print(f"Received {msg.data.decode()} on topic {msg.subject}")
    sub.respond(msg, "Reply".encode())

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nats_py_sync-0.2.1-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file nats_py_sync-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for nats_py_sync-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 87ba6c420f8658abd2025bf826560489bfd4e7c7f0ae16bc10b32881e668d307
MD5 b552d91957a84e2ded06cef98a9b5063
BLAKE2b-256 f13201678939fe6ea9734d0eda9b8c33c399a7e64575c35a310edf45f58bbe29

See more details on using hashes here.

Supported by

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