rivet-dev/dynamic-apps
Deploy an AI-generated backend for every user.
Rivet Dynamic Apps – 是什麼
Rivet Dynamic Apps 是一個框架,讓您能在安全的沙箱環境中執行使用者提供的請求處理程式碼。每個處理程式的程式碼及其發行狀態皆儲存在 Rivet 動作(輕量級、具狀態的服務)中。當請求到達時,系統可透過兩種方式回應:
- 快速路徑 – 若請求可從快取中回應,則由一個小型、受限的 V8 隔離環境(輕量級 JavaScript 引擎)直接處理,避免向動作發送任何網路請求。
- 執行路徑 – 對於未命中快取的請求,請求將被導向對應的 Rivet 動作,由其在沙箱 VM 中執行使用者產生的處理程式。
此設計旨在結合 安全性(隔離的 V8 沙箱)、低延遲(本地快取隔離環境)與 具狀態的版本控制(動作儲存發行元資料)。
核心概念
| 概念 | 含義 |
|---|---|
| Rivet 動作 | 一個輕量級、具狀態的服務,用於儲存使用者產生處理程式的當前版本,並在需要時執行它。 |
| 沙箱部署 VM | 基於 V8 的隔離環境,允許任意使用者程式碼安全執行,而不會影響主機系統。 |
| 受限的本地 V8 隔離環境 | 小型、短暫的 JavaScript 執行時,直接在邊緣處理快取命中請求,保持低延遲。 |
| 發行狀態 | 目前活躍的處理程式版本的元資料;儲存在動作中,確保更新是原子且可追蹤的。 |
工作原理(高階流程)
- 開發者上傳:上傳一個 JavaScript 請求處理程式。
- Rivet 將程式碼及其發行元資料儲存在動作中。
- 當請求到達時:
- 系統檢查快取。
- 快取命中 → 本地 V8 隔離環境立即執行處理程式。
- 快取未命中 → 請求被轉送至動作,動作在其沙箱 VM 中執行處理程式並回傳結果。
- 結果可被快取,用於未來的快速路徑處理。
為何對 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 用例而設計。
相關
- 專案
- 專案
- 專案
- 專案
- 專案