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.3.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for nats_py_sync-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fccf57dc6dd34cc62650f344fcdf2ac2e8d0b8dcb9db5db4e66cbe9b41e9c301
MD5 0520bb5e3bb712a19ee072e653b15c9b
BLAKE2b-256 9dbf6a8d924cb35a657cbd4ca2873738625383fe298f1f0d48d27b2b0faad09d

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