> This page is for version dev.
> For other versions, use one of these documentation indexes:
> - Latest (v1.6.1) (default): https://docs.nvidia.com/dynamo/latest/llms.txt
> - dev: https://docs.nvidia.com/dynamo/dev/llms.txt
> - v1.6.1: https://docs.nvidia.com/dynamo/v1.6.1/llms.txt
> - v1.6.0: https://docs.nvidia.com/dynamo/v1.6.0/llms.txt
> - v1.5.1: https://docs.nvidia.com/dynamo/v1.5.1/llms.txt
> - v1.5.0: https://docs.nvidia.com/dynamo/v1.5.0/llms.txt
> - v1.4.2: https://docs.nvidia.com/dynamo/v1.4.2/llms.txt
> - v1.4.1: https://docs.nvidia.com/dynamo/v1.4.1/llms.txt
> - v1.4.0: https://docs.nvidia.com/dynamo/v1.4.0/llms.txt
> - v1.3.0: https://docs.nvidia.com/dynamo/v1.3.0/llms.txt
> - v1.2.1: https://docs.nvidia.com/dynamo/v1.2.1/llms.txt
> - v1.2.0: https://docs.nvidia.com/dynamo/v1.2.0/llms.txt
> - v1.1.1: https://docs.nvidia.com/dynamo/v1.1.1/llms.txt
> - v1.1.0: https://docs.nvidia.com/dynamo/v1.1.0/llms.txt
> - v1.0.2: https://docs.nvidia.com/dynamo/v1.0.2/llms.txt
> - v1.0.1: https://docs.nvidia.com/dynamo/v1.0.1/llms.txt
> - v1.0.0: https://docs.nvidia.com/dynamo/v1.0.0/llms.txt
> - v0.9.1: https://docs.nvidia.com/dynamo/v-0-9-1/llms.txt
> - v0.9.0: https://docs.nvidia.com/dynamo/v-0-9-0/llms.txt
> - v0.8.1: https://docs.nvidia.com/dynamo/v-0-8-1/llms.txt
> - v0.8.0: https://docs.nvidia.com/dynamo/v-0-8-0/llms.txt
> - v0.7.1: https://docs.nvidia.com/dynamo/v-0-7-1/llms.txt
> - v0.7.0: https://docs.nvidia.com/dynamo/v-0-7-0/llms.txt

> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://docs.nvidia.com/dynamo/llms.txt. For full content including API reference and SDK examples, see https://docs.nvidia.com/dynamo/llms-full.txt.

# dynamo.nixl_connect

`dynamo.nixl_connect` publishes 17 classes and 0 functions. Source: [`lib/bindings/python/src/dynamo/nixl_connect/__init__.py`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py)

#### AbstractOperation (class)

Abstract base class for awaitable NIXL based RDMA operations.

```python
from dynamo.nixl_connect import AbstractOperation
```

```python
AbstractOperation(connection: Connection, operation_kind: OperationKind, local_descriptors: Descriptor | list[Descriptor], remote_descriptors: Optional[Descriptor | list[Descriptor]], notification_key: Optional[str]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L105`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L105)

**Public methods**

#### **init**

```python
__init__(connection: Connection, operation_kind: OperationKind, local_descriptors: Descriptor | list[Descriptor], remote_descriptors: Optional[Descriptor | list[Descriptor]], notification_key: Optional[str]) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L110)

#### wait_for_completion

```python
wait_for_completion() -> None
```

Blocks the caller asynchronously until the operation has completed.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L249)

#### ActiveOperation (class)

Abstract class for active operations that initiates a NIXL based RDMA transfer based `RdmaMetadata` provided by the remote worker's corresponding `PassiveOperation`.

```python
from dynamo.nixl_connect import ActiveOperation
```

```python
ActiveOperation(remote: Remote, operation_kind: OperationKind, local_descriptors: Descriptor | list[Descriptor], remote_descriptors: Descriptor | list[Descriptor], notification_key: str) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L283`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L283)

**Public methods**

#### **init**

```python
__init__(remote: Remote, operation_kind: OperationKind, local_descriptors: Descriptor | list[Descriptor], remote_descriptors: Descriptor | list[Descriptor], notification_key: str) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L289)

#### cancel

```python
cancel() -> None
```

Cancels the operation. No affect if the operation has already completed or errored, or has been cancelled.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L518)

#### Connection (class)

No summary available.

```python
from dynamo.nixl_connect import Connection
```

```python
Connection(connector: Connector, number: int)
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L586`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L586)

**Public methods**

#### **init**

```python
__init__(connector: Connector, number: int)
```

Creates a new Connection instance.

**Parameters**

**`connector`** `Connector`

The connector associated with this connection.

---

**`number`** `int`

The connection number.
Used to create a unique name for the connection.

---

**Raises**

* `TypeError` — When `connector` is provided and not of type `dynamo.nixl_connect.Connector`.
* `TypeError` — When `number` is provided and not of type `int`.
* `ValueError` — When `number` is provided and not greater than 0.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L587)

#### acquire_remote_ref

```python
acquire_remote_ref(name: str) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L664)

#### release_remote_ref

```python
release_remote_ref(name: str) -> bool
```

Returns True when the last reference is released.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L668)

#### initialize

```python
initialize() -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L680)

#### Connector (class)

Core class for managing the connection between workers in a distributed environment. Use this class to create readable and writable operations, or read and write data to remote workers.

```python
from dynamo.nixl_connect import Connector
```

```python
Connector(worker_id: Optional[str] = None) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L692`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L692)

**Public methods**

#### **init**

```python
__init__(worker_id: Optional[str] = None) -> None
```

Creates a new Connector instance.

**Parameters**

**`worker_id`** `Optional[str]`

Unique identifier of the worker, defaults to a new UUID when `None`.

---

**Raises**

* `TypeError` — When `worker_id` is provided and not of type `uuid.UUID`.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L698)

#### begin_read

```python
begin_read(remote_metadata: RdmaMetadata, local_descriptors: Descriptor | list[Descriptor]) -> ReadOperation
```

Creates a read operation for fulfilling a remote readable operation.

**Parameters**

**`remote_metadata`** `RdmaMetadata`

RDMA metadata from a remote worker that has created a readable operation.

---

**`local_descriptors`** `Descriptor | list[Descriptor]`

Local descriptor(s) to receive data from the remote worker described by `remote_metadata`.

---

**Returns**

* `ReadOperation` — Awaitable read operation that can be used to transfer data from a remote worker.

**Raises**

* `TypeError` — When `remote_metadata` is not of type `RdmaMetadata`.
* `TypeError` — When `local_descriptors` is not of type `dynamo.nixl_connect.Descriptor` or `list[dynamo.nixl_connect.Descriptor]`.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L778)

#### begin_write

```python
begin_write(local_descriptors: Descriptor | list[Descriptor], remote_metadata: RdmaMetadata) -> WriteOperation
```

Creates a write operation for transferring data to a remote worker.

**Parameters**

**`local_descriptors`** `Descriptor | list[Descriptor]`

Local descriptors of one or more data objects to be transferred to the remote worker.

---

**`remote_metadata`** `RdmaMetadata`

Serialized request from a remote worker that has created a readable operation.

---

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L826)

#### create_readable

```python
create_readable(local_descriptors: Descriptor | list[Descriptor]) -> ReadableOperation
```

Creates a readable operation for transferring data from a remote worker.

**Returns**

* `ReadableOperation` — A readable operation that can be used to transfer data from a remote worker.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L864)

#### create_writable

```python
create_writable(local_descriptors: Descriptor | list[Descriptor]) -> WritableOperation
```

Creates a writable operation for transferring data to a remote worker.

**Returns**

* `WritableOperation` — A writable operation that can be used to transfer data to a remote worker.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L880)

#### warmup

```python
warmup() -> None
```

Create the shared NIXL agent before the first transfer.

Repeated calls reuse the same connection as transfer operations. Setup
errors propagate to the caller so startup can fail before serving traffic.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L896)

#### initialize

```python
initialize() -> None
```

Deprecated no-op; use warmup() for eager NIXL agent creation.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L904)

#### Descriptor (class)

Memory descriptor that ensures memory is registered w/ NIXL, used for transferring data between workers.

```python
from dynamo.nixl_connect import Descriptor
```

```python
Descriptor(data: torch.Tensor | tuple[array_module.ndarray, Device | str] | bytes | tuple[int, int, Device | str, Any]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L925`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L925)

**Public methods**

#### **init**

```python
__init__(data: torch.Tensor | tuple[array_module.ndarray, Device | str] | bytes | tuple[int, int, Device | str, Any]) -> None
```

Memory descriptor for transferring data between workers.

**Parameters**

**`data`** `torch.Tensor | tuple[ndarray, Device | str] | bytes | tuple[int, int, Device | str, Any]`

The data to be transferred.

When `torch.Tensor` is provided, the attributes of the tensor will be used to create the descriptor.

When `tuple[ndarray, Device]` is provided, the tuple must contain:

* `ndarray`: The CuPy or NumPy array to be transferred.
* `Device`: Either a `dynamo.nixl_connect.Device` or a string representing the device type (e.g., "cuda" or "cpu").

When `bytes` is provided, the pointer and size derived from the bytes object and memory type will be assumed to be CPU.

When `tuple[int, int, Device|str, Any]` is provided, the tuple must contain the following elements:

* `int`: Pointer to the data in memory.
* `int`: Size of the data in bytes.
* `Device`: Either a `dynamo.nixl_connect.Device` or a string representing the device type (e.g., "cuda" or "cpu").
* `Any`: Optional reference to the data (e.g., the original tensor or bytes object).
  This is useful for keeping a reference to the data in memory, but it is not required.

---

**Raises**

* `ValueError` — When `data` is `None`.
* `TypeError` — When `data` is not a valid type (i.e., not `torch.Tensor`, `bytes`, or a valid tuple).
* `TypeError` — When `data` is a tuple but the elements are not of the expected types (i.e., \[`ndarray`, `Device|str`] OR \[`int`, `int`, `Device|str`, `Any`]).

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L930)

#### from_serialized

```python
from_serialized(serialized: SerializedDescriptor) -> Descriptor
```

Deserializes a `SerializedDescriptor` into a `Descriptor` object.

**Parameters**

**`serialized`** `SerializedDescriptor`

The serialized descriptor to deserialize.

---

**Returns**

* `Descriptor` — The deserialized descriptor.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1123)

#### deregister_with_connector

```python
deregister_with_connector(connection: Connection) -> None
```

Deregisters the memory of the descriptor with NIXL.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1159)

#### register_with_connector

```python
register_with_connector(connection: Connection) -> None
```

Registers the memory of the descriptor with NIXL.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1187)

#### Device (class)

Represents a device in the system.

```python
from dynamo.nixl_connect import Device
```

```python
Device(metadata: str | tuple[DeviceKind, int]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1289`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1289)

**Public methods**

#### **init**

```python
__init__(metadata: str | tuple[DeviceKind, int]) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1294)

#### DeviceKind (class)

Type of memory a descriptor has been allocated to.

```python
from dynamo.nixl_connect import DeviceKind
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1359`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1359)

#### OperationKind (class)

Kind of an operation.

```python
from dynamo.nixl_connect import OperationKind
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1402`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1402)

#### OperationStatus (class)

Status of an operation.

```python
from dynamo.nixl_connect import OperationStatus
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1420`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1420)

#### PassiveOperation (class)

Abstract class for common functionality of passive operations.

```python
from dynamo.nixl_connect import PassiveOperation
```

```python
PassiveOperation(connection: Connection, operation_kind: OperationKind, local_descriptors: Descriptor | list[Descriptor]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1458`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1458)

**Public methods**

#### **init**

```python
__init__(connection: Connection, operation_kind: OperationKind, local_descriptors: Descriptor | list[Descriptor]) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1463)

#### metadata

```python
metadata(hex_encode: bool = False) -> RdmaMetadata
```

Gets the request descriptor for the operation.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1526)

#### wait_for_completion

```python
wait_for_completion() -> None
```

Blocks the caller asynchronously until the operation has completed.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1612)

#### RdmaMetadata (class)

Pydantic serialization type for describing the passive side of a transfer.

```python
from dynamo.nixl_connect import RdmaMetadata
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1764`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1764)

**Public methods**

#### to_descriptors

```python
to_descriptors() -> Descriptor | list[Descriptor]
```

Deserializes the request descriptor into a `dynamo.nixl_connect.Descriptor` or list of `dynamo.nixl_connect.Descriptor` objects.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1779)

#### validate_operation_kind

```python
validate_operation_kind(cls, v: int) -> int
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1791)

#### ReadOperation (class)

Operation that initiates an RDMA read operation to transfer data from a remote worker's `ReadableOperation`, as described by `remote_metadata`, to local buffers.

```python
from dynamo.nixl_connect import ReadOperation
```

```python
ReadOperation(connection: Connection, remote_metadata: RdmaMetadata, local_descriptors: Descriptor | list[Descriptor]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1620`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1620)

**Public methods**

#### **init**

```python
__init__(connection: Connection, remote_metadata: RdmaMetadata, local_descriptors: Descriptor | list[Descriptor]) -> None
```

Creates a new instance of `ReadOperation`, registers `local_descriptors` with NIXL, and begins an RDMA read operation which will transfer data described by `remote_metadata` to `local_descriptors`.

**Parameters**

**`connection`** `Connection`

Connection instance to use for the operation.

---

**`remote_metadata`** `RdmaMetadata`

Serialized request from the remote worker.

---

**`local_descriptors`** `Descriptor | list[Descriptor]`

Local descriptor(s) to to receive the data from the remote worker.

---

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1626)

#### cancel

```python
cancel() -> None
```

Cancels the operation. No affect if the operation has already completed or errored, or been cancelled.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1698)

#### results

```python
results() -> list[Descriptor]
```

Gets the results of the operation. Returns a single descriptor if only one was requested, or a list of descriptors if multiple were requested.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1705)

#### wait_for_completion

```python
wait_for_completion() -> None
```

Blocks the caller asynchronously until the operation has completed.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1719)

#### ReadableOperation (class)

Operation that can be awaited until a remote worker has completed a `ReadOperation`.

```python
from dynamo.nixl_connect import ReadableOperation
```

```python
ReadableOperation(connection: Connection, local_descriptors: Descriptor | list[Descriptor]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1726`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1726)

**Public methods**

#### **init**

```python
__init__(connection: Connection, local_descriptors: Descriptor | list[Descriptor]) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1731)

#### wait_for_completion

```python
wait_for_completion() -> None
```

Blocks the caller asynchronously until the operation has completed.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1757)

#### Remote (class)

Identifies a remote NIXL enabled worker relative to a local NIXL enabled worker.

```python
from dynamo.nixl_connect import Remote
```

```python
Remote(connection: Connection, nixl_metadata: bytes | str) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1801`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1801)

**Public methods**

#### **init**

```python
__init__(connection: Connection, nixl_metadata: bytes | str) -> None
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1806)

#### decode_metadata

```python
decode_metadata(nixl_metadata: bytes | str) -> bytes
```

Decode agent metadata without registering a remote or starting a transfer.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1829)

#### SerializedDescriptor (class)

Pydantic serialization type for memory descriptors.

```python
from dynamo.nixl_connect import SerializedDescriptor
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1895`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1895)

**Public methods**

#### to_descriptor

```python
to_descriptor() -> Descriptor
```

Deserialize the serialized descriptor into a `Descriptor` object.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1910)

#### validate_device

```python
validate_device(cls, v: str) -> str
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1916)

#### validate_ptr

```python
validate_ptr(cls, v: int) -> int
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1928)

#### validate_size

```python
validate_size(cls, v: int) -> int
```

No summary available.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1935)

#### WritableOperation (class)

Operation which can be awaited until written to by a `WriteOperation` from a remote worker.

```python
from dynamo.nixl_connect import WritableOperation
```

```python
WritableOperation(connection: Connection, local_descriptors: Descriptor | list[Descriptor]) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1945`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1945)

**Public methods**

#### **init**

```python
__init__(connection: Connection, local_descriptors: Descriptor | list[Descriptor]) -> None
```

Creates a new instance of `WritableOperation`, registers the operation and descriptors w/ NIXL, and enables an RDMA write operation to occur.

**Parameters**

**`connection`** `Connection`

Connection instance to use for the operation.

---

**`local_descriptors`** `Descriptor | list[Descriptor]`

Descriptors to receive data from a remote worker.

---

**`Raises`**

---

**`TypeError`**

When `connection` is not a `dynamo.nixl_connect.Connection`.

---

**`TypeError`**

When `local_descriptors` is not a `dynamo.nixl_connect.Descriptor` or `list[dynamo.nixl_connect.Descriptor]`.

---

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1950)

#### wait_for_completion

```python
wait_for_completion() -> None
```

Blocks the caller asynchronously until the operation has completed.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L1993)

#### WriteOperation (class)

Awaitable write operation which initiates an RDMA write operation to a remote worker which provided a `RdmaMetadata` object from a `WritableOperation`.

```python
from dynamo.nixl_connect import WriteOperation
```

```python
WriteOperation(connection: Connection, local_descriptors: Descriptor | list[Descriptor], remote_metadata: RdmaMetadata) -> None
```

[`lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L2000`](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L2000)

**Public methods**

#### **init**

```python
__init__(connection: Connection, local_descriptors: Descriptor | list[Descriptor], remote_metadata: RdmaMetadata) -> None
```

Creates a new instance of `WriteOperation`, registers `local_descriptors` with NIXL, and begins an RDMA write operation which will transfer from `local_descriptors` to remote target(s) described by `remote_metadata`

**Parameters**

**`connection`** `Connection`

Connection instance to use for the operation.

---

**`local_descriptors`** `Descriptor | list[Descriptor]`

Local descriptor(s) to send from, to the remote worker.

---

**`remote_metadata`** `RdmaMetadata`

Serialized request from the remote worker that describes the target(s) to send to.

---

**`Raises`**

---

**`TypeError`**

When `connector` is not a `dynamo.nixl_connect.Connector`.

---

**`TypeError`**

When `remote_metadata` is not a `dynamo.nixl_connect.RdmaMetadata`.

---

**`ValueError`**

When `remote_metadata` is not of kind `WRITE`.

---

**`ValueError`**

When `remote_metadata.nixl_metadata` is not a non-empty `str`.

---

**`TypeError`**

When `local_descriptors` is not a `dynamo.nixl_connect.Descriptor` or `list[dynamo.nixl_connect.Descriptor]`.

---

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L2006)

#### cancel

```python
cancel() -> None
```

Cancels the operation. No affect if the operation has already completed or errored, or has been cancelled.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L2079)

#### wait_for_completion

```python
wait_for_completion() -> None
```

Blocks the caller asynchronously until the operation has completed.

[source](https://github.com/ai-dynamo/dynamo/blob/main/lib/bindings/python/src/dynamo/nixl_connect/__init__.py#L2086)