Skip to content

interop/v2: opt-in compressed-values profile (compressed + encrypted cross-SDK values) #52

Description

@27Bslash6

Design-discussion anchor for the interop/v2 compressed-values profile RFC (workspace ticket LAB-1135) — restoring the 2025-11-14 RFC's descoped vision of compressed AND encrypted cross-SDK values, as a versioned additive profile.

interop/v1 (#1) deliberately shipped without compression: values are bare MessagePack and the encryption AAD pins compressed = "False" (spec/interop-mode.md). That surface is frozen. The spec's own versioning rule ("versioning-by-mode-name is sufficient") sanctions a new mode: interop/v2, which wraps values in a minimal container carrying an LZ4-block-compressed (or uncompressed) payload, and pins the AAD compressed component to the frozen "True" token (#12) as a per-mode constant.

Design constraints carried in from LAB-1129 / LAB-1135:

Deliverable: spec/interop-v2.md + generated, independently cross-checked test vectors (tools/interop-v2-reference.py stdlib generator + tools/interop-v2-crosscheck.mjs verifier), following the interop/v1 tooling pattern. Spec PR to follow on this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions