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.
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) andClientsPreferCBOR(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
github.com/fxamacker/cbor/v2v2.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.