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