v0.7.0

核心概念

最後更新

HakoRun 以「路徑」識別函式、以時間戳區分版本,並提供已儲存與即時兩種執行方式。

函式路徑

版本

行為 說明
版本號 上傳當下的 Unix 秒數,/upload 回應的 version
預設執行 /run/<path> 不帶 version 時執行最新版本
釘選版本 /run/<path>?version=<timestamp>;版本不存在回 404
非整數 version 視為未指定,執行最新版本
同秒上傳 同一路徑一秒內上傳兩次會得到相同版本號,後者覆蓋前者的程式碼

已儲存執行與即時執行

模式 端點 程式碼來源 語言檢查
已儲存執行 POST /run/*path 儲存後端(body 的 code/language 會被覆蓋) 上傳時檢查
即時執行 POST /run-now 請求 body,不寫入儲存 每次請求檢查;code 不可為空白

兩種模式取得程式碼後走同一條執行路徑:

graph LR
    Body[getRunBody 限制 CODE_MAX_SIZE] --> Run[run]
    Run -->|stream=false| Once[runScript]
    Run -->|stream=true| SSE[runScriptWithSSE]
    Once --> Cmd[sandbox.SandboxCommand]
    SSE --> Cmd
    Cmd --> Wrapper[wrapper 讀 stdin]

執行生命週期

相關頁面

EN