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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for nats_py_sync-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8ee45b521aa8447f519544e711ca8daa6c5d61158bf3070186695a0562fc714d
MD5 ab33688d0f219fa006cda8b273b108f7
BLAKE2b-256 4df0c2b062838e141984b8356b3320583737ca53e2734a8c2a2d1f745740cef1

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