Skip to content

Track CBOR wire format support (KEP-4222) #1951

@doxxx93

Description

@doxxx93

Would you like to work on this feature?

maybe

What problem are you trying to solve?

The Kubernetes API server is adding CBOR (RFC 8949) as an alternative wire format via KEP-4222, gated behind CBORServingAndStorage (alpha in v1.32).

client-go is tracking this with ClientsAllowCBOR (v1.32 alpha) and ClientsPreferCBOR (v1.33 beta).

Opening this to track upstream progress and discuss if/when kube-rs should support it.

Describe the solution you'd like

An optional feature flag on kube-client that enables CBOR content negotiation.

Since k8s-openapi types already have serde impls, a serde-compatible CBOR crate (e.g. ciborium, cbor4ii) should integrate without type changes.

Relevant content types:

  • application/cbor (request/response)
  • application/cbor-seq (watch streams, RFC 8742)
  • application/apply-patch+cbor (SSA)

Describe alternatives you've considered

Continue with JSON only, or wait for Protobuf (#725). CBOR is complementary to both — simpler to integrate than Protobuf and more efficient than JSON.

Documentation, Adoption, Migration Strategy

Target crate for feature

kube-client, kube-core


Status update (2026-05-27)

Upstream (KEP-4222)

Go ecosystem

  • apimachinery now depends on github.com/fxamacker/cbor/v2 v2.9.1. This remains the de-facto reference implementation for the CBOR wire format.

Rust crates

  • cbor4ii: now on a stable 1.x line, latest 1.2.2 (2025-11-30, MIT). The "preparing for 2.0" churn noted earlier did not materialize.
  • minicbor: latest 2.2.2 (2026-05-17), still BlueOak-1.0.0 licensed, so still blocked by CNCF policy / cargo-deny without an exception.
  • ciborium: unchanged since 0.2.2 (2024-01-24); the serde limitations noted above remain.
  • No new serde-compatible CBOR crate has emerged as a contender.

Metadata

Metadata

Assignees

No one assigned

    Labels

    clientkube Client related

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions