Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
serverBuilder
✓ import { serverBuilder } from 'rxjs-grpc'
✗ const { serverBuilder } = require('rxjs-grpc')
CommonJS require works but TypeScript ESM import is preferred.
clientFactory
✓ import { clientFactory } from 'rxjs-grpc'
✗ import { clientFactory } from 'rxjs-grpc/src'
Do not import from subpaths; the module exports at the top level.
GrpcClient (or similar)
✓ import { clientFactory } from 'rxjs-grpc'
No named export GrpcClient; use clientFactory and then instantiate the client class.
ServerBuilder type
✓ import { serverBuilder } from 'rxjs-grpc'
Types are not exported separately; use typeof serverBuilder or infer from the generated namespace.
Complete example of generating TypeScript interfaces, implementing a gRPC server with Observable responses, and calling the service from a client.
// Create a protobuf file 'greeter.proto':
// syntax = "proto3";
// package greeter;
// service Greeter { rpc SayHello (HelloRequest) returns (HelloReply) {} }
// message HelloRequest { string name = 1; }
// message HelloReply { string message = 1; }
// Generate TypeScript interfaces:
// npx rxjs-grpc -o grpc-namespaces.ts greeter.proto
// Implementation (server):
import { of } from 'rxjs';
import { serverBuilder } from 'rxjs-grpc';
import { greeter } from './grpc-namespaces';
const server = serverBuilder<greeter.ServerBuilder>('greeter.proto', 'greeter');
server.addGreeter({
sayHello(request: greeter.HelloRequest) {
return of({ message: 'Hello ' + request.name });
}
});
server.start('0.0.0.0:50051');
// Client:
import { clientFactory } from 'rxjs-grpc';
import { greeter } from './grpc-namespaces';
const Services = clientFactory<greeter.ClientFactory>('greeter.proto', 'greeter');
const services = new Services('localhost:50051');
const greeterClient = services.getGreeter();
greeterClient.sayHello({ name: 'world' }).forEach(response => {
console.log(`Greeting: ${response.message}`);
});
Errors
Common errors & fixes
Error: Cannot find module 'typescript'
TypeScript is not installed or not in node_modules.
fixInstall TypeScript: npm install --save-dev typescript
TypeError: serverBuilder is not a function
Wrong import: using default import instead of named import.
fixUse import { serverBuilder } from 'rxjs-grpc' error TS2345: Argument of type '{ sayHello: (request: any) => { message: string; }; }' is not assignable to parameter of type 'Greeter'
Server method returns a plain object instead of Observable.
fixWrap the return value: sayHello(request) { return of({ message: 'Hello' }); } Error: 14 UNAVAILABLE: Name resolution failed for target localhost:50051
gRPC server not running or wrong address.
fixStart the server first; ensure address format is 'host:port' (e.g., '0.0.0.0:50051').
Audit
Dependencies
rxjsrequiredRequired peer dependency for Observable types and operators.
grpcrequiredRequired peer dependency for gRPC functionality.