rivet-dev/dynamic-apps

Deploy an AI-generated backend for every user.

Rivet Dynamic Apps – 是什麼

Rivet Dynamic Apps 是一個框架,讓您能在安全的沙箱環境中執行使用者提供的請求處理程式碼。每個處理程式的程式碼及其發行狀態皆儲存在 Rivet 動作(輕量級、具狀態的服務)中。當請求到達時,系統可透過兩種方式回應:

  1. 快速路徑 – 若請求可從快取中回應,則由一個小型、受限的 V8 隔離環境(輕量級 JavaScript 引擎)直接處理,避免向動作發送任何網路請求。
  2. 執行路徑 – 對於未命中快取的請求,請求將被導向對應的 Rivet 動作,由其在沙箱 VM 中執行使用者產生的處理程式。

此設計旨在結合 安全性(隔離的 V8 沙箱)、低延遲(本地快取隔離環境)與 具狀態的版本控制(動作儲存發行元資料)。


核心概念

概念 含義
Rivet 動作 一個輕量級、具狀態的服務,用於儲存使用者產生處理程式的當前版本,並在需要時執行它。
沙箱部署 VM 基於 V8 的隔離環境,允許任意使用者程式碼安全執行,而不會影響主機系統。
受限的本地 V8 隔離環境 小型、短暫的 JavaScript 執行時,直接在邊緣處理快取命中請求,保持低延遲。
發行狀態 目前活躍的處理程式版本的元資料;儲存在動作中,確保更新是原子且可追蹤的。

工作原理(高階流程)

  1. 開發者上傳:上傳一個 JavaScript 請求處理程式。
  2. Rivet 將程式碼及其發行元資料儲存在動作中。
  3. 當請求到達時:
    • 系統檢查快取。
    • 快取命中 → 本地 V8 隔離環境立即執行處理程式。
    • 快取未命中 → 請求被轉送至動作,動作在其沙箱 VM 中執行處理程式並回傳結果。
  4. 結果可被快取,用於未來的快速路徑處理。

為何對 AI / LLM 工作負載可能很重要

README 連結至一個 RivetKit 參考文件,其中提到 llms.txt,暗示該平台旨在托管 基於 LLM 的請求處理程式(例如,提示處理函數、自訂路由邏輯或輕量級推論包裝器)。透過隔離每個處理程式,開發者可安全地公開使用者產生的 AI 程式碼,而不會危及底層服務的穩定性。


取得更多詳細資訊

  • 套件指南packages/dynamic-apps/README.md – 說明如何將套件加入專案並設定動作。
  • API 合約packages/dynamic-apps/API_CONTRACT.md – 定義呼叫者與處理程式之間使用的基於 JSON 的請求/回應模式。
  • 基準報告benchmarks/dynamic-apps/RESULTS.md – 展示快取命中路徑與完整動作執行的效能數據。
  • RivetKit 參考https://rivet.dev/llms.txt – 提供 Rivet 如何與以 LLM 為中心的工作流程整合的背景資訊。

TL;DR

Rivet Dynamic Apps 允許您在隔離的 V8 沙箱中安全執行使用者提供的 JavaScript 請求處理程式,將其版本狀態儲存在輕量級動作中。快取命中請求由本地隔離環境即時回應,未命中請求則由動作處理。此設定專為需要快速、安全且可更新的自訂邏輯的 AI/LLM 用例而設計。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案