> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.nvidia.com/nemo/relay/v0.8.4/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/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 canonicalize > RFC 8785 JSON Canonicalization and whitespace normalization for cache stability. Generated from `cargo doc --no-deps -p nemo-relay -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`. RFC 8785 JSON Canonicalization and whitespace normalization for cache stability. This module provides deterministic JSON serialization (RFC 8785 / JCS) and whitespace normalization so that semantically equivalent content always produces byte-identical output. This is critical for cache key stability: without canonicalization, tool schemas or JSON content with different key orders would produce different hashes and miss the cache. ## Public functions * [`canonicalize_json`](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-canonicalize-json) - Canonicalize a JSON string per RFC 8785. * [`canonicalize_value`](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-canonicalize-value) - Canonicalize a `serde_json::Value` per RFC 8785. * [`normalize_whitespace`](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-normalize-whitespace) - Trim and collapse whitespace in text content. * [`sha256_hex`](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-sha256-hex) - Compute SHA-256 hex digest with `"sha256:"` prefix. ## Functions * [canonicalize\_json](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-canonicalize-json): Canonicalize a JSON string per RFC 8785 (JCS). * [canonicalize\_value](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-canonicalize-value): Canonicalize a `serde_json::Value` per RFC 8785. * [normalize\_whitespace](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-normalize-whitespace): Normalize whitespace in text content. * [sha256\_hex](/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-sha256-hex): Compute SHA-256 hex digest with `"sha256:"` prefix. > RFC 8785 JSON Canonicalization and whitespace normalization for cache stability. ## Docs - [Function canonicalize_json](https://docs.nvidia.com/nemo/relay/v0.8.4/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-canonicalize-json.md): Canonicalize a JSON string per RFC 8785 (JCS). - [Function canonicalize_value](https://docs.nvidia.com/nemo/relay/v0.8.4/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-canonicalize-value.md): Canonicalize a `serde_json::Value` per RFC 8785. - [Function normalize_whitespace](https://docs.nvidia.com/nemo/relay/v0.8.4/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-normalize-whitespace.md): Normalize whitespace in text content. - [Function sha256_hex](https://docs.nvidia.com/nemo/relay/v0.8.4/reference/api/rust-library-reference/nemo-relay-adaptive/acg/canonicalize/fn-sha256-hex.md): Compute SHA-256 hex digest with `"sha256:"` prefix.