# @zcong/grpc-etcd-resolver

> etcd resolver for @grpc/grpc-js

Latest version **0.2.2** (published 2021-09-13) · MIT license · 0 weekly downloads

## Install

```sh
npm install @zcong/grpc-etcd-resolver
pnpm add @zcong/grpc-etcd-resolver
yarn add @zcong/grpc-etcd-resolver
bun add @zcong/grpc-etcd-resolver
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.2 |
| Published | 2021-09-13 |
| First published | 2021-03-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 20.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | zcong1993 |
| Maintainers | zcong |

## Links

- npm: https://www.npmjs.com/package/@zcong/grpc-etcd-resolver
- npm.io page: https://npm.io/package/@zcong/grpc-etcd-resolver

## Recent versions

- 0.2.2 (latest) — 2021-09-13
- 0.2.1 — 2021-09-13
- 0.2.0 — 2021-03-20
- 0.1.0 — 2021-03-19

## README

# grpc-etcd-resolver

[![NPM version](https://img.shields.io/npm/v/@zcong/grpc-etcd-resolver.svg?style=flat)](https://npmjs.com/package/@zcong/grpc-etcd-resolver) [![NPM downloads](https://img.shields.io/npm/dm/@zcong/grpc-etcd-resolver.svg?style=flat)](https://npmjs.com/package/@zcong/grpc-etcd-resolver)

> etcd resolver for @grpc/grpc-js

## Install

```bash
$ yarn add @zcong/grpc-etcd-resolver
# or npm
$ npm i @zcong/grpc-etcd-resolver --save
```

## Usage

### server

```ts
const serviceName = 'test'

const main = async () => {
  const server = new grpc.Server()
  server.addService(HelloService, helloServer)

  const addr = `0.0.0.0:${process.env.PORT ?? '8080'}`

  const etcd = new Etcd3()

  // register service addr to etcd
  register(etcd, serviceName, addr)

  server.bindAsync(addr, grpc.ServerCredentials.createInsecure(), () => {
    server.start()
  })
}
```

### client

```ts
const serviceName = 'test'

const main = async () => {
  const etcd = new Etcd3()
  // setup etcd resolver
  setupEtcdResolver(etcd)

  const c = new HelloClient(
    `${EtcdScheme}:///${serviceName}`, // use service name with EtcdScheme
    grpc.credentials.createInsecure(),
    { 'grpc.service_config': '{"loadBalancingConfig": [{"round_robin": {}}]}' } // use round_robin lb
  )
}
```

## License

MIT &copy; zcong1993

---
_Source: https://npm.io/package/@zcong/grpc-etcd-resolver · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
