mirror of https://github.com/grpc/grpc-node.git
Add package feature comparison document
This commit is contained in:
parent
61f969a1ba
commit
4e2decd6ac
|
@ -0,0 +1,29 @@
|
|||
# Feature comparison of `grpc` and `@grpc/grpc-js` packages
|
||||
|
||||
Feature | `grpc` | `@grpc/grpc-js`
|
||||
--------|--------|----------
|
||||
Client | :heavy_check_mark: | :heavy_check_mark:
|
||||
Server | :heavy_check_mark: | :x:
|
||||
Unary RPCs | :heavy_check_mark: | :heavy_check_mark:
|
||||
Streaming RPCs | :heavy_check_mark: | :heavy_check_mark:
|
||||
Deadlines | :heavy_check_mark: | :heavy_check_mark:
|
||||
Cancellation | :heavy_check_mark: | :heavy_check_mark:
|
||||
Automatic Reconnection | :heavy_check_mark: | :heavy_check_mark:
|
||||
Per-message Compression | :heavy_check_mark: | only for response messages
|
||||
Channel State | :heavy_check_mark: | :heavy_check_mark:
|
||||
JWT Access and Service Account Credentials | provided by the [Google Auth Library](https://www.npmjs.com/package/google-auth-library) | provided by the [Google Auth Library](https://www.npmjs.com/package/google-auth-library)
|
||||
Interceptors | :heavy_check_mark: | :x:
|
||||
Connection Keepalives | :heavy_check_mark: | :heavy_check_mark:
|
||||
HTTP Connect Support | :heavy_check_mark: | :x:
|
||||
Retries | :heavy_check_mark: | :x:
|
||||
Stats/tracing/monitoring | :heavy_check_mark: | :x:
|
||||
Load Balancing | :heavy_check_mark: | :x:
|
||||
|
||||
In addition, all channel arguments defined in [this header file](https://github.com/grpc/grpc/blob/master/include/grpc/impl/codegen/grpc_types.h) are handled by the `grpc` library. Of those, the following are handled by the `@grpc/grpc-js` library:
|
||||
|
||||
- `grpc.ssl_target_name_override`
|
||||
- `grpc.primary_user_agent`
|
||||
- `grpc.secondary_user_agent`
|
||||
- `grpc.default_authority`
|
||||
- `grpc.keepalive_time_ms`
|
||||
- `grpc.keepalive_timeout_ms`
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
## Implementations
|
||||
|
||||
For a comparison of the features available in these two libraries, see [this document](https://github.com/grpc/grpc-node/tree/master/PACKGE-COMPARISON.md)
|
||||
|
||||
### C-based Client and Server
|
||||
|
||||
Directory: [`packages/grpc-native-core`](https://github.com/grpc/grpc-node/tree/master/packages/grpc-native-core) (see here for installation information)
|
||||
|
@ -15,9 +17,11 @@ This is the existing, feature-rich implementation of gRPC using a C++ addon. It
|
|||
|
||||
Directory: [`packages/grpc-js-core`](https://github.com/grpc/grpc-node/tree/master/packages/grpc-js-core)
|
||||
|
||||
npm package: [@grpc/grpc-js](https://www.npmjs.com/package/@grpc/grpc-js)
|
||||
|
||||
**This library is currently incomplete and experimental, built on the [experimental http2 Node module](https://nodejs.org/api/http2.html).**
|
||||
|
||||
This library implements the core functionality of gRPC purely in JavaScript, without a C++ addon. It works on the latest version of Node.js (with the `--expose-http2` flag set) on all platforms that Node.js runs on.
|
||||
This library implements the core functionality of gRPC purely in JavaScript, without a C++ addon. It works on the latest version of Node.js on all platforms that Node.js runs on.
|
||||
|
||||
## Other Packages
|
||||
|
||||
|
@ -25,6 +29,8 @@ This library implements the core functionality of gRPC purely in JavaScript, wit
|
|||
|
||||
Directory: [`packages/grpc-protobufjs`](https://github.com/grpc/grpc-node/tree/master/packages/grpc-protobufjs)
|
||||
|
||||
npm package: [@grpc/proto-loader](https://www.npmjs.com/package/@grpc/proto-loader)
|
||||
|
||||
This library loads `.proto` files into objects that can be passed to the gRPC libraries.
|
||||
|
||||
### gRPC Tools
|
||||
|
|
Loading…
Reference in New Issue