Generic ZeroMQ transport, lifecycle, progress, cancellation, viewer-control, and execution-projection primitives.
ZMQServer and ZMQClient are abstract application integration points.
They cannot be instantiated directly:
- a server implements
handle_control_messageandhandle_data_message; - a client implements
_spawn_server_processandsend_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.
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.
python -m pip install zmqruntimeDocumentation: 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/htmlRepository: OpenHCSDev/ZMQRuntime.