envoyproxy/go-control-plane

Go implementation of data-plane-api

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 51 minutes ago
Added to GitGenius on July 14th, 2023
Created on October 20th, 2017
Open Issues & Pull Requests: 23 (+0)
Number of forks: 565
Total Stargazers: 1,724 (+0)
Total Subscribers: 41 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 47.8 hours
Mean response time: 136.0 days
90th percentile: 945.2 days
Tracked items: 48

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 4% of issues opened in the past year have been closed. Three people close 57% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 6
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,148 days
Stale 30+ days: 4
Stale 90+ days: 4

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 3

Top labels

  • stale (74)
  • no stalebot (15)
  • bug (7)
  • enhancement (3)
  • help wanted (3)
  • area/delta_xds (2)
  • area/sotw (2)
  • question (2)

Most active issues this week

Detailed Description

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.