{"repo":"davis7dotsh/river","free":true,"listed":false,"github":"https://github.com/davis7dotsh/river","clone":"git clone https://github.com/davis7dotsh/river.git","description":"the sane way to work with ai agent streams (type safety and stream resuming out of the box)","language":"TypeScript","stars":227,"topics":["ai","streaming","svelte","sveltekit","typescript","react","tanstack-start"],"license":"MIT","category":"ai-agents","readme_excerpt":"river doing ai agent streams the right way is really hard, river makes it easy... - full stack type safety on stream chunks - TRPC like client api to easily consume a stream - TRPC like server api to easily create and write to a stream - library agnostic, works with ai sdk, mastra, custom streams, or anything you want - resumable/durable streams work out of the box with the redis provider - tanstack start and sveltekit are currently supported, more coming soon... table of contents - examples - tanstack start getting started - sveltekit getting started - roadmap sveltekit support tanstack start support FULL DOCUMENTATION IS COMING SOON for now just use the below getting started guides and check out the examples for more complex usage... examples you can find examples for how to use river in \"real world\" projects here: each one includes guides on running it locally and how to deploy it - sveltekit river demo - tanstack start demo tanstack start getting started this is a basic example of a custom stream that will count the number of vowels, consonants, and special characters in a message (it's contrived I know, but hear me out...): 0. init a tanstack start project then delete basically everything in the routes directory other than the index.tsx file and root.tsx file 1. install the dependencies river stuff peer deps start the dev server 2. create a river stream 3. create a river router 4. create the endpoint handler 5. create the client caller 6. use your new stream in a compone","default_branch":null,"files":null,"tree":[],"storefront":"/r/davis7dotsh","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/davis7dotsh/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."}