開源WebAssembly Runtime同名開發商Wasmer,發表了可以結合WebAssembly以及CGI(Common Gateway Interface)程式的技術WCGI。藉由使用WCGI,開發者可以將CGI程式編譯成WebAssembly,使CGI程式更適合在無伺服器環境運作,並且獲得WebAssembly帶來的各種好處。

CGI是一種網頁伺服器上用於執行應用程式的技術,當用戶透過網頁瀏覽器存取網站,並進行互動時,CGI程式可以將用戶的請求傳送給後端應用程式,並且將結果回傳給用戶瀏覽器。CGI程式可以用多種語言編寫,諸如PHP、Perl、Python和Ruby,這些程式通常用於處理表單提交、生成動態網頁內容等。

在Wasmer嘗試發展無伺服器解決方案的過程,遭遇到要重新創造輪子,抑或是以現有技術為基礎開發的抉擇,經過評估後,他們認為,CGI設計理念是對每個HTTP請求執行一個獨立的程序,而這種機制剛好和無伺服器架構的目標相吻合,在無伺服器架構中,將更容易自動擴展或是調度資源。

因此Wasmer開發了WCGI,使開發者可以將原有的CGI程式編譯成WebAssembly,而這樣的方式有許多的優點,首先開發者可以重用現有的CGI程式,將既有AssemblyScript、C、C++、Go、PHP、Python等程式,編譯為極具可移植性的WASI(WebAssembly System Interface)程式,在各種環境中運作。而且相較起HTTP堆疊和Docker容器,利用WCGI編譯成僅包含業務邏輯或是靜態資產的超小型套件,更為輕便。

由於WebAssembly程式碼僅在沙盒中運作,因此WebAssembly程式執行上便具有高度安全性,而且WebAssembly是一種低階語言,因此也能夠大幅提高CGI程式的執行效能。透過將CGI應用程式編譯成WebAssembly,使其更能結合現代網頁技術,諸如WebWorkers、Service Workers,供開發者靈活地進行應用程式開發。

熱門新聞

Advertisement