> This page is for NeMo Relay, version dev.
> For other versions, use one of these documentation indexes:
> - Latest (v0.11.1) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.11.1: https://docs.nvidia.com/nemo/relay/v0.11.1/llms.txt
> - v0.10.4: https://docs.nvidia.com/nemo/relay/v0.10.4/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Struct Dynamic Plugin Registry

> In-memory dynamic plugin registry used by the control plane.

Generated from `cargo doc --no-deps -p nemo-relay-builtins -p nemo-relay-diagnostics -p nemo-relay-logging -p nemo-relay-plugin-host -p nemo-relay-codecs -p nemo-relay -p nemo-relay-runtime -p nemo-relay-model-pricing -p nemo-relay-resource-metrics -p nemo-relay-observability -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker`.

```rust
pub struct DynamicPluginRegistry { /* private fields */ }
```

In-memory dynamic plugin registry used by the control plane.

## Implementations

### `impl DynamicPluginRegistry`

<pre />

#### `new`

<pre />

Creates an empty dynamic plugin registry.

#### `from_records`

<pre />

Reconstructs a registry from previously persisted durable records.

Unsupported worker protocols remain readable for inspection and removal, with invalid compatibility status. New registrations and enablement still require the current protocol.

#### `get`

<pre />

Returns the registered record for `plugin_id`, if present.

#### `list`

<pre />

Lists records, hiding tombstones unless requested.

#### `cloned_records`

<pre />

Clones records for serialization or higher-level projection.

#### `add`

<pre />

Adds a new dynamic plugin record.

This is a trusted internal control-plane API. Callers that start from an authored `relay-plugin.toml` manifest should prefer [`Self::add_manifest`](/reference/api/rust-library-reference/nemo-relay-plugin-host/dynamic/struct-dynamicpluginregistry) so the manifest contract is enforced before record creation.

#### `add_manifest`

<pre />

Validates an authored manifest and registers the resulting dynamic plugin record.

#### `enable`

<pre />

Marks the plugin enabled in desired state.

#### `disable`

<pre />

Marks the plugin disabled in desired state.

#### `remove`

<pre />

Tombstones the plugin record and disables desired runtime realization.

#### `update_validation_status`

<pre />

Replaces the current validation status without mutating desired state.

#### `update_runtime_status`

<pre />

Replaces the current runtime status without mutating desired state.

#### `update_last_error`

<pre />

Records the most recent dynamic-plugin failure summary.

#### `update_environment`

<pre />

Replaces the resolved worker environment and its validation state.

#### `update_policy_status`

<pre />

Replaces the current host-policy outcome without mutating desired state.

#### `replace_declaration`

<pre />

Replaces declaration-owned fields while preserving lifecycle-owned state.

The replacement must describe the same plugin ID. Desired state, runtime state, and durable lifecycle metadata remain attached to the existing record. Unsupported worker protocols remain inspectable with invalid compatibility.

## Trait Implementations

### `impl Debug for DynamicPluginRegistry`

<pre />

#### `fmt`

<pre />

### `impl Default for DynamicPluginRegistry`

<pre />

#### `default`

<pre />