go-control-plane is a Go library that implements the xDS discovery service APIs for Envoy proxies.
The library addresses the need for control plane infrastructure that can push configuration updates to Envoy proxies. Rather than attempting to be a complete control plane solution, it provides reusable components that different control plane implementations can build upon. The core components are a generic gRPC-based API server that implements the xDS APIs defined in the data-plane-api specification, and an in-memory configuration cache that stores Envoy configurations keyed by node information. The cache is designed to respond quickly to proxy requests, though consumers of the library are responsible for populating and invalidating it as needed. The library does not handle translation of platform-specific resource representations into Envoy configuration, leaving that responsibility to implementations built on top of it.
Projects should adopt this library if they are building a custom control plane for Envoy proxies and want to avoid reimplementing the xDS API server and caching infrastructure. It suits organizations with specific platform requirements that a general-purpose control plane cannot meet. The library supports multiple caching strategies, including a snapshot-based simple cache that can operate in aggregated discovery service mode to enable atomic updates across xDS collections. The project has dropped support for the V2 xDS API version and requires Go 1.25 or later.
Maintainers typically respond to new issues and pull requests within a few days. Work in the issue tracker is dominated by bug reports and area-specific discussions, with no automated stalebot managing inactive issues.