> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/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 callbacks > Middleware callback and stream contracts. Callback type aliases used by the runtime middleware pipeline. 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`. Middleware callback and stream contracts. Callback type aliases used by the runtime middleware pipeline. The public middleware registration APIs accept callback closures with the signatures defined in this module. These aliases centralize those signatures so the runtime can compose tool and LLM middleware consistently across bindings. ## Structs * [LlmJsonStream](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-llmjsonstream): Stream of JSON chunks produced by the managed streaming LLM pipeline. * [LlmSanitizeRequestContext](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-llmsanitizerequestcontext): Per-call codec identity and capability for an LLM request. * [LlmSanitizeResponseContext](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-llmsanitizeresponsecontext): Per-call codec identity and capability for an LLM response. * [ToolExecutionContext](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-toolexecutioncontext): Per-call context delivered to a tool execution intercept. ## Enums * [BuiltinLlmCodec](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-builtinllmcodec): Relay's built-in LLM codec identities. * [LlmCodecIdentity](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-llmcodecidentity): Per-call LLM codec identity supplied to sanitizer and SDK callbacks. * [LlmCollector](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-llmcollector): Collector used to accumulate streaming response chunks. * [LlmFinalizer](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-llmfinalizer): Finalizer used to synthesize the aggregate streaming response payload. ## Traits * [LlmStreamInner](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/trait-llmstreaminner): Internal close-aware stream implementation. ## Type Aliases * [ConditionalMiddlewareGuardrailFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-conditionalmiddlewareguardrailfn): Decide whether matching global runtime registrations remain eligible. * [EventMetadataInjectorFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-eventmetadatainjectorfn): Add flat metadata attributes to a fully constructed event. * [EventSanitizeFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-eventsanitizefn): Sanitize mutable observability fields on a fully constructed event. * [EventSubscriberFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-eventsubscriberfn): Consume runtime lifecycle events after they are emitted. * [LlmAsyncCollectorFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmasynccollectorfn): Collector that is awaited; see [`LlmCollector`](/reference/api/rust-library-reference/nemo-relay/middleware/enum-llmcollector). * [LlmAsyncFinalizerFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmasyncfinalizerfn): Finalizer that is awaited; see [`LlmFinalizer`](/reference/api/rust-library-reference/nemo-relay/middleware/enum-llmfinalizer). * [LlmBorrowedCollectorFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmborrowedcollectorfn): Collector that reads each provider JSON chunk without copying it. * [LlmCollectorFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmcollectorfn): Per-chunk collector used by the streaming LLM runtime. * [LlmCollectorFuture](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmcollectorfuture): Future returned by an asynchronous collector. * [LlmConditionalFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmconditionalfn): Decide whether an LLM call is allowed to continue. * [LlmExecutionFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmexecutionfn): Wrap or replace non-streaming LLM execution. * [LlmExecutionNextFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmexecutionnextfn): Continuation type invoked by non-streaming LLM execution intercepts. * [LlmFallibleFinalizerFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmfalliblefinalizerfn): Finalizer that can fail; see [`LlmFinalizer`](/reference/api/rust-library-reference/nemo-relay/middleware/enum-llmfinalizer). * [LlmFinalizerFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmfinalizerfn): Finalizer used to synthesize the aggregate streaming response payload. * [LlmFinalizerFuture](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmfinalizerfuture): Future returned by an asynchronous finalizer. * [LlmRequestContext](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmrequestcontext): Request codec context exposed to an LLM execution intercept. * [LlmRequestInterceptFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmrequestinterceptfn): Rewrite or annotate an LLM request before execution. * [LlmResponseContext](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmresponsecontext): Response codec context exposed to a non-streaming LLM execution intercept. * [LlmSanitizeRequestFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmsanitizerequestfn): Sanitize an LLM request before the runtime records it. * [LlmSanitizeResponseFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmsanitizeresponsefn): Sanitize an LLM response before the runtime records it. * [LlmStreamExecutionFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmstreamexecutionfn): Wrap or replace streaming LLM execution. * [LlmStreamExecutionNextFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmstreamexecutionnextfn): Continuation type invoked by streaming LLM execution intercepts. * [ToolConditionalFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolconditionalfn): Decide whether a tool call is allowed to continue. * [ToolExecutionFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolexecutionfn): Wrap or replace tool execution with access to the full call context. * [ToolExecutionNextFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolexecutionnextfn): Continuation type invoked by tool execution intercepts. * [ToolInterceptFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolinterceptfn): Rewrite tool arguments before execution. * [ToolSanitizeFn](/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolsanitizefn): Sanitize a tool request payload before the runtime records it. > Middleware callback and stream contracts. Callback type aliases used by the runtime middleware pipeline. ## Docs - [Struct LlmJson Stream](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-llmjsonstream.md): Stream of JSON chunks produced by the managed streaming LLM pipeline. - [Struct LlmSanitize Request Context](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-llmsanitizerequestcontext.md): Per-call codec identity and capability for an LLM request. - [Struct LlmSanitize Response Context](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-llmsanitizeresponsecontext.md): Per-call codec identity and capability for an LLM response. - [Struct Tool Execution Context](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/struct-toolexecutioncontext.md): Per-call context delivered to a tool execution intercept. - [Enum Builtin LlmCodec](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-builtinllmcodec.md): Relay's built-in LLM codec identities. - [Enum LlmCodec Identity](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-llmcodecidentity.md): Per-call LLM codec identity supplied to sanitizer and SDK callbacks. - [Enum LlmCollector](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-llmcollector.md): Collector used to accumulate streaming response chunks. - [Enum LlmFinalizer](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/enum-llmfinalizer.md): Finalizer used to synthesize the aggregate streaming response payload. - [Trait LlmStream Inner](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/trait-llmstreaminner.md): Internal close-aware stream implementation. - [Type Alias Conditional Middleware Guardrail Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-conditionalmiddlewareguardrailfn.md): Decide whether matching global runtime registrations remain eligible. - [Type Alias Event Metadata Injector Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-eventmetadatainjectorfn.md): Add flat metadata attributes to a fully constructed event. - [Type Alias Event Sanitize Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-eventsanitizefn.md): Sanitize mutable observability fields on a fully constructed event. - [Type Alias Event Subscriber Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-eventsubscriberfn.md): Consume runtime lifecycle events after they are emitted. - [Type Alias LlmAsync Collector Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmasynccollectorfn.md): Collector that is awaited; see `LlmCollector`. - [Type Alias LlmAsync Finalizer Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmasyncfinalizerfn.md): Finalizer that is awaited; see `LlmFinalizer`. - [Type Alias LlmBorrowed Collector Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmborrowedcollectorfn.md): Collector that reads each provider JSON chunk without copying it. - [Type Alias LlmCollector Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmcollectorfn.md): Per-chunk collector used by the streaming LLM runtime. - [Type Alias LlmCollector Future](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmcollectorfuture.md): Future returned by an asynchronous collector. - [Type Alias LlmConditional Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmconditionalfn.md): Decide whether an LLM call is allowed to continue. - [Type Alias LlmExecution Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmexecutionfn.md): Wrap or replace non-streaming LLM execution. - [Type Alias LlmExecution Next Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmexecutionnextfn.md): Continuation type invoked by non-streaming LLM execution intercepts. - [Type Alias LlmFallible Finalizer Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmfalliblefinalizerfn.md): Finalizer that can fail; see `LlmFinalizer`. - [Type Alias LlmFinalizer Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmfinalizerfn.md): Finalizer used to synthesize the aggregate streaming response payload. - [Type Alias LlmFinalizer Future](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmfinalizerfuture.md): Future returned by an asynchronous finalizer. - [Type Alias LlmRequest Context](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmrequestcontext.md): Request codec context exposed to an LLM execution intercept. - [Type Alias LlmRequest Intercept Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmrequestinterceptfn.md): Rewrite or annotate an LLM request before execution. - [Type Alias LlmResponse Context](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmresponsecontext.md): Response codec context exposed to a non-streaming LLM execution intercept. - [Type Alias LlmSanitize Request Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmsanitizerequestfn.md): Sanitize an LLM request before the runtime records it. - [Type Alias LlmSanitize Response Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmsanitizeresponsefn.md): Sanitize an LLM response before the runtime records it. - [Type Alias LlmStream Execution Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmstreamexecutionfn.md): Wrap or replace streaming LLM execution. - [Type Alias LlmStream Execution Next Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-llmstreamexecutionnextfn.md): Continuation type invoked by streaming LLM execution intercepts. - [Type Alias Tool Conditional Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolconditionalfn.md): Decide whether a tool call is allowed to continue. - [Type Alias Tool Execution Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolexecutionfn.md): Wrap or replace tool execution with access to the full call context. - [Type Alias Tool Execution Next Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolexecutionnextfn.md): Continuation type invoked by tool execution intercepts. - [Type Alias Tool Intercept Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolinterceptfn.md): Rewrite tool arguments before execution. - [Type Alias Tool Sanitize Fn](https://docs.nvidia.com/nemo/relay/dev/reference/api/rust-library-reference/nemo-relay/middleware/callbacks/type-toolsanitizefn.md): Sanitize a tool request payload before the runtime records it.