Async::GRPC::XDS

Async::GRPC::XDS

xDS support for async-grpc clients.

This gem contains the experimental xDS implementation extracted from async-grpc, including Envoy xDS protobuf definitions, aggregated and resource-specific discovery, CDS/EDS resource handling, and client-side load balancing.

Development Status

Usage

Please browse the source code index or refer to the guides below.

Getting Started

This guide explains how to use async-grpc-xds to publish CDS and EDS resources to Envoy, or to discover gRPC backends from Ruby using xDS.

Testing

The integration/ directory contains Docker Compose environments for testing the Ruby xDS client against a Go control plane and the Ruby control plane against Envoy.

bundle exec bake test:integration

Releases

Please browse the releases for more details.

v0.4.0

  • Add dedicated Cluster Discovery Service and Endpoint Discovery Service implementations, allowing resource-specific xDS streams without claiming ADS.
  • Allow generated clusters to use a dedicated EDS configuration source instead of ADS.

v0.3.0

  • Add Envoy HTTP active health-check resources and attach health checks to generated clusters.

v0.2.0

  • Add ORCA load reporting messages, service interface, and client-side weighted-round-robin resources.
  • Support endpoint hostnames in generated EDS resources.
  • Replace the general resource builder with focused cluster and endpoint builders.

v0.1.0

  • Add complete documentation coverage for the public xDS API.
  • Support grouped IP and Unix-domain-socket addresses in EDS endpoints.
  • Support selecting HTTP/1 or HTTP/2 for generated clusters.

v0.1.0

  • Add complete documentation coverage for the public xDS API.
  • Support grouped IP and Unix-domain-socket addresses in EDS endpoints.
  • Support selecting HTTP/1 or HTTP/2 for generated clusters.

See Also