grpc-server-js
Pure JavaScript gRPC Server
Documentation
The goal is to be largely compatible with the existing Server
implementation.
Features
- Unary calls.
- Streaming client request calls.
- Streaming server response calls.
- Bidirectional streaming calls.
- Deadline and cancellation support.
- Support for gzip and deflate compression, as well as uncompressed messages.
- Server credentials for handling both secure and insecure calls.
- gRPC Metadata.
- gRPC logging.
- No production dependencies.
- No C++ dependencies. This implementation relies on Node's
http2
module. - Supports the following gRPC server options:
grpc.http2.max_frame_size
grpc.keepalive_time_ms
grpc.keepalive_timeout_ms
grpc.max_concurrent_streams
- All possible options and their descriptions are available here.
- Supports the following gRPC environment variables:
GRPC_DEFAULT_SSL_ROOTS_FILE_PATH
GRPC_SSL_CIPHER_SUITES
GRPC_VERBOSITY
- All possible environment variables and their descriptions are available here.
Public API Deviations from the Existing grpc.Server
Server.prototype.bind()
is an async
function.- The deprecated
Server.prototype.addProtoService()
is not implemented. Server.prototype.addHttp2Port()
is not implemented.
Useful References
Acknowledgement
This module is heavily inspired by the grpc
native module. Some of the source code is adapted from the @grpc/grpc-js
module.