durable-streams/durable-streams

The data primitive for the agent loop.

What it solves

它解決了客戶端應用程式中即時資料串流的脆弱性。WebSocket 或 SSE 等標準連線在頁面重新整理、網路波動或裝置切換時常會失效,導致資料遺失或需要複雜的自訂恢復協定。這對於 AI 應用尤為嚴重,因為 token 串流與代理進度事件對使用者體驗至關重要。

How it works

Durable Streams 提供一個最小化、基於 HTTP 的協定,用於建立有序且可重播的資料串流。它使用基於 offset 的讀取方式,允許客戶端從串流中的任意特定點恢復。它支援長輪詢與 SSE 兩種模式以進行即時尾隨,且設計上友善 CDN,能在不過度負載來源伺服器的情況下,將資料大量分發給數百萬同時觀看者。

Who it’s for

適用於開發協作 AI 應用、代理系統、即時資料庫同步工具、使用 CRDT 的協作編輯器,以及任何需要在公共互聯網上實現彈性、多裝置狀態同步的應用程式。

Highlights

  • Refresh-safe: 使用者在重新整理或將應用程式切到背景後,能從中斷的地方繼續。
  • Resumable: 基於 offset 的讀取確保重新連線時不會遺失資料。
  • Universal: 可於網頁瀏覽器、行動應用、原生客戶端與 Edge Workers 上使用標準 HTTP。
  • Multi-device Sync: 允許單一串流在多個裝置或分頁上即時觀看。
  • Broad Language Support: 提供 TypeScript、Python、Go、Elixir、.NET、Swift、PHP、Java、Rust 與 Ruby 的客戶端函式庫。