Skip to main content

ZMQRuntime

Generic ZeroMQ transport, lifecycle, progress, cancellation, viewer-control, and execution-projection primitives.

Important boundary

ZMQServer and ZMQClient are abstract application integration points. They cannot be instantiated directly:

  • a server implements handle_control_message and handle_data_message;
  • a client implements _spawn_server_process and send_data.

The package does not provide a generic send_request API or define an application's execution payload. Applications subclass the bases and map their typed domain requests onto the transport.

Transport configuration

from zmqruntime import TransportMode, ZMQConfig
from zmqruntime.transport import get_zmq_transport_url

config = ZMQConfig(control_port_offset=1000)
data_url = get_zmq_transport_url(
    7777,
    host="localhost",
    mode=TransportMode.TCP,
    config=config,
)

Application subclasses can use serve_forever, readiness probes, control port helpers, progress records, cancellation messages, lifecycle engines, and projection adapters without duplicating socket or process machinery.

Execution completion

Execution clients with a registered progress subscription wake on the server's terminal ExecutionStatusSnapshot. The existing callback sequence barrier still waits for every admitted progress callback. Registration replays the latest progress and terminal record; a missing terminal notification recovers through STATUS using the configured wait interval. Clients without progress registration continue to use STATUS.

Applications that enrich successful results override ExecutionServer.finalize_execution_record(record). This record-only hook runs under the lifecycle lock after task completion and before STATUS or terminal publication can observe the record. It must not publish progress or acquire transport resources. The task's recorded end time retains its existing boundary. Already admitted progress is published before the terminal record; new progress admissions after a terminal transition are discarded.

Installation

python -m pip install zmqruntime

Documentation: zmqruntime.readthedocs.io.

For local development, install the documentation dependencies and run a clean, warning-fatal build:

python -m pip install -e ".[dev,docs]"
python -m sphinx -E -W --keep-going -b html docs/source docs/_build/html

Repository: OpenHCSDev/ZMQRuntime.

Metadata

Release files for zmqruntime 0.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zmqruntime 0.6.4
File Size Uploaded
zmqruntime-0.6.4.tar.gz 727.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zmqruntime 0.6.4
File Interpreter ABI Platform
zmqruntime-0.6.4-py3-none-any.whl Python 3 none any Details

Total release size: 826.6 kB

Release files / zmqruntime-0.6.4.tar.gz

Download URL zmqruntime-0.6.4.tar.gz
Size 727.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8e980bc4d0a2945c65d1dc94e9eb4d1a8599c9ee9cff680fe828ec9bda59314b
BLAKE2b-256 checksum
How to use checksums
8264df1de7577e7ae986625feb242e217477bc2dd29b9e905754324911f17eb1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / zmqruntime-0.6.4-py3-none-any.whl

Download URL zmqruntime-0.6.4-py3-none-any.whl
Size 99.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6869ecb54b1b4487007e0f07e8edcd9e48bf9616b544201793cd830c33e5dde2
BLAKE2b-256 checksum
How to use checksums
1c777451f76f64db3e9616461746be8841183962fb947df11cbc2e960071a371
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.6.5

2 release files

This release

0.6.4 This release

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.2.24

2 release files

0.2.23

2 release files

0.2.22

2 release files

0.2.21

2 release files

0.2.19

2 release files

0.2.18

2 release files

0.2.17

2 release files

0.2.16

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.13

2 release files

0.2.12

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page