pyzmq/docs/source/api/zmq.md

291 lines
4.9 KiB
Markdown

# zmq
```{eval-rst}
.. automodule:: zmq
```
```{currentmodule} zmq
```
## Basic Classes
````{note}
For typing purposes, {class}`.zmq.Context` and {class}`.zmq.Socket` are Generics,
which means they will accept any Context or Socket implementation.
The base {class}`zmq.Context()` constructor returns the type
`zmq.Context[zmq.Socket[bytes]]`.
If you are using type annotations and want to _exclude_ the async subclasses,
use the resolved types instead of the base Generics:
```python
ctx: zmq.Context[zmq.Socket[bytes]] = zmq.Context()
sock: zmq.Socket[bytes]
```
in pyzmq 26, these are available as the Type Aliases (not actual classes!):
```python
ctx: zmq.SyncContext = zmq.Context()
sock: zmq.SyncSocket
```
````
## {class}`Context`
```{eval-rst}
.. autoclass:: Context
:members:
:inherited-members:
:exclude-members: sockopts, closed, __del__, __enter__, __exit__, __copy__, __deepcopy__, __delattr__, __getattr__, __setattr__,
.. attribute:: closed
boolean - whether the context has been terminated.
If True, you can no longer use this Context.
```
## {class}`Socket`
```{eval-rst}
.. autoclass:: Socket
:members:
:inherited-members:
:exclude-members: closed, context, getsockopt_unicode, recv_unicode, setsockopt_unicode, send_unicode, __del__, __enter__, __exit__, __copy__, __deepcopy__, __delattr__, __getattr__, __setattr__,
.. attribute:: closed
boolean - whether the socket has been closed.
If True, you can no longer use this Socket.
.. attribute:: copy_threshold
integer - size (in bytes) below which messages
should always be copied.
Zero-copy support has nontrivial overhead
due to the need to coordinate garbage collection
with the libzmq IO thread,
so sending small messages (typically < 10s of kB)
with ``copy=False`` is often more expensive
than with ``copy=True``.
The initial default value is 65536 (64kB),
a reasonable default based on testing.
Defaults to :const:`zmq.COPY_THRESHOLD` on socket construction.
Setting :const:`zmq.COPY_THRESHOLD` will define the default
value for any subsequently created sockets.
.. versionadded:: 17
```
## {class}`Frame`
```{eval-rst}
.. autoclass:: Frame
:members:
:inherited-members:
```
## {class}`MessageTracker`
```{eval-rst}
.. autoclass:: MessageTracker
:members:
:inherited-members:
```
## {class}`Poller`
```{eval-rst}
.. autoclass:: Poller
:members:
:inherited-members:
```
```{eval-rst}
.. autofunction:: zmq.select
```
## Constants
All libzmq constants are available as top-level attributes
(`zmq.PUSH`, etc.),
as well as via enums (`zmq.SocketType.PUSH`, etc.).
```{versionchanged} 23
constants for unavailable socket types
or draft features will always be defined in pyzmq,
whether the features themselves are available or not.
```
```{versionadded} 23
Each category of zmq constant is now available as an IntEnum.
```
```{eval-rst}
.. data:: COPY_THRESHOLD
The global default "small message" threshold for copying when `copy=False`.
Copying has a thread-coordination cost, so zero-copy only has a benefit for sufficiently large messages.
```
```{eval-rst}
.. autoenum:: SocketType
```
```{eval-rst}
.. autoenum:: SocketOption
```
```{eval-rst}
.. autoenum:: Flag
```
```{eval-rst}
.. autoenum:: PollEvent
```
```{eval-rst}
.. autoenum:: ContextOption
```
```{eval-rst}
.. autoenum:: MessageOption
```
```{eval-rst}
.. autoenum:: Event
```
```{eval-rst}
.. autoenum:: NormMode
```
```{eval-rst}
.. autoenum:: RouterNotify
```
```{eval-rst}
.. autoenum:: ReconnectStop
```
```{eval-rst}
.. autoenum:: SecurityMechanism
```
```{eval-rst}
.. autoenum:: DeviceType
```
```{eval-rst}
.. autoenum:: Errno
```
## Exceptions
### {class}`ZMQError`
```{eval-rst}
.. autoclass:: ZMQError
:members:
:inherited-members:
```
### {class}`ZMQVersionError`
```{eval-rst}
.. autoclass:: ZMQVersionError
:members:
:inherited-members:
```
### {class}`Again`
```{eval-rst}
.. autoclass:: Again
```
### {class}`ContextTerminated`
```{eval-rst}
.. autoclass:: ContextTerminated
```
### {class}`NotDone`
```{eval-rst}
.. autoclass:: NotDone
```
### {class}`ZMQBindError`
```{eval-rst}
.. autoclass:: ZMQBindError
```
## Functions
```{eval-rst}
.. autofunction:: zmq.zmq_version
```
```{eval-rst}
.. autofunction:: zmq.pyzmq_version
```
```{eval-rst}
.. autofunction:: zmq.zmq_version_info
```
```{eval-rst}
.. autofunction:: zmq.pyzmq_version_info
```
```{eval-rst}
.. autofunction:: zmq.has
```
```{eval-rst}
.. autofunction:: zmq.device
```
```{eval-rst}
.. autofunction:: zmq.proxy
```
```{eval-rst}
.. autofunction:: zmq.proxy_steerable
```
```{eval-rst}
.. autofunction:: zmq.curve_public
```
```{eval-rst}
.. autofunction:: zmq.curve_keypair
```
```{eval-rst}
.. autofunction:: zmq.get_includes
```
```{eval-rst}
.. autofunction:: zmq.get_library_dirs
```
```{eval-rst}
.. autofunction:: zmq.strerror
```