Cargo Features

junction-api has no features set by default.

[dependencies]
junction-api = { version = "0.2.1", features = ["typeinfo", "xds", "kube", "kube_v1_29", "kube_v1_30", "kube_v1_31"] }
typeinfo

enable reflection. this is intended to only be used at build time to generate cross-language APIs.

Enables junction-typeinfo

xds

enable xds conversion for core types.

Enables xds-api

kube = kube_v1_29

enable kube conversion for core types. this is a shorthand for the minimum available kube_v1_* feature.

kube_v1_29 kube?

each of these flags sets a MINIMUM version of the kubernetes API to be compatible with.

because k8s-openapi does kube version selection with Cargo features, we're priced in to doing it as well. doing it this way means downstream crates don't have to ALSO depend on k8s-openapi and pick exactly the same version/feature flag combination.

Enables gateway-api, kube ^0.96 and v1_29 of k8s-openapi ^0.23

kube

k8s-openapi and the gateway-api crates have to be kept in sync, or we'll have a bad time with multiple versions of types and feature flags won't be set.

Affects junction-api::kube

kube_v1_30

Enables gateway-api, kube ^0.96, v1_30 of k8s-openapi ^0.23

Affects junction-api::kube

kube_v1_31

Enables gateway-api, kube ^0.96, v1_31 of k8s-openapi ^0.23

Affects junction-api::kube

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

k8s-openapi kube_v1_29? kube_v1_30? kube_v1_31?

Enables k8s-openapi ^0.23