Skip to main content

Python bindings for zenoh-plugin-grpc

Project description

zenoh-grpc-python

Python bindings for zenoh-plugin-grpc.

Install

From this directory:

maturin develop

Or build a wheel:

maturin build

Or simply pip install:

pip install -e .

Start A Server First

Use either:

cargo run -p zenoh-bridge-grpc

or zenohd with the plugin loaded.

Minimal Example

import zenoh_grpc

with zenoh_grpc.Session.connect() as session:
    pub = session.declare_publisher("demo/example", encoding="text/plain")
    pub.put(b"hello", encoding="text/plain")

Session.connect() defaults to unix:///tmp/zenoh-grpc.sock, so the shortest form is:

with zenoh_grpc.Session.connect() as session:
    ...

Python-Style Optional Parameters

The binding keeps Python-style direct function calls and exposes extra gRPC options as optional keyword arguments. If you omit them, the plugin now falls back to Zenoh's native defaults instead of hard-coded wrapper defaults.

put/delete/reply* calls are enqueue-style: success means the request entered a local bounded queue. Slow receivers are also isolated behind local bounded queues, and when a queue is full the oldest item is dropped. Subscriber.dropped_count(), QueryStream.dropped_count(), ReplyStream.dropped_count(), Publisher.send_dropped_count(), and Queryable.send_dropped_count() expose those counters.

declare_subscriber(key_expr, callback=None, ...) and declare_queryable(key_expr, callback=None, ...) support inline callbacks. When a callback is provided, the binding runs it on a dedicated OS thread for that object and acquires the GIL for each event. Callback mode is exclusive with manual receive APIs. Queryables expose receiver() for pull mode, yielding a QueryStream that produces Query objects, and Session.get() / Querier.get() return iterable ReplyStream objects.

After replying to a query, call query.drop() when you are done, or use with receiver.recv() as query: so the query is finalized automatically on context-manager exit.

import zenoh_grpc

with zenoh_grpc.Session.connect() as session:
    pub = session.declare_publisher(
        "demo/example",
        encoding="text/plain",
        express=True,
    )
    pub.put(b"hello", encoding="text/plain")

    for reply in session.get("demo/example", timeout_ms=3000):
        if reply.ok:
            print(reply.sample.key_expr, reply.sample.payload)

Supported endpoint formats:

  • unix:///tmp/zenoh-grpc.sock
  • tcp://127.0.0.1:7335

Examples

See:

  • examples/pub.py
  • examples/sub.py
  • examples/sub_callback.py
  • examples/queryable.py
  • examples/queryable_callback.py
  • examples/querier.py
  • examples/get.py

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

zenoh_grpc-1.7.2.dev2026042203.tar.gz (44.1 kB view details)

Uploaded Source

Built Distributions

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

zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.31+ x86-64

zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_aarch64.whl (2.2 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.31+ ARM64

File details

Details for the file zenoh_grpc-1.7.2.dev2026042203.tar.gz.

File metadata

  • Download URL: zenoh_grpc-1.7.2.dev2026042203.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for zenoh_grpc-1.7.2.dev2026042203.tar.gz
Algorithm Hash digest
SHA256 2ae960d8336e413465f3b421e32d64c76cebf08459a5dfec08340602e0a68cb9
MD5 44a8ea468ac7c7bf521726e195078c6e
BLAKE2b-256 7b61c75d0573dc9f314a5c244359705f31f2a315786d6b3a28b2e68bf8376989

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenoh_grpc-1.7.2.dev2026042203.tar.gz:

Publisher: nightly-build.yml on shupx/zenoh-plugin-grpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 17ec5b05a601c5335dc7d7af93fde490358a3841a5ff2481be40936587dcbd11
MD5 c841ff14bde586640a8f2f135df3f93d
BLAKE2b-256 a6c90fa277ddb4129a92bd950afcf0c87da5d37d61442044a7900d4dc8d1a531

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_x86_64.whl:

Publisher: nightly-build.yml on shupx/zenoh-plugin-grpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d07d6aadc27d3c10694ba8d94847596a51fbb6e0a79fcb98252184f65bfc9e10
MD5 6d8b44fdc76a2600f8f6b4b8ba2817d2
BLAKE2b-256 6a0b097a0dad8bf1ced73f772c56ed9347820f1aa84fb1fa56def3cd2b126d73

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenoh_grpc-1.7.2.dev2026042203-cp38-abi3-manylinux_2_31_aarch64.whl:

Publisher: nightly-build.yml on shupx/zenoh-plugin-grpc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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