open-index/open-npm huggingface dataset:
npm package: @grpc/grpc-js-xds
Description: Plugin for @grpc/grpc-js. Adds the xds:// URL scheme and associated features.
Author: Google Inc.
Latest version: 1.14.0

# @grpc/grpc-js xDS plugin

This package provides support for the `xds://` URL scheme to the `@grpc/grpc-js` library. The latest version of this package is compatible with `@grpc/grpc-js` version 1.13.x.

## Installation

```
npm install @grpc/grpc-js-xds
```

## Usage

```ts
import * as grpcJsXds from '@grpc/grpc-js-xds';
grpcJsXds.register();

// ...get a @grpc/grpc-js Client class as usual

const client = new MyServiceClient('xds:///example.com:123');
```

## Supported Features

 - [xDS-Based Global Load Balancing](https://github.com/grpc/proposal/blob/master/A27-xds-global-load-balancing.md)
 - [xDS traffic splitting and routing](https://github.com/grpc/proposal/blob/master/A28-xds-traffic-splitting-and-routing.md)
 - [xDS v3 API](https://github.com/grpc/proposal/blob/master/A30-xds-v3.md)
 - [xDS Timeouts](https://github.com/grpc/proposal/blob/master/A31-xds-timeout-support-and-config-selector.md)
 - [xDS Circuit Breaking](https://github.com/grpc/proposal/blob/master/A32-xds-circuit-breaking.md)
 - [xDS Client-Side Fault Injection](https://github.com/grpc/proposal/blob/master/A33-Fault-Injection.md)
 - [Client Status Discovery Service](https://github.com/grpc/proposal/blob/master/A40-csds-support.md)
 - [Outlier Detection](https://github.com/grpc/proposal/blob/master/A50-xds-outlier-detection.md)
 - [xDS Retry Support](https://github.com/grpc/proposal/blob/master/A44-xds-retry.md)
 - [xDS Aggregate and Logical DNS Clusters](https://github.com/grpc/proposal/blob/master/A37-xds-aggregate-and-logical-dns-clusters.md)
 - [xDS Federation](https://github.com/grpc/proposal/blob/master/A47-xds-federation.md)
 - [xDS Custom Load Balancer Configuration](https://github.com/grpc/proposal/blob/master/A52-xds-custom-lb-policies.md) (Custom load balancer registration not currently supported)
 - [xDS Ring Hash LB Policy](https://github.com/grpc/proposal/blob/master/A42-xds-ring-hash-lb-policy.md)
 - [`pick_first` via xDS](https://github.com/grpc/proposal/blob/master/A62-pick-first.md#pick_first-via-xds-1) (Currently experimental, enabled by environment variable `GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG`)
 - [xDS-Enabled Servers](https://github.com/grpc/proposal/blob/master/A36-xds-for-servers.md)
 - [xDS-Based Security for gRPC Clients and Servers](https://github.com/grpc/proposal/blob/master/A29-xds-tls-security.md)
 - [xDS RBAC Support](https://github.com/grpc/proposal/blob/master/A41-xds-rbac.md)
 - [`weighted_round_robin` LB policy](https://github.com/grpc/proposal/blob/master/A58-client-side-weighted-round-robin-lb-policy.md) (Inclusion in xDS registry is currently experimental, enabled by environment variable `GRPC_EXPERIMENTAL_XDS_WRR_LB`)
npm package: @grpc/reflection
Description: Reflection API service for use with gRPC-node
Author: Google Inc.
Latest version: 1.0.4

# gRPC Reflection

gRPC reflection API service for use with gRPC-node.

## Background

This package provides an implementation of the [gRPC Server Reflection Protocol](https://github.com/grpc/grpc/blob/master/doc/server-reflection.md) service which can be added to an existing gRPC server. Adding this service to your server will allow clients [such as postman](https://blog.postman.com/postman-now-supports-grpc/) to dynamically load the API specification from your running application rather than needing to pass around and load proto files manually.

![example of reflection working with postman](./images/example.gif)

## Installation

Use the package manager [npm](https://www.npmjs.com/get-npm) to install `@grpc/reflection`.

```bash
npm install @grpc/reflection
```

## Usage

Any gRPC-node server can use `@grpc/reflection` to expose reflection information about their gRPC API. 

```typescript
import { ReflectionService } from '@grpc/reflection';

const pkg = protoLoader.load(...); // Load your gRPC package definition as normal

// Create the reflection implementation based on your gRPC package and add it to your existing server
const reflection = new ReflectionService(pkg);
reflection.addToServer(server);
```

Congrats! Your server now allows any client to request reflection information about its API.

## Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. The original proposal for this library can be found in [gRFC L108](https://github.com/grpc/proposal/blob/master/L108-node-grpc-reflection-library.md)

Please make sure to update tests as appropriate.

## License
[Apache License 2.0](https://choosealicense.com/licenses/apache-2.0/)