> 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.

# Module registry

> Global and scope-local middleware registration.

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`.

Global and scope-local middleware registration.

## Structs

* [RuntimeRegistrationIdentity](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/struct-runtimeregistrationidentity): Structured identity for a global gateable runtime registration.
* [RuntimeRegistrationOwner](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/struct-runtimeregistrationowner): Discovery metadata describing the owner of a runtime registration.

## Enums

* [RuntimeRegistrationKind](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/enum-runtimeregistrationkind): A global runtime registration surface that can be selected by a conditional middleware guardrail.
* [RuntimeRegistrationOwnerKind](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/enum-runtimeregistrationownerkind): The owner category reported for a global runtime registration.

## Functions

* [deregister_conditional_middleware_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-conditional-middleware-guardrail): Deregister a global conditional middleware guardrail.
* [deregister_event_metadata_injector](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-event-metadata-injector): Deregister a global Event metadata injector.
* [deregister_llm_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-llm-conditional-execution-guardrail): Deregister a global LLM conditional-execution guardrail.
* [deregister_llm_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-llm-execution-intercept): Deregister a global LLM execution intercept.
* [deregister_llm_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-llm-request-intercept): Deregister a global LLM request intercept.
* [deregister_llm_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-llm-sanitize-request-guardrail): Deregister a global LLM sanitize-request guardrail.
* [deregister_llm_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-llm-sanitize-response-guardrail): Deregister a global LLM sanitize-response guardrail.
* [deregister_llm_stream_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-llm-stream-execution-intercept): Deregister a global streaming LLM execution intercept.
* [deregister_mark_sanitize_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-mark-sanitize-guardrail): Deregister a global mark event sanitizer.
* [deregister_scope_sanitize_end_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-scope-sanitize-end-guardrail): Deregister a global scope-end event sanitizer.
* [deregister_scope_sanitize_start_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-scope-sanitize-start-guardrail): Deregister a global scope-start event sanitizer.
* [deregister_tool_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-tool-conditional-execution-guardrail): Deregister a global tool conditional-execution guardrail.
* [deregister_tool_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-tool-execution-intercept): Deregister a global tool execution intercept.
* [deregister_tool_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-tool-request-intercept): Deregister a global tool request intercept.
* [deregister_tool_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-tool-sanitize-request-guardrail): Deregister a global tool sanitize-request guardrail.
* [deregister_tool_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-deregister-tool-sanitize-response-guardrail): Deregister a global tool sanitize-response guardrail.
* [list_runtime_registrations](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-list-runtime-registrations): List a deterministic snapshot of global gateable runtime registrations.
* [register_conditional_middleware_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-conditional-middleware-guardrail): Register a global conditional middleware guardrail.
* [register_event_metadata_injector](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-event-metadata-injector): Register a global Event metadata injector.
* [register_llm_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-llm-conditional-execution-guardrail): Register a global LLM conditional-execution guardrail. The guardrail can block LLM execution before intercepts or the provider callback run.
* [register_llm_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-llm-execution-intercept): Register a global LLM execution intercept. Execution intercepts can wrap or replace the non-streaming provider callback.
* [register_llm_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-llm-request-intercept): Register a global LLM request intercept. Request intercepts can rewrite or annotate the outgoing LLM request and schedule lifecycle marks for the resulting LLM scope.
* [register_llm_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-llm-sanitize-request-guardrail): Register a global LLM sanitize-request guardrail. The guardrail rewrites only the request payload recorded on emitted start events.
* [register_llm_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-llm-sanitize-response-guardrail): Register a global LLM sanitize-response guardrail. The guardrail rewrites only the response payload recorded on emitted end events.
* [register_llm_stream_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-llm-stream-execution-intercept): Register a global streaming LLM execution intercept. Execution intercepts can wrap or replace the streaming provider callback.
* [register_mark_sanitize_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-mark-sanitize-guardrail): Register a global mark event sanitizer.
* [register_scope_sanitize_end_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-scope-sanitize-end-guardrail): Register a global scope-end event sanitizer.
* [register_scope_sanitize_start_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-scope-sanitize-start-guardrail): Register a global scope-start event sanitizer.
* [register_tool_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-tool-conditional-execution-guardrail): Register a global tool conditional-execution guardrail. The guardrail can block tool execution before intercepts or the tool callback run.
* [register_tool_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-tool-execution-intercept): Register a global tool execution intercept that receives the full [`ToolExecutionContext`](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/struct-toolexecutioncontext), including the managed `tool_call_id`. Execution intercepts can wrap or replace the tool callback. Each callback returns a canonical tool execution outcome, while its continuation resolves to the downstream [`ToolExecutionResult`](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/tool/struct-toolexecutionresult).
* [register_tool_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-tool-request-intercept): Register a global tool request intercept. Request intercepts can rewrite tool arguments before execution.
* [register_tool_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-tool-sanitize-request-guardrail): Register a global tool sanitize-request guardrail. The guardrail rewrites only the tool input recorded on emitted start events.
* [register_tool_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-register-tool-sanitize-response-guardrail): Register a global tool sanitize-response guardrail. The guardrail rewrites only the tool output recorded on emitted end events.
* [scope_deregister_event_metadata_injector](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-event-metadata-injector): Deregister an Event metadata injector owned by an active scope.
* [scope_deregister_llm_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-llm-conditional-execution-guardrail): Deregister a scope-local LLM conditional-execution guardrail.
* [scope_deregister_llm_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-llm-execution-intercept): Deregister a scope-local LLM execution intercept.
* [scope_deregister_llm_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-llm-request-intercept): Deregister a scope-local LLM request intercept.
* [scope_deregister_llm_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-llm-sanitize-request-guardrail): Deregister a scope-local LLM sanitize-request guardrail.
* [scope_deregister_llm_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-llm-sanitize-response-guardrail): Deregister a scope-local LLM sanitize-response guardrail.
* [scope_deregister_llm_stream_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-llm-stream-execution-intercept): Deregister a scope-local streaming LLM execution intercept.
* [scope_deregister_mark_sanitize_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-mark-sanitize-guardrail): Deregister a scope-local mark event sanitizer.
* [scope_deregister_scope_sanitize_end_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-scope-sanitize-end-guardrail): Deregister a scope-local scope-end event sanitizer.
* [scope_deregister_scope_sanitize_start_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-scope-sanitize-start-guardrail): Deregister a scope-local scope-start event sanitizer.
* [scope_deregister_tool_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-tool-conditional-execution-guardrail): Deregister a scope-local tool conditional-execution guardrail.
* [scope_deregister_tool_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-tool-execution-intercept): Deregister a scope-local tool execution intercept.
* [scope_deregister_tool_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-tool-request-intercept): Deregister a scope-local tool request intercept.
* [scope_deregister_tool_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-tool-sanitize-request-guardrail): Deregister a scope-local tool sanitize-request guardrail.
* [scope_deregister_tool_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-deregister-tool-sanitize-response-guardrail): Deregister a scope-local tool sanitize-response guardrail.
* [scope_register_event_metadata_injector](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-event-metadata-injector): Register an Event metadata injector owned by an active scope.
* [scope_register_llm_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-llm-conditional-execution-guardrail): Register a scope-local LLM conditional-execution guardrail. The guardrail can block LLM execution inside the owning scope.
* [scope_register_llm_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-llm-execution-intercept): Register a scope-local LLM execution intercept. Execution intercepts can wrap or replace the non-streaming provider callback inside the owning scope.
* [scope_register_llm_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-llm-request-intercept): Register a scope-local LLM request intercept. Request intercepts can rewrite or annotate LLM requests inside the owning scope and schedule lifecycle marks for the resulting LLM scope.
* [scope_register_llm_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-llm-sanitize-request-guardrail): Register a scope-local LLM sanitize-request guardrail. The guardrail rewrites only request payloads emitted under the owning scope.
* [scope_register_llm_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-llm-sanitize-response-guardrail): Register a scope-local LLM sanitize-response guardrail. The guardrail rewrites only response payloads emitted under the owning scope.
* [scope_register_llm_stream_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-llm-stream-execution-intercept): Register a scope-local streaming LLM execution intercept. Execution intercepts can wrap or replace the streaming provider callback inside the owning scope.
* [scope_register_mark_sanitize_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-mark-sanitize-guardrail): Register a scope-local mark event sanitizer.
* [scope_register_scope_sanitize_end_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-scope-sanitize-end-guardrail): Register a scope-local scope-end event sanitizer.
* [scope_register_scope_sanitize_start_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-scope-sanitize-start-guardrail): Register a scope-local scope-start event sanitizer.
* [scope_register_tool_conditional_execution_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-tool-conditional-execution-guardrail): Register a scope-local tool conditional-execution guardrail. The guardrail can block tool execution inside the owning scope.
* [scope_register_tool_execution_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-tool-execution-intercept): Register a scope-local tool execution intercept that receives the full [`ToolExecutionContext`](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/struct-toolexecutioncontext), including the managed `tool_call_id`. Execution intercepts can wrap or replace the tool callback inside the owning scope. Each callback returns a canonical tool execution outcome, while its continuation resolves to the downstream [`ToolExecutionResult`](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/tool/struct-toolexecutionresult).
* [scope_register_tool_request_intercept](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-tool-request-intercept): Register a scope-local tool request intercept. Request intercepts can rewrite tool arguments inside the owning scope.
* [scope_register_tool_sanitize_request_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-tool-sanitize-request-guardrail): Register a scope-local tool sanitize-request guardrail. The guardrail rewrites only tool input emitted under the owning scope.
* [scope_register_tool_sanitize_response_guardrail](/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/registry/fn-scope-register-tool-sanitize-response-guardrail): Register a scope-local tool sanitize-response guardrail. The guardrail rewrites only tool output emitted under the owning scope.