{"repo":"replit/river","free":true,"listed":false,"github":"https://github.com/replit/river","clone":"git clone https://github.com/replit/river.git","description":"🌊 long-lived streaming RPC framework","language":"TypeScript","stars":96,"topics":["api","rpc-framework"],"license":"MIT","category":"api-integrations-sdks","readme_excerpt":"River Long-lived streaming remote procedure calls River provides a framework for long-lived streaming Remote Procedure Calls (RPCs) in modern web applications, featuring advanced error handling and customizable retry policies to ensure seamless communication between clients and servers. River provides a framework similar to tRPC and gRPC but with additional features: - JSON Schema Support + run-time schema validation - full-duplex streaming - service multiplexing - result types and error handling - snappy DX (no code generation) - transparent reconnect support for long-lived sessions - over any transport (WebSockets out of the box) - full OpenTelemetry integration (distributed tracing for connections, sessions, procedure calls) See PROTOCOL.md for more information on the protocol. Prerequisites Before proceeding, ensure you have TypeScript 5 installed and configured appropriately: 1. Ensure your tsconfig.json is configured correctly : You must verify that: - compilerOptions.moduleResolution is set to \"bundler\" - compilerOptions.strict is set to true (or at least compilerOptions.strictFunctionTypes and compilerOptions.strictNullChecks ) Like so: If these options already exist in your tsconfig.json and don't match what is shown above, modify them. Failing to set these will cause unresolvable type errors when defining services. 2. Install River and Dependencies: To use River, install the required packages using npm: Writing services Concepts - Router: a collection of services, n","default_branch":null,"files":null,"tree":[],"storefront":"/r/replit","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/replit/river/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}