# grpc/grpc-node

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/grpc-grpc-node).**

4,833 stars · 700 forks · TypeScript · Apache-2.0

## Links

- GitHub: https://github.com/grpc/grpc-node
- Homepage: https://grpc.io
- awesome-repositories: https://awesome-repositories.com/repository/grpc-grpc-node.md

## Description

This project is a gRPC framework for Node.js used to implement high-performance remote procedure calls. It provides a client-server communication library that utilizes HTTP/2 for streaming, multiplexing, and binary framing, alongside a protocol buffers implementation for defining structured data and generating service stubs.

The framework includes a toolchain to compile protocol buffer files into language-specific objects and supports the generation of static TypeScript type definitions to validate objects at runtime.

The library covers distributed system networking and microservices communication, including SSL/TLS encryption, message compression, and load balancing. It manages the request lifecycle through deadlines, retries, connection recovery, and call cancellation. Additional capabilities include bidirectional data streaming, service reflection for programmatic discovery, and standardized health checking services.

## Tags

### Networking & Communication

- [gRPC Service Implementations](https://awesome-repositories.com/f/networking-communication/polyglot-client-support/grpc-implementations/grpc-service-implementations.md) — Provides a high-performance framework for implementing and hosting gRPC services in Node.js.
- [Distributed Service Connectivity](https://awesome-repositories.com/f/networking-communication/distributed-service-connectivity.md) — Manages distributed network traffic using load balancing, SSL/TLS encryption, and automatic connection recovery.
- [Microservices Communications](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/application-interface-standards/microservices-communications.md) — Connects distributed services using efficient request-response and streaming data exchange based on standardized schemas.
- [gRPC Client Implementations](https://awesome-repositories.com/f/networking-communication/grpc-client-implementations.md) — Provides a full gRPC client implementation for making remote procedure calls with support for reconnection and load balancing. ([source](https://github.com/grpc/grpc-node/tree/master/packages/grpc-js))
- [Load Balancers](https://awesome-repositories.com/f/networking-communication/load-balancers.md) — Distributes requests across multiple backend endpoints to ensure high availability and optimal resource utilization. ([source](https://github.com/grpc/grpc-node/tree/master/examples))
- [Service Communication Libraries](https://awesome-repositories.com/f/networking-communication/service-communication-libraries.md) — Provides a comprehensive toolkit for managing network connections, serialization, and routing between distributed services.
- [gRPC Server Implementations](https://awesome-repositories.com/f/networking-communication/tcp-socket-programming/client-server-implementations/grpc-server-implementations.md) — Provides the core server implementation to host gRPC services and respond to remote procedure calls. ([source](https://github.com/grpc/grpc-node/tree/master/packages/grpc-js))
- [Bi-directional Streaming RPC](https://awesome-repositories.com/f/networking-communication/bi-directional-streaming-rpc/streaming-rpc-constraints/bi-directional-streaming-rpc.md) — Supports continuous bi-directional data streaming between clients and servers for real-time communication. ([source](https://github.com/grpc/grpc-node/tree/master/PACKAGE-COMPARISON.md))
- [Connection Keepalives](https://awesome-repositories.com/f/networking-communication/connection-keepalives.md) — Maintains active network connections and detects dead peers through periodic heartbeat pings. ([source](https://github.com/grpc/grpc-node/blob/master/PACKAGE-COMPARISON.md))
- [Automatic Connection Recovery](https://awesome-repositories.com/f/networking-communication/connection-pooling/grpc-connection-pools/grpc-connection-management/automatic-connection-recovery.md) — Handles automatic reconnection and monitors channel state to maintain a stable link between gRPC endpoints. ([source](https://github.com/grpc/grpc-node/tree/master/PACKAGE-COMPARISON.md))
- [Data Compression](https://awesome-repositories.com/f/networking-communication/data-compression.md) — Reduces network bandwidth usage by compressing and decompressing messages transmitted between gRPC peers. ([source](https://github.com/grpc/grpc-node/blob/master/PACKAGE-COMPARISON.md))
- [Dynamic Service Discovery](https://awesome-repositories.com/f/networking-communication/dynamic-service-discovery.md) — Enables dynamic updating of available service endpoints through integration with centralized management planes. ([source](https://github.com/grpc/grpc-node/tree/master/examples))
- [Reflection Services](https://awesome-repositories.com/f/networking-communication/grpc-interfaces/reflection-services.md) — Allows clients to programmatically discover available services and methods from a running server without schema files. ([source](https://github.com/grpc/grpc-node/blob/master/README.md))
- [Remote Call Cancellation](https://awesome-repositories.com/f/networking-communication/remote-procedure-calls/remote-call-cancellation.md) — Allows aborting pending remote procedure calls to conserve system resources on both client and server. ([source](https://github.com/grpc/grpc-node/tree/master/examples))
- [RPC Data Streaming](https://awesome-repositories.com/f/networking-communication/rpc-data-streaming.md) — Implements asynchronous bi-directional data streams between clients and servers for continuous information exchange.

### Security & Cryptography

- [gRPC and HTTP TLS Securings](https://awesome-repositories.com/f/security-cryptography/grpc-security/grpc-and-http-tls-securings.md) — Secures communication between clients and servers using SSL/TLS encryption with configurable certificates and keys. ([source](https://github.com/grpc/grpc-node/tree/master/examples))

### Software Engineering & Architecture

- [Protobuf Stub Generators](https://awesome-repositories.com/f/software-engineering-architecture/interface-definition-languages/type-safe-code-generators/protobuf-stub-generators.md) — Generates type-safe client and server stubs from Protocol Buffer interface definitions.
- [Node.js Microservices Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/node-js-microservices-frameworks.md) — Implements a dedicated framework for building microservices architectures using the Node.js runtime and gRPC.
- [Protocol Buffer Implementations](https://awesome-repositories.com/f/software-engineering-architecture/protocol-buffer-implementations.md) — Implements the Protocol Buffers serialization format for encoding, decoding, and defining structured data.
- [Request Deadlines](https://awesome-repositories.com/f/software-engineering-architecture/traffic-management/concurrent-request-limits/request-deadlines.md) — Sets maximum time limits for requests and automatically terminates calls that exceed the deadline. ([source](https://github.com/grpc/grpc-node/blob/master/PACKAGE-COMPARISON.md))

### Web Development

- [HTTP/2 Transport Layers](https://awesome-repositories.com/f/web-development/http-2-transport-layers.md) — Utilizes HTTP/2 binary framing and multiplexing as the transport layer for high-performance remote calls.

### Data & Databases

- [Definition Loading](https://awesome-repositories.com/f/data-databases/protobuf-serialization/definition-loading.md) — Implements utilities to parse protobuf definition files to prepare service and message structures for RPC use. ([source](https://github.com/grpc/grpc-node#readme))

### DevOps & Infrastructure

- [Request Hedging](https://awesome-repositories.com/f/devops-infrastructure/api-service-management/api-resilience/request-hedging.md) — Implements request retries and hedging strategies to improve reliability and reduce tail latency. ([source](https://github.com/grpc/grpc-node/tree/master/PACKAGE-COMPARISON.md))
- [gRPC Service Generators](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-toolchains/compile-time-code-generators/grpc-service-generators.md) — Ships a toolchain to compile protocol buffer files into language-specific client and service objects. ([source](https://github.com/grpc/grpc-node/tree/master/packages/grpc-tools))

### System Administration & Monitoring

- [Server Health Checks](https://awesome-repositories.com/f/system-administration-monitoring/server-health-checks.md) — Implements a standardized health checking service that allows external monitors to verify server availability and readiness. ([source](https://github.com/grpc/grpc-node#readme))

### Part of an Awesome List

- [Core Libraries](https://awesome-repositories.com/f/awesome-lists/devtools/core-libraries.md) — Node.js implementation for gRPC services.
- [RPC Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/rpc-frameworks.md) — gRPC client implementation for Node.js.
