GraalVM
範例專案: graalvm
Ktor Server 應用程式可以利用 GraalVM 為不同平台產生原生映像,當然也能受益於 GraalVM 提供的更短啟動時間與其他優點。
目前,想要利用 GraalVM 的 Ktor Server 應用程式必須使用 CIO 作為應用程式引擎。
為 GraalVM 做好準備
除了安裝 GraalVM 並將安裝目錄加入系統路徑之外,您還需要準備好您的應用程式,以便將所有相依性封裝在一起,也就是說,您需要建立一個 fat jar。
反射配置
GraalVM 對於使用反射(reflection)的應用程式有一些要求,而 Ktor 正是如此。它要求您提供一個包含特定型別資訊的 JSON 檔案。接著,此配置檔案會作為引數傳遞給 native-image 工具。
執行 native-image 工具
當 fat jar 準備就緒後,唯一的步驟就是使用 native-image 命令列工具來建立原生映像。這也可以透過 Gradle 外掛程式來完成。您可以在此處查看 build.gradle.kts 檔案的範例。然而請注意,某些選項可能會根據所使用的相依性、專案的套件名稱等而有所不同。
執行產生的二進位檔
如果 Shell 指令碼執行時沒有任何錯誤,您應該會得到一個原生應用程式,在此範例中稱為 graal-server。執行它將啟動 Ktor Server,並在 https://0.0.0.0:8080 進行回應。
//: # (
程式碼範例: deployment-ktor-plugin
)